parallel-search-evaluation

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Evaluate Parallel Search

评估 Parallel Search

Turn the user's workload into a reproducible end-to-end comparison. Deliver a runnable harness when implementation is requested, or an actionable plan when planning is requested. Reuse an existing harness before creating another one. Do not invent a Parallel CLI eval command.
For product selection without a benchmark, use
choose-your-parallel-api
; for replacing an existing search integration, use
migrate-to-parallel
. Use this skill to measure the resulting quality, cost, and latency.
将用户的工作负载转化为可复现的端到端对比。当用户要求实施时,交付可运行的 harness;当用户要求规划时,交付可执行的方案。创建新 harness 前,应先复用现有 harness。不得虚构 Parallel CLI eval 命令。
无基准测试的产品选型请使用
choose-your-parallel-api
;替换现有搜索集成时请使用
migrate-to-parallel
。使用此 skill 衡量最终的质量、成本和延迟。

Start with the workload

从工作负载入手

Read the public evaluation guide, Search best practices, and Extract best practices before implementing requests. Check current modes and pricing; record the documentation date and configuration rather than embedding price or latency promises.
Establish the application, question types, providers, existing agent/model, verified answers, and quality/cost/latency target. Infer these from supplied code and data; ask only for missing decisions that change the comparison. Prepare offline artifacts while credentials or a live-run budget remain unresolved. Use existing authorization for paid calls; otherwise establish scope and spend limits before execution. Never request keys in chat.
Choose the product that matches the application:
ApplicationEvaluation boundary
User owns the agent loopSearch + Extract, including answer generation
One call should return a cited answerResponses API
Schema-bound enrichment or asynchronous researchTask API
Always set Search
mode
explicitly for REST requests: omitting it selects
advanced
, changing latency and price. Unless the user specifies otherwise, start with
fast
for interactive workloads or
advanced
for harder research, then test another relevant mode. The evaluation guide still recommends
basic
; record this discrepancy and the chosen rationale rather than silently inheriting that starting point. Honor workload constraints such as language support and endpoint availability. For Search MCP, consult its current routing and override rules: pin the mode for authenticated calls where supported; anonymous calls reject overrides, so record the actual server-selected mode or require authentication for a controlled mode comparison. Keep the model fixed within a comparison; a different model/mode pairing is a separate experiment.
实现请求之前,阅读公开的评估指南、Search 最佳实践和 Extract 最佳实践。检查当前的 modes 和 pricing;记录文档日期和配置,而不是在交付物中承诺特定价格或延迟。
确定应用场景、问题类型、providers、现有 Agent/模型、已验证答案,以及质量/成本/延迟目标。根据提供的代码和数据推断这些信息;仅询问会改变对比结果的缺失决策。当凭证或实时运行预算尚未确定时,准备离线产物。付费调用使用现有授权;否则在执行前确定范围和支出上限。不得在聊天中索取密钥。
选择与应用场景匹配的产品:
应用场景评估边界
用户掌控 Agent loopSearch + Extract,包括答案生成
单次调用应返回带引用的答案Responses API
受 Schema 约束的数据 enrichment 或异步研究Task API
对于 REST 请求,始终显式设置 Search 的
mode
:省略时会选择
advanced
,从而改变延迟和价格。除非用户另有说明,交互式工作负载先使用
fast
,高难度研究先使用
advanced
,随后再测试另一个相关 mode。评估指南仍建议使用
basic
;应记录这一差异及选择理由,而不是默默沿用该起点。遵循语言支持和 endpoint 可用性等约束。对于 Search MCP,查阅其当前的路由和 override 规则:在支持的已认证调用中固定 mode;匿名调用会拒绝 override,因此应记录服务器实际选择的 mode,或要求认证以进行受控的 mode 对比。对比期间固定模型;不同的模型/mode 组合属于独立实验。

Build and freeze the comparison

构建并冻结对比方案

Use references/eval-contract.md when creating dataset records, run manifests, traces, grading output, and reports. Resolve this reference relative to this skill's directory.
  1. Prefer real production questions and independently verified answers. Match domain, wording, freshness, and task shape. Review synthetic labels before running. Pin question IDs and dataset version; separate pilot questions from held-out questions. Public benchmarks supplement this set and need a consistent policy for answer-key contamination.
  2. Hold the model, research prompt, budgets, judge, and extraction policy constant across providers. Expose only the selected provider's search tool. Start with each provider's documented defaults and tool definition, including descriptions; change a setting only with evidence from the workload or pilot, and record the evidence and deviation in the manifest. Avoid arbitrary result caps or custom tool descriptions. If extraction differs as part of a provider stack, disclose that boundary. Keep gold answers and annotations out of agent prompts, query generation, and tool messages.
  3. Have the model write an objective that restates the full information need with every relevant constraint, including entities, scope, dates, and source requirements. Pair it with focused keyword queries of 3–6 words each: one for a simple fact, up to three useful angles for richer questions. Do not duplicate the query text in the objective or copy the whole task into each query. Preserve result titles, URLs, and excerpts in the answering model's context. Use
    /v1/search
    and
    /v1/extract
    for new integrations; verify current request schemas rather than renaming old endpoints.
  4. Default to multi-hop Search + Extract for applications; use single-hop only for an explicitly one-request benchmark. Fix total calls, deadline, retry policy, and spend bounds before dispatch. Use a fresh session per question, configuration, and repetition; reuse it across that trial's related Search and Extract calls.
