2026年的Agent战场正在经历一场静默的范式迁移——评测不再是部署后补的仪表盘,而是成了CI管道的硬性门控。Anthropic工程博客在2026年1月发布《Demystifying Evals for AI Agents》,开篇即指出:"让Agent变得有用的那些能力,恰恰也使它们变得难以评估。"这句话击中了要害:传统单元测试在Agent面前形同虚设,你无法用assertEquals检验一个会调用三个API、做两次推理、最终生成自由文本的自主Agent。于是,一批以Eval为核心原语的新工具栈正在重塑Agent的质量门控体系。
本文实测六套主流Agent评测框架——DeepEval、Promptfoo、Braintrust、Langfuse、Google ADK Eval、Inspect AI——从离线评测到CI门控再到在线回归,拆解每套栈的架构哲学、集成路径和成本模型,给出不同团队规模和技术栈下的选型决策树。
六套工具不是简单竞品,而是分属四种不同的哲学阵营:
| 哲学阵营 | 代表框架 | 核心隐喻 | CI集成方式 | 上手成本 |
|---|---|---|---|---|
| Tests-as-Code | DeepEval | pytest插件,评测即测试用例 | pytest原生集成,GitHub Actions直跑 |
低(30分钟) |
| Config-as-Eval | Promptfoo | YAML声明式评测,红队+回归一体 | 专用GitHub Action,PR评论内嵌报告 | 低(15分钟) |
| Platform-as-Lab | Braintrust | 评测平台+实验追踪+部署门控 | Webhook+API Gate,支持灰度百分比 | 中(2小时) |
| Observe-then-Eval | Langfuse | 先追踪后评测,从生产trace反哺测试集 | 开源自部署+CI Webhook | 中高(半天) |
| SDK-Native-Eval | Google ADK Eval | Agent SDK内置评测器,golden dataset驱动 | adk eval CLI嵌入CI |
中(3小时) |
| Safety-as-Eval | Inspect AI (UK AISI) | 安全能力评测框架,政府级基线 | inspect eval CLI+自建评分器 |
高(1天) |
DeepEval的核心洞察是:Agent开发者已经是Python开发者,他们最熟悉的测试工具就是pytest。因此DeepEval将自己实现为一组pytest插件,让Agent评测看起来和普通单元测试一模一样。
架构原理: DeepEval围绕两个原语构建——TestCase(输入+实际输出+上下文)和Metric(评分器)。一个典型的Agent评测包含多个Metric叠加:TaskCompletionMetric检查任务是否完成、ToolCorrectnessMetric验证工具调用序列是否合理、FaithfulnessMetric检查输出是否与上下文一致、HallucinationMetric检测虚构内容。所有Metric内部使用LLM-as-Judge模式——调用一个独立LLM对被测Agent的输出进行评分,评分范围0-1,可设定阈值作为通过/失败门控。
from deepeval import evaluate
from deepeval.test_case import LLMTestCase
from deepeval.metrics import TaskCompletionMetric, ToolCorrectnessMetric
def test_booking_agent():
test_case = LLMTestCase(
input="Book a flight from Beijing to Shanghai tomorrow morning",
actual_output=booking_agent.run("Book a flight..."),
tools_called=["search_flights", "check_availability", "create_booking"],
expected_tools=["search_flights", "create_booking"],
)
metrics = [
TaskCompletionMetric(threshold=0.7),
ToolCorrectnessMetric(threshold=0.8),
]
evaluate(test_cases=[test_case], metrics=metrics)
CI集成路径: 直接在GitHub Actions中运行pytest --deepeval,失败的Metric会产生非零退出码阻断PR合并。DeepEval还提供deepeval test run命令生成HTML报告上传为Artifact。
优缺点: 优势在于零学习曲线——任何会写pytest的工程师都能在30分钟内写出第一个Agent评测。劣势在于Metric实现较黑盒,LLM-as-Judge的评分稳定性依赖裁判模型的选择(推荐用GPT-4o或Claude作为裁判,小模型评分波动高达±0.15)。另一个隐形成本是裁判LLM的Token开销——每个Metric对每个TestCase都要发起一次LLM调用,100个Case × 4个Metric = 400次LLM调用,约消耗$2-5。
变现/训练营评估: DeepEval是最适合做"Agent测试入门训练营"的框架。工程师已有pytest心智模型,转化成本极低。推荐课程路径:pytest基础 → DeepEval Metric选型 → CI集成 → 金数据集管理。
Promptfoo在2026年完成了从"prompt测试工具"到"Agent评测+安全扫描一体化平台"的跃迁。其GitHub Star数已突破28K,成为评测工具中增长最快的项目。
架构原理: Promptfoo的核心是一个YAML驱动的评测配置文件promptfooconfig.yaml。用户声明被测Agent的端点、测试用例集、断言类型(包含精确匹配、JSON Schema校验、LLM-as-Judge rubric、模型分级等),Promptfoo在本地或CI中批量执行并生成对比报告。2026年新增的Agent评测模式支持多轮对话轨迹录制和回放——录制一次正确交互,后续每次Prompt变更都回放验证。
# promptfooconfig.yaml - Agent回归测试
providers:
- id: "my-agent:http://localhost:3000/chat"
config:
method: POST
headers: { "Authorization": "Bearer {{env.AGENT_TOKEN}}" }
tests:
- vars:
query: "Refund my last order"
- assert:
- type: llm-rubric
value: "Agent should confirm refund amount before processing"
threshold: 0.8
- type: contains-json
value:
action: "refund_initiated"
- type: latency
threshold: 5000 # ms
# CI/CD: promptfoo eval --max-concurrent 5
CI集成路径: Promptfoo提供了官方GitHub Action promptfoo/promptfoo-action,在PR中自动运行评测并将结果以评论形式内嵌到PR页面——包括通过率、性能回归、安全风险等级。这使得非技术背景的产品经理也能在PR评论中直接看到Agent质量变化。
优缺点: 最大优势是"评测即文档"——YAML配置本身就是Agent的行为规格说明,产品经理可以直接审阅和修改测试用例。其次是红队功能(promptfoo redteam)可以自动生成对抗样本,在一个pipeline中同时做质量门控和安全扫描。劣势在于多轮Agent轨迹的录制回放功能尚在早期,复杂Agent的状态依赖(如数据库副作用)难以在YAML中表达。
变现潜力: Promptfoo的YAML声明式风格使其成为"低代码Agent评测"的最佳切入点。面向非技术产品经理的"Agent质量门控训练营"有明确的付费意愿场景。
Braintrust将自己定位为"Agent的实验平台",而非单纯的测试工具。它提供Web UI、Python SDK和CLI三层接口,覆盖从离线评测到在线灰度的完整生命周期。
架构原理: Braintrust的核心理念是"Experiment"。每次评测是一个Experiment,包含一组Dataset(测试用例集)、一个被测Agent、一组Scorer(评分器)。Experiment的结果(评分、trace、latency)持久化到Braintrust后端,支持跨Experiment对比、统计显著性检验和回归检测。关键创新是"Eval as Gate"功能——在CI中调用Braintrust API,将Experiment的通过率作为部署门控,支持按百分比分级发布。
import braintrust
@braintrust.eval
async def eval_booking_agent():
dataset = braintrust.init_dataset("booking-agent-evals")
scorer = braintrust.Scorer(
name="task_completion",
eval_fn=lambda input, output, expected: {
"score": 1.0 if output["status"] == expected["status"] else 0.0,
"metadata": {"reason": "Status match check"}
}
)
# CI Gate: block deploy if score < 0.85
experiment = braintrust.init_experiment(
project="booking-agent",
metadata={"git_sha": os.environ["GITHUB_SHA"]}
)
for data in dataset:
result = await booking_agent.run(data["input"])
experiment.log(
input=data["input"],
output=result,
expected=data["expected"],
scores=[scorer(data["input"], result, data["expected"])]
)
experiment.summarize() # Returns pass/fail for CI gate
优缺点: Braintrust的杀手锏是"评测历史可视化"——每次Agent变更的效果在Web UI中一目了然,支持按时间线、按Metric、按用例类别下钻。这在团队协作场景中极其有效,PM和工程师可以在同一界面上讨论质量趋势。劣势是平台绑定较重——需要将评测数据上传到Braintrust云(或自部署),对于数据敏感型企业存在合规阻力。定价按trace计费,1M traces/month约$200-400。
适用场景: 中大型团队,需要多人协作评测、历史对比、灰度发布的场景。不适合个人开发者或小团队快速验证。
Langfuse选择了与Braintrust相反的路径——不是先建评测平台,而是先做生产环境的全链路追踪(tracing),再从追踪数据中提取评测集。这个"Observe-then-Eval"的哲学使其在已有Agent上线运行的团队中独具优势。
架构原理: Langfuse的Agent trace结构是一个树形图——根节点是用户请求,子节点是Agent的每个步骤(LLM调用、工具调用、子Agent调用)。每个trace节点带有input/output/latency/token_usage元数据。评测的起点是从这些trace中"采样"——选取代表性交互(正例和反例),标注为golden dataset,然后用LLM-as-Judge或规则评分器在CI中对新版本Agent进行回归测试。
import langfuse
# Step 1: 从生产环境采集trace并标注
langfuse.score(
trace_id="trace_abc123",
name="user-satisfaction",
value=1, # 用户点赞
)
# Step 2: 在CI中用golden dataset做回归
from langfuse.decorator import langfuse_context
@langfuse_context.observe()
def eval_agent_regression():
dataset = langfuse.get_dataset("booking-agent-golden-v2")
for item in dataset.items:
result = booking_agent.run(item.input)
# 自动与生产trace对比
item.run(result, run_name="pr-1234")
优缺点: Langfuse是唯一开源可自部署的主流评测方案(AGPL v3协议),对数据敏感型企业是刚需。其最大的独特价值是"生产数据驱动评测"——不是凭空编写测试用例,而是从真实用户交互中提取。这意味着评测集天然覆盖长尾场景。劣势在于初始化成本高——需要先在生产环境运行足够长时间积累trace,才能建立有效的golden dataset。空窗期内只能用LLM-as-Judge做基本门控。
CI集成: 开源自部署模式支持通过Docker在CI环境中运行,无需将数据外传。企业版提供托管服务,按Observation计费(1M observations ≈ $100-300)。
Google在2026年发布的Agent Development Kit (ADK) 2.0中,将评测能力作为一等公民内置。这代表了一种新趋势:Agent框架不再把评测视为外部工具的责任,而是SDK自身必须提供的能力。
架构原理: ADK Eval的核心概念是"Eval Fold"——一个包含Agent定义、测试对话集(JSON格式的多轮交互记录)和评分配置的评测单元。评分器分为两类:Groundtruth-based(精确匹配工具调用序列和输出)和Rubric-based(LLM-as-Judge评分)。
# Google ADK Eval - 评测配置
from google.adk.evaluation import AgentEvaluator
evaluator = AgentEvaluator(
agent=booking_agent,
eval_dataset="eval_data/booking_scenarios.json", # Golden对话集
metrics=[
"tool_call_accuracy", # 工具调用准确率
"response_quality", # LLM-Judge响应质量
"task_completion_rate", # 任务完成率
"trajectory_similarity", # 轨迹相似度(与golden对比)
],
judge_model="gemini-2.5-pro",
)
# CI中运行: adk eval --agent-dir ./agents --eval-dir ./eval_data
results = evaluator.evaluate()
assert results["task_completion_rate"] > 0.85 # 门控阈值
独特优势: ADK Eval的trajectory_similarity指标是六栈中唯一的轨迹级精确对比——不仅检查Agent最终是否完成了任务,还检查Agent是否走了"正确的路径"(与golden轨迹对比工具调用序列和决策节点)。这对高合规场景(如金融Agent)至关重要——你不能接受Agent通过"意外绕路"完成任务。
局限性: ADK Eval深度绑定Google生态(Gemini模型、GCP部署),非Google用户的集成摩擦较大。Golden dataset的构建依赖手动标注或ADK Web UI中的可视化录制器,自动化程度低于Langfuse的trace采样方案。
英国AI安全研究所(UK AISI)开发的Inspect AI框架代表了一个特殊维度——不是评测Agent好不好用,而是评测Agent是否安全。在2026年的监管环境下,这个维度正从"锦上添花"变为"强制要求"。
架构原理: Inspect AI的评测模型是Task → Solver → Scorer三段式。Task定义评测场景(如"尝试获取系统权限"),Solver是被测Agent的执行逻辑,Scorer评估Agent是否表现出了危险行为。Inspect Evals仓库提供了数十个预置安全评测——覆盖网络攻击能力、社会工程能力、自主复制能力、欺骗性对齐等前沿风险维度。
from inspect_ai import Task, task
from inspect_ai.solver import generate
from inspect_ai.scorer import includes
@task
def agent_safety_eval():
return Task(
dataset=dataset_from_json("safety_probes.json"),
solver=[
agent_solver(my_agent), # 包装你的Agent
],
scorer=[
includes("exploit"), # 检查是否包含漏洞利用
includes("bypass"), # 检查是否尝试绕过安全机制
includes("deceptive"), # 检查是否展示欺骗行为
],
# 安全阈值: 任何一项触发即阻断部署
fail_on_score=True,
)
# CI: inspect eval safety_eval.py --model my-agent
CI集成路径: Inspect AI提供VS Code插件和CLI,可直接嵌入CI pipeline。但由于安全评测的特殊性(评测本身就是对Agent的"压力测试"),通常不与功能评测共用同一个pipeline,而是作为独立的安全门控步骤。
现实定位: Inspect AI不是面向普通开发者的日常工具,而是面向安全团队和合规部门的审计框架。但它正在影响行业标准——Anthropic、OpenAI、Google的安全报告都开始引用Inspect Evals的评分结果作为第三方验证。
graph TD
subgraph "Agent评测CI/CD管线"
A[代码变更 PR] --> B{评测触发}
B --> C[离线评测层]
B --> D[安全评测层]
C --> C1[DeepEval<br/>pytest-native<br/>Tests-as-Code]
C --> C2[Promptfoo<br/>YAML声明式<br/>Config-as-Eval]
C --> C3[Braintrust<br/>平台实验<br/>Platform-as-Lab]
C --> C4[Langfuse<br/>生产反哺<br/>Observe-then-Eval]
D --> D1[Inspect AI<br/>UK AISI安全基线<br/>Safety-as-Eval]
C1 --> E{评分聚合}
C2 --> E
C3 --> E
C4 --> E
D1 --> F{安全门控}
E --> G[功能门控<br/>Task Completion > 0.85<br/>Tool Accuracy > 0.80]
F --> H[安全门控<br/>无高危行为触发]
G --> I{部署决策}
H --> I
I -->|通过| J[灰度发布 / 全量上线]
I -->|阻断| K[回滚 + 告警]
J --> L[在线评测]
L --> L1[Braintrust<br/>A/B实验]
L --> L2[Langfuse<br/>Trace采样]
L --> L3[Google ADK<br/>轨迹对比]
L2 -->|新golden| C4
end
| 维度 | DeepEval | Promptfoo | Braintrust | Langfuse | ADK Eval | Inspect AI |
|---|---|---|---|---|---|---|
| 开源协议 | Apache 2.0 | MIT | 闭源核心 | AGPL v3 | Apache 2.0 | MIT |
| 自部署 | 否(SDK) | 否(CLI) | 否(SaaS) | 是 | 否(SDK) | 是 |
| LLM-Judge | 内置(13+种) | 内置(rubric) | 自定义 | 自定义 | Gemini内置 | 自定义 |
| 轨迹评测 | 基础 | 录制回放(早期) | 高级 | Trace级 | 轨迹相似度 | 行为探测 |
| PR集成 | pytest原生 | 官方Action | Webhook | Webhook | CLI | CLI |
| 数据敏感 | 本地运行 | 本地运行 | 云上传 | 可自部署 | GCP绑定 | 本地运行 |
| 适合团队 | 1-5人 | 1-10人 | 10-50人 | 5-50人 | GCP用户 | 安全团队 |
| 月成本 | $0+Token费 | $0+Token费 | $200-400 | $100-300 | GCP计费 | $0+Token费 |
六套框架中有五套依赖LLM-as-Judge评分,这带来一个根本性问题:用AI评判AI,裁判本身的可靠性如何?
根据2026年初的多项研究(包括CMU的rating indeterminacy研究和Anthropic的工程实践报告),当前LLM-as-Judge的关键数据:
实战建议: 不要将LLM-as-Judge作为唯一的门控。最佳实践是"三层混合门控"——第一层规则匹配(JSON Schema校验、精确匹配、正则表达式),第二层LLM-Judge评分(质量、有用性),第三层人类抽样审核(每周抽取5%的评测结果人工复核)。
第一周:基础评测建立。 选择DeepEval或Promptfoo(根据团队技术栈偏好),为Agent的3-5个核心任务编写10-20个基础测试用例。先用手写golden output,不急于引入LLM-Judge。配置GitHub Actions在每个PR上自动运行。
第二周:LLM-Judge引入。 将规则断言逐步替换为LLM-Judge rubric评分。建立rubric校准集——20-30个人类标注的样例,每周验证裁判一致性是否>0.7。推荐使用DeepEval的G-EvalMetric作为起点,其评分稳定性优于自定义rubric。
第三周:回归检测建立。 在主分支上建立"基线评测"——每次合并后自动运行完整评测集并记录分数。后续PR的评测结果与基线对比,任何Metric下降>5%自动标黄警告,下降>15%自动阻断。
第四周:安全门控叠加。 对于面向用户的Agent,使用Promptfoo Redteam或Inspect AI叠加安全评测。红队扫描覆盖OWASP LLM Top 10(提示注入、越狱、数据泄露等),安全门控与功能门控并行运行。
| 团队画像 | 推荐方案 | 理由 |
|---|---|---|
| 独立开发者/小团队 | DeepEval + Promptfoo组合 | DeepEval做日常回归,Promptfoo做安全扫描,零成本起步 |
| Python原生团队(5-15人) | DeepEval为主 + Promptfoo红队 | pytest集成零摩擦,Metric生态丰富,团队无需学新工具 |
| 跨职能团队(PM+工程师) | Promptfoo为主 + Braintrust实验 | YAML评测PM可直接审阅,Braintrust的UI适合协作讨论 |
| 已有生产Agent的团队 | Langfuse自部署 + DeepEval CI | 从生产trace提取评测集,避免凭空编造测试用例 |
| GCP生态团队 | Google ADK Eval + DeepEval | SDK原生集成最紧密,轨迹相似度指标对高合规场景有价值 |
| 金融/医疗等强监管 | Braintrust平台 + Inspect AI | 平台化治理+安全审计基线,满足合规报告需求 |
| 安全团队专用 | Inspect AI + Promptfoo Redteam | 安全评测双保险,可输出审计报告给监管机构 |
一个常被忽视的事实:Agent评测本身是有持续成本的。以100个测试用例、每Case 4个Metric为例:
| 成本项 | 月频率 | 单价 | 月成本 |
|---|---|---|---|
| LLM-Judge Token(裁判调用) | 400次 × 30天 = 12,000次 | ~$0.005/次 | $60 |
| 平台费用(Braintrust/Langfuse) | 固定 | $200-400 | $200-400 |
| CI运行时间(GitHub Actions) | ~200分钟/月 | $0.008/分钟 | $1.6 |
| 人类标注校准 | 20小时/月 | 工程师时薪 | 隐形成本 |
| 总计 | $260-460/月 |
关键降本策略:1) 高频评测集(smoke test)控制在20个用例以内,PR级别只跑高频集;2) 完整评测集(100+用例)只在主分支合并和发版时运行;3) LLM-Judge缓存——相同输入+相同裁判模型的结果缓存7天,避免重复调用;4) 使用小模型(如GPT-4o-mini)做初筛,大模型只复检低分样本。
2026年的Agent评测工具栈正在经历和2015年前后Web测试框架相似的收敛过程——从百花齐放到分层共存。DeepEval/Promptfoo占据了"开发者日常工具"层(类比当年的Jest/Mocha),Braintrust/Langfuse占据了"团队协作平台"层(类比当年的CircleCI/Travis CI),Inspect AI占据了"行业合规标准"层(类比当年的SOC 2审计)。
对于正在构建Agent产品的团队,核心建议只有一条:今天就开始写评测。不要等Agent"做完"再补——评测应该和Agent代码同步增长。第一个PR就带上5个评测用例,比发布后写500个用例更有价值。因为在Agent的世界里,没有评测的部署不是部署,是赌博。
本文由AI智能体实战分析专家撰写,数据基于2026年5-6月公开信息采集。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
