AgentEvals 轨迹评测

从已有 OpenTelemetry 轨迹评估 AI Agent,无需重跑 Agent。

Star 数
★ 166
最近更新
5 天前
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
命令行工具网页应用自托管服务
可在哪里用
通用 · 跨平台Codex · Claude Code(部分支持)
费用
免费,无需付费服务
上手难度
中 · 需要几步配置
开始前需要
PythonuvDockerPostgresShell / 命令行网络访问本地文件系统MCP Server
典型场景
为使用 OpenTelemetry 的 Agent 团队在 CI 中对记录的轨迹运行确定性工具轨迹检查,并用退出码阻止不合格部署。
不适合
  • 需要端到端评估长时间编码会话的团队
  • 要求项目已稳定且避免破坏性变更的团队

这个 Agent 能做什么,适合哪些场景?

AgentEvals 接收 Agent 已生成的 OpenTelemetry 数据,并将 GenAI span 和日志事件转换为对话轮次、工具调用、令牌与回答。它通过 CLI、Web UI、REST API、gRPC API 或 MCP 服务器运行评估,也可接收 OTLP HTTP 和 gRPC 数据。内置指标涵盖工具轨迹、回答匹配和基于 LLM 的评分,用户也能添加自定义评估器和评分规则。评估结果可作为 gen_ai.evaluation.result 日志事件导出,并关联到被评估的 span。它可本地运行、以 Docker 部署或通过 Helm 部署到 Kubernetes;运行历史可选用 Postgres 持久化。

AgentEvals 从 OTLP HTTP 或 gRPC 接收实时遥测,也可读取 OTLP JSON、Jaeger JSON 或 Collector file exporter 文件。它从 invoke_agent、execute_tool 和模型调用 span,以及 GenAI 消息属性、span 事件或日志事件中提取轮次、工具调用、令牌、模型和消息,再与 golden eval set 比较。用户可运行 agentevals run,选择内置指标、LLM judge 或自定义评估器;也可在 Web UI 检查 span 树和实时会话,或通过 MCP 工具和 API 评估会话。结果可输出为 CLI 文本或 JSON,并通过 --emit-otel 以 gen_ai.evaluation.result 事件送回遥测管线。

  1. 为使用 OpenTelemetry 的 Agent 团队在 CI 中对记录的轨迹运行确定性工具轨迹检查,并用退出码阻止不合格部署。
  2. 使用 Google ADK、Strands、LangChain、OpenAI Agents SDK 或 Pydantic AI 的开发者,想从现有 OTLP 数据评估 Agent,而不重跑调用。
  3. 需要人工检查实时 Agent 会话、工具输入输出和 span 树的工程师,可运行服务器并使用内置 Web UI。
  4. 维护 OpenTelemetry Collector 管线的团队,想将评估结果作为 gen_ai.evaluation.result 事件回传并供后端查询或告警。
  5. 需要将领域规则接入评估的团队,可用任意语言编写通过 stdin/stdout 传递 JSON 分数的自定义评估器。
  6. 在 Kubernetes 部署 Agent 评估服务的运维团队,可使用 Helm chart,并在需要运行历史记录时配置 Postgres。

如何安装或部署这个 Agent?

安装 CLI;若需要 MCP 服务器,使用 live extra。运行 AgentEvals 不要求付费服务或 API 密钥。若从源码安装,仓库说明使用 uv sync,随后可通过 uv run agentevals 启动命令。

如何使用这个 Agent?

对已记录的轨迹运行工具轨迹指标,并可选择 JSON 输出或将结果发回 OTLP 管线:

agentevals run samples/helm.json \
  --eval-set samples/eval_set_helm.json \
  -m tool_trajectory_avg_score

启动服务以接收实时 Agent 遥测;将 Agent 的 OTLP exporter 指向默认 HTTP 端点。service.instance.id 可区分重跑,agentevals.session_name 可命名会话:

agentevals serve --dev
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
export OTEL_RESOURCE_ATTRIBUTES="agentevals.session_name=my-agent,service.instance.id=$(uuidgen)"
python your_agent.py

