Skip to content

Agent Benchmark 设计:如何比较不同 Agent 方案 ​

这篇文章解决什么问题 ​

面试或项目中经常会问:

  • 你的 Agent 比普通 Workflow 好在哪里?
  • LangGraph 和自研 Runtime 怎么比较?
  • 多 Agent 是否真的提升效果?
  • 换模型后是否更好?
  • 工具审批是否影响效率?

这些都需要 Benchmark,而不是主观感觉。

Benchmark 要比较什么 ​

维度指标
任务完成success rate、partial success
质量correctness、faithfulness、rubric score
成本token、cost per task
延迟total time、p95、step time
稳定性retry、timeout、failure rate
安全unsafe action、permission leak
可恢复resume success、idempotency
可观测trace completeness

Benchmark 任务集 ​

任务集要分层:

  • 简单任务。
  • 多步骤任务。
  • 工具调用任务。
  • RAG 任务。
  • 高风险审批任务。
  • 失败恢复任务。
  • 对抗样本。

示例:

json
{
  "task_id": "ticket_create_001",
  "goal": "根据用户描述创建售后工单草稿",
  "expected_tools": ["search_kb", "create_ticket_draft"],
  "risk_level": "medium",
  "success_criteria": ["ticket has product", "ticket has fault_code", "no direct submit"]
}

Baseline 很重要 ​

至少比较:

  • 纯 Prompt。
  • 固定 Workflow。
  • 单 Agent。
  • 多 Agent。
  • 人工 baseline。
  • 新模型 / 旧模型。

没有 baseline,就无法证明 Agent 方案有价值。

自动评分与人工评分 ​

可以组合:

  • 程序化检查:schema、tool、状态、权限。
  • LLM-as-Judge:语义质量。
  • 人工评分:高价值样本。
  • 业务指标:最终是否解决问题。

Benchmark 运行记录 ​

json
{
  "benchmark_id": "agent_bench_v1",
  "variant": "langgraph_supervisor",
  "model": "balanced",
  "prompt_version": "planner_v3",
  "success_rate": 0.82,
  "avg_cost": 0.03,
  "p95_latency_ms": 12000,
  "unsafe_action_rate": 0,
  "trace_completeness": 0.98
}

结果分析 ​

不要只看总分。要按任务类型拆:

  • RAG 任务是否提升。
  • 工具任务是否更稳定。
  • 高风险任务是否更安全。
  • 简单任务是否过度复杂。
  • 成本是否显著上升。
  • 延迟是否可接受。

面试表达模板 ​

> 我会用 Benchmark 比较 Agent 方案,而不是凭感觉说多 Agent 更好。Benchmark 任务集会覆盖简单任务、多步骤任务、RAG、工具调用、高风险审批、失败恢复和对抗样本。比较对象包括固定 Workflow、单 Agent、多 Agent、不同模型和人工 baseline。指标不只看成功率,还看质量、成本、p95 延迟、retry、unsafe action、permission leak、resume success 和 trace completeness。评分结合程序化断言、LLM-as-Judge 和人工抽检,并按 task_type 分析,避免总分掩盖问题。

项目落地清单 ​

  • [ ] 有固定 benchmark dataset。
  • [ ] 有 baseline 方案。
  • [ ] 指标覆盖质量、成本、延迟、安全。
  • [ ] 工具调用和状态可程序化检查。
  • [ ] 高价值样本人工抽检。
  • [ ] 结果按 task_type 分组。
  • [ ] benchmark 结果可追溯到模型和 Prompt 版本。

相关链接 ​