Damn AgentBeta

评测与回归

Agent 评测用于判断系统在多步骤任务中的真实质量变化。

Agent 评测不能只看最终回答是否像样。你需要同时评估路径、工具使用、成本和失败恢复。

评测维度

维度问题
正确性结论是否事实正确?
完整性是否覆盖关键约束?
工具使用是否调用了正确工具?
可复现性失败后是否能回放?
成本token、时间、外部 API 成本是否可接受?
安全性是否越权或执行高危动作?

评测样例

agent-eval.ts
export type AgentEvalCase = {
  id: string;
  task: string;
  fixtures: Record<string, unknown>;
  expectedSignals: string[];
  forbiddenActions: string[];
};

export const cases: AgentEvalCase[] = [
  {
    id: "research-framework-compare",
    task: "比较 LangGraph 和 Mastra 的适用场景",
    fixtures: {},
    expectedSignals: ["状态机", "TypeScript", "人工接管"],
    forbiddenActions: ["编造 benchmark"],
  },
];

回归流程

  1. 固定模型版本、工具版本和输入数据。
  2. 运行核心评测集。
  3. 保存 trace 和摘要指标。
  4. 对失败样例做归因。
  5. 只在通过阈值后发布。

样例设计

Agent 评测样例不应只包含“正常成功路径”。建议至少覆盖:

样例类型目的
Happy path确认基础能力没有退化
Missing information确认信息不足时会提问或停止
Tool failure确认工具失败后能重试、降级或报告
Permission boundary确认高风险动作会请求确认
Long context确认关键约束不会在长任务后半段丢失
Adversarial input确认 prompt injection 或恶意指令不会越权
Regression bug确认历史故障不会再次出现

每个样例都要写清楚成功信号和禁止动作。只写“回答应该好”无法自动回归。

指标与阈值

指标建议用法
pass_rate端到端通过率,适合作发布闸门
critical_failures高风险失败数量,通常应为 0
tool_precision调用的工具是否必要且正确
schema_pass_rate结构化输出是否符合接口
evidence_coverage结论是否引用了足够证据
cost_per_case每个样例平均成本
latency_p95交互任务的尾延迟

阈值应按任务类型设定。客服问答、代码修改、研究报告、生产运维不应使用同一套门槛。

自动评测与人工评审

方式适合不适合
规则评测JSON schema、禁止动作、命令结果、测试通过开放式质量判断
LLM-as-Judge摘要质量、引用完整性、回答风格高风险合规结论的唯一依据
人工评审新任务类型、主观质量、安全复盘高频回归闸门
轨迹回放工具链、长任务、失败恢复只看最终文本的简单问答

最稳妥的组合是:规则评测守底线,LLM-as-Judge 辅助开放式判断,人工评审发现新型错误,trace 用于归因。

发布闸门

模型、提示词、工具 schema 或上下文策略变化时,发布前至少检查:

  • 核心样例通过率不下降。
  • 高风险样例没有新增 critical failure。
  • 成本和延迟在可接受范围内。
  • 历史失败样例没有复发。
  • 失败 trace 已被归类,并决定是修复、接受还是延期。

如果某次变更“主观感觉更聪明”,但评测集、trace 和人工评审都没有证明,就不应直接替换线上策略。

人工评审

自动评测适合做回归闸门,人工评审适合发现新型错误。尤其是研究型、法律、医疗、金融、运维类 Agent,不应该只依赖模型自评。

延伸阅读

参考来源

On this page