可选 Python SDK 用 AgentEvals 会话设置 eval set:

from agentevals import AgentEvals

app = AgentEvals()

with app.session(eval_set_id="my-eval"):
    agent.invoke("Roll a 20-sided die for me")

这个 Agent 有哪些优点和局限?

优点
  • 直接评估已有遥测,不需重跑 Agent,因此同一运行可重复评分而不消耗额外 Agent 令牌。
  • 接受标准 OTLP HTTP 和 gRPC,并支持多种框架及 Collector 管线。
  • 支持确定性匹配、LLM judge、rubrics 和任意语言的自定义评估器。
  • 可输出与被评估 span 关联的标准 gen_ai.evaluation.result 事件,便于接入现有遥测后端。
局限
  • 项目处于积极开发阶段,文档提示可能发生破坏性变更。
  • 评估取决于输入遥测包含可识别的 GenAI span 或消息;未包装成相应 span 的编码会话可能无法形成评估轮次。
  • 长时间编码会话的端到端成功评估不在其目标范围内。
  • 持久化运行历史需要配置 Postgres;该存储层为预览,schema 可能在小版本间变化。

这个 Agent 与同类方案有什么区别?

README 将 AgentEvals 与 LangSmith、Langfuse、Opik 和 Bedrock AgentCore evaluation 对比:这些方案被描述为需要重跑 Agent,或先依赖自己的 SDK 和存储;AgentEvals 则评估已有 OpenTelemetry 数据。README 也指出,ADK eval 会在一个步骤中运行并评分 Agent,而 AgentEvals 只从遥测评分,并采用 ADK 的指标和 eval set 格式。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
AgentEvals 轨迹评测 当前 68 · 存在缺口 命令行工具免费 ★ 166 5 天前 Python —
AI 评测技能集 52 · 缺口较多 Agent 插件 / 技能 ★ 1.5k 24 天前 — —
Voice Lab 27 · 缺口较多 命令行工具免费 + 模型费 ★ 175 1 年前 Python OpenAI API
LangWatch 78 · 表现良好 命令行工具免费版 + 付费版 ★ 5k 今天 TypeScript OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
68/ 100 五分制 3.4 / 5
信任安全 14/29
可靠稳定 9/14
适用触发 14/18
规范维护 14/18
有效结果 12/13
证据核验 5/8
查看各维度的扣分理由
信任安全14 / 29 · 2.4/5

证据显示 CI 权限限于 contents: read,SDK 不读取其他后端的 OTEL_EXPORTER_OTLP_* 凭据,并说明会处理的遥测字段和 OTLP 输出;依赖配置还列出若干安全版本下限。扣分原因:服务接收消息内容,但材料未说明敏感字段过滤、访问控制或保留策略;执行评估、发送遥测及持久化均未要求确认,远程评估器和 MCP 有外部影响,且未见回滚说明。ADK 指标与格式有致谢,但发布者身份及维护负责人未获验证。

可靠稳定9 / 14 · 3.2/5

README 的离线文件评估、在线服务、可选 Postgres 和可选 SDK 描述大体一致,CI 检查锁文件并覆盖多个 Python 版本;示例也展示了轨迹不匹配的失败说明。扣分原因:材料未证明依赖源持续可用或所有故障路径都有清晰错误处理;CI 配置不能替代本次执行验证。

适用触发14 / 18 · 3.9/5

材料列出多种框架、CI、CLI、UI、MCP、Docker 和 Kubernetes 用例,并明确 Claude Code 等场景仅部分支持,长编码会话端到端评分不在适用范围内。扣分原因:触发入口虽有说明,但权限、部署边界及不同环境的安全配置未完整界定。

规范维护14 / 18 · 3.9/5

README 的目录式导航、安装命令、快速开始、框架示例、FAQ 和限制说明较完整;仓库含 Apache-2.0 许可证。扣分原因:项目明确处于活跃开发且预期会有破坏性变更,材料没有具体版本迁移约定或变更日志;虽有贡献指南和 CI,未明确维护责任人。

有效结果12 / 13 · 4.6/5