Recommend a cost-parity comparison: align result count, content per page, product tier, and reasoning level where supported, and account for total Search/Extract/model cost including input and output tokens. Start with documented defaults as the baseline; any parity overrides need a recorded rationale and a separate configuration. Report requested and actual result counts and content volumes, residual mismatches, and settings that cannot be equated. Do not treat equal API-call counts as equal cost or imply parity when it was not achieved.
SettingExecutor behavior
Single-hopAllow exactly one Search API request, no Extract; disable tools for the final answer. Enforce the limit in code, including concurrent requests. Several keyword queries in one request still count as one call.
Multi-hopExpose Search + Extract and allow evidence-driven follow-ups within the total budget. Dispatch independent calls from the same turn concurrently; reserve budget before dispatch, return results under their original call IDs, and preserve successes when siblings fail.
Use the same research prompt across providers and settings; change tool availability and executor budgets separately. For public benchmarks, use the guide's research prompt and official grader where available. Record output-format overrides and label altered benchmark protocols as adapted evaluations.
创建数据集记录、运行 manifests、traces、评分输出和报告时,使用 references/eval-contract.md。此引用相对于本 skill 的目录进行解析。
  1. 优先使用真实生产问题和独立验证过的答案。匹配领域、措辞、时效性和任务形态。运行前审查合成标签。固定问题 ID 和数据集版本;将 pilot 问题与 held-out 问题分开。公共基准测试用于补充该数据集,并需采用一致策略防止 answer key 污染。
  2. 在不同 providers 之间固定模型、研究提示词、预算、judge 和 extraction 策略。仅向模型暴露所选 provider 的 search 工具。从各 provider 文档中的默认值和工具定义(包括描述)开始;只有在工作负载或 pilot 提供了证据时才更改设置,并在 manifest 中记录证据和偏差。避免任意设置结果数量上限或自定义工具描述。如果 extraction 因 provider stack 而异,应披露该边界。将 gold answers 和 annotations 排除在 Agent 提示词、查询生成和工具消息之外。
  3. 让模型编写一个 objective,完整复述信息需求及所有相关约束,包括实体、范围、日期和来源要求。为其配套每组 3–6 个单词的聚焦关键词查询:简单事实使用一个查询,较复杂问题最多使用三个有用的查询角度。不要在 objective 中重复查询文本,也不要把完整任务复制到每个查询中。在回答模型的上下文中保留结果标题、URL 和摘录。新集成使用
    /v1/search
    和
    /v1/extract
    ;应验证当前请求 schema,而不是重命名旧 endpoint。
  4. 应用默认采用 multi-hop Search + Extract;仅在明确要求单次请求的基准测试中使用 single-hop。发出请求前固定总调用次数、deadline、重试策略和支出上限。每个问题、配置和重复实验使用新的 session;在该 trial 相关的 Search 与 Extract 调用之间复用该 session。
建议采用成本对等的对比方式:在支持的情况下,对齐结果数量、每页内容量、产品层级和推理级别,并计入 Search/Extract/model 的总成本,包括输入和输出 token。以文档默认值作为基线;任何对等覆盖都需要记录理由并使用单独配置。报告请求和实际结果数量、内容量、剩余不匹配项,以及无法等价的设置。不得把相同的 API 调用次数视为成本相同,也不得暗示已实现对等。
设置Executor 行为
Single-hop仅允许一次 Search API 请求,不使用 Extract;为最终答案禁用工具。必须在代码中强制执行限制,包括并发请求。在一个请求中使用多个关键词查询仍计为一次调用。
Multi-hop暴露 Search + Extract,并允许在总预算内根据证据发起后续查询。并发派发同一轮中的独立调用;派发前预留预算,按原始 call ID 返回结果,并在同级调用失败时保留成功结果。
在不同 providers 和设置之间使用相同的研究提示词;分别更改工具可用性和 executor 预算。对于公共基准测试,在可用的情况下使用指南中的研究提示词和官方 grader。记录输出格式覆盖项,并将修改过的基准测试协议标记为 adapted evaluations。

Pilot, grade, and interpret

运行 pilot、评分并解读结果

Inspect a small fixed pilot: query quality, warnings, excerpt delivery, tool limits, concurrency, and trace completeness. Fix integration faults and rerun affected configurations; do not tune during a scored run. Freeze settings before evaluating held-out questions. Run each configuration at least three times and report variation.
Flag every failure to the user with affected trial IDs and impact: rate limits, HTTP errors, timeouts, partial results, token truncation, dropped results, and endpoint fallback (including
/v1
→
/v1beta
). Record each occurrence even if a retry succeeds. Never silently fall back or count a Parallel-side failure as a retrieval miss. Surface failures during execution and include their counts and trace references in the final report; preserve partial successes and the declared scoring denominator.
Grade final answers by task shape: factual correctness and citation support; list precision and recall; structured field accuracy; or an explicit research rubric. Require judge reasoning. For custom rubrics, rank honest inability to retrieve above confident misinformation. Hand-check at least 10% of judged trials, covering successes and failures. Keep citation audits separate from official benchmark scores.
Classify failures from traces: no search call, synthesis failure despite sufficient evidence, provider error, or retrieval miss despite a reasonable query. Do not attribute missing excerpts or other harness faults to retrieval quality. Distinguish account rate limits from provider capability.
Include failures and timeouts in primary results under the declared scoring policy. Bound retries and include all their time and cost. Report Search/Extract/model charges, tokens, calls, budget exhaustion, and search and end-to-end latency at p50/p95/p99. Time the whole task by wall clock, including query reformulation and answer generation; do not sum concurrent call durations. Cost per resolved task includes spend on unsuccessful trials; report it as undefined if nothing resolves.
Deliver the reproducible configuration, dataset and trace locations, grading rationale, failure breakdown, and quality versus cost/latency comparisons. Recommend configurations on the measured Pareto frontier that meet the user's targets, with uncertainty and workload slices. If calls were not run, label the deliverable as an unexecuted plan or harness and state what remains needed.
After results, propose 2–3 follow-up configurations tied to observed failures or bottlenecks: retrieval misses →
advanced
; thin excerpts → enable or increase Extract use; high latency →
fast
; high model-token cost → a smaller content budget. Change one factor per comparison, record the rationale, and use a new frozen manifest. Present these as proposals, not automatically launched runs; execute only when the user requests them within the authorized scope and spend.
检查规模较小且固定的 pilot:查询质量、警告、摘录交付、工具限制、并发性和 trace 完整性。修复集成故障后重新运行受影响的配置;计分运行期间不得调优。在评估 held-out 问题前冻结设置。每个配置至少运行三次并报告波动。
将每一次失败连同受影响的 trial ID 和影响向用户报告:rate limit、HTTP 错误、超时、部分结果、token 截断、结果丢失,以及 endpoint fallback(包括
/v1
→
/v1beta
)。即使重试成功,也要记录每次发生。不得静默回退,也不得把 Parallel 端失败计作检索未命中。执行期间应暴露这些失败,并在最终报告中包含其计数和 trace 引用;保留部分成功项和声明的评分分母。
根据任务形态对最终答案评分:事实正确性和引用支持度;列表精确率与召回率;结构化字段准确率;或明确的 research rubric。必须提供 judge 推理。对于自定义 rubric,应将诚实的无法检索排在自信的错误信息之上。至少人工检查 10% 的已评分 trials,并覆盖成功与失败案例。将引用审计与官方基准分数分开。
根据 traces 分类失败:未调用 Search、证据充分但综合失败、provider 错误,或合理查询仍检索未命中。不得将缺失摘录或其他 harness 故障归因于检索质量。区分账户级 rate limit 与 provider 能力限制。
按照声明的评分策略,将失败和超时纳入主要结果。限制重试,并计入其全部时间和成本。报告 Search/Extract/model 费用、token、调用次数、预算耗尽情况,以及 Search 和端到端延迟的 p50/p95/p99。整个任务按 wall clock 计时,包括查询改写和答案生成;不得累加并发调用的持续时间。每个已解决任务的成本包括未成功 trial 的支出;如果没有任何任务得到解决,则报告为 undefined。
交付可复现配置、数据集和 trace 位置、评分理由、失败分解,以及质量与成本/延迟的对比。根据实测 Pareto frontier 推荐符合用户目标的配置,并说明不确定性和工作负载切片。如果未实际运行调用,应将交付物标为未执行的 plan 或 harness,并说明仍需完成的事项。
结果出来后,提出 2–3 个与观察到的失败或瓶颈相关的后续配置:检索未命中 →
advanced
;摘录过少 → 启用或增加 Extract 使用;延迟高 →
fast
;model token 成本高 → 更小的内容预算。每次对比只更改一个因素,记录理由,并使用新的冻结 manifest。将这些作为建议提出,而不是自动启动运行;只有在用户在授权范围和预算内提出要求时才执行。