结果可输出为 JSON 或 OpenTelemetry 评估事件,示例展示了可读的通过与失败原因;基于已有轨迹评估可避免重跑 Agent,体现了清楚的增量价值。扣分原因:LLM judge、服务部署及可选持久化会带来额外成本,材料没有量化其与收益的权衡。

证据核验5 / 8 · 3.1/5

README 对输入、输出、支持格式、限制和安装方式给出具体说明,且 pyproject、CI 与部分测试能交叉印证依赖、安全下限、版本范围和持久化行为。扣分原因:不少能力描述仍是 README 声明,材料没有逐项对应的实现证据;本评估仅据静态材料,未执行或独立验证。

风险与缓解建议
  • 接收的遥测可能包含消息内容;部署前应核对采集范围、访问控制和保留设置。
  • 项目声明仍在活跃开发并可能出现破坏性变更;升级前应检查兼容性。
证据充分度:低 评估于 2026年10月17日 审查版本 618c9422ea6b
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.11.0
    发布说明摘录
    What's Changed * feat: v1alpha1 protobuf contract + native gRPC by @krisztianfekete in https://github.com/agentevals-dev/agentevals/pull/251 * Give rubric_based_* metrics a public rubric path (#132) by @erauner12 in https://github.com/agentevals-dev/agentevals/pull/229 * fix: resolve the package version from v* tags only by @krisztianfekete in https://github.com/agentevals-dev/agentevals/pull/254 * chore(ui): bump dev dependencies by @krisztianfekete in https://github.com/agentevals-dev/agentevals/pull/255 …
    在 GitHub 查看 ↗
  2. v0.10.0
    发布说明摘录
    agentevals v0.10.0 agentevals now reads, stores and evaluates agent telemetry as plain OpenTelemetry. Send OTLP from any GenAI instrumentation, evaluate turns against a golden run, and get the scores back into your observability pipeline as OTel events. Highlights - OpenTelemetry native ingestion. OTLP over HTTP (:4318, now spec compliant with gzip, proper 400 errors and protobuf responses) and gRPC (:4317). Files can be OTLP JSON or protobuf, Jaeger, JSONL, or Collector file exporter output. See [Sending telemetry to agentevals](https://github.com/agentevals-dev/agentevals/blob/v0.10. …
    在 GitHub 查看 ↗
  3. v0.9.12
    发布说明摘录
    What's Changed * chore(deps): bump the npm group in /ui with 10 updates by @dependabot[bot] in https://github.com/agentevals-dev/agentevals/pull/217 * ci: hold mcp at 1.x in the dependabot python group by @krisztianfekete in https://github.com/agentevals-dev/agentevals/pull/219 * chore(deps): bump astral-sh/setup-uv from 10.0.1 to 10.1.0 in the github-actions group by @dependabot[bot] in https://github.com/agentevals-dev/agentevals/pull/221 …
    在 GitHub 查看 ↗

常见问题

评估会额外消耗 Agent 的模型令牌吗?
评估读取已记录的遥测,不重跑 Agent,因此不会增加 Agent 调用的令牌消耗。若启用 LLM judge,项目资料未说明其模型调用费用。
必须部署服务器或数据库吗?
不必。CLI 可离线评估磁盘上的轨迹文件;服务器用于 Web UI、实时 OTLP 会话及读取会话的 MCP 工具。Postgres 仅用于可选的运行历史。
能评估 Claude Code 或 Codex 的完整编码过程吗?
有限支持。它们本身不输出 GenAI 语义约定 span;只有当包装层提供相关 span,或按示例将自身 span 映射为工具和模型调用时,AgentEvals 才能识别轮次。项目不面向长编码会话的端到端评分。
Agent 必须使用哪种框架或遥测传输?
框架需输出符合 OpenTelemetry GenAI 语义约定的数据;支持 OTLP HTTP 和 gRPC。README 列出的示例包括 Google ADK、Strands、LangChain、OpenAI Agents SDK 与 Pydantic AI。
如何在 CI 中判断评估是否通过?
为 agentevals run 提供轨迹、eval set、指标和阈值;CLI 可用退出码作为部署门禁,并可通过 --output json 输出机器可读结果。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents