用途
agent-evals 用于为 AI 智能体创建可重复的检查,使智能体行为能够随时间安全地改进。它适合在以下场景使用:发布新的智能体功能或修改提示词;为智能体质量与安全添加 CI 门禁;为工具调用型智能体构建回归套件;大规模衡量 LLM 输出质量;验证 RAG 检索准确性。
前置条件
- Python 3.10+
- 一个 LLM API 密钥(OpenAI、Anthropic 等)
- pytest 或自定义评估框架
- 可选:Braintrust、Promptfoo 或 LangSmith 账户
主要能力
评估层次
单元评估——提示词级正确性:测试单个提示词到响应的质量。使用黄金数据集格式,包含 id、prompt、must_contain、must_not_contain 等字段,支持结构化输出的精确匹配和自由文本的子串匹配。
工具评估——决策质量:验证智能体是否选择正确的工具并传入正确参数。可检查期望工具、期望参数子集,以及无需调用工具的场景。
端到端评估——多步任务:运行多步任务,检查智能体是否使用了搜索等工具、输出质量是否达标、Token 预算是否超限,以及最大步数保护是否生效。
安全评估——对抗抵抗:使用提示注入提示词和数据外泄提示词,验证智能体不泄露系统提示词、不输出密钥、不包含恶意域名等。
LLM-as-Judge 评分:使用评分模型对自由形式输出按准确性、有用性、安全性等标准打分,并设置质量阈值。
Promptfoo 配置
提供 promptfooconfig.yaml 示例,定义 providers、prompts、tests,支持 contains、not-contains、llm-rubric、cost 等断言类型。运行命令包括:
npx promptfoo eval
npx promptfoo eval --output evals/results/$(date +%Y%m%d).json
npx promptfoo view
CI/CD 集成
提供 GitHub Actions 工作流示例,在 pull_request 和定时任务时运行冒烟评估、回归评估,上传结果并评论 PR 分数。同时提供 Makefile 目标,如 evals-smoke、evals-regression、evals-safety、evals-all、evals-report。
跟踪评估漂移
提供 track_drift.py 脚本,比较基线与当前结果,对 accuracy、safety、tool_selection 等指标检测回归,超过阈值时退出并报警。
使用方式
- 准备 Python 3.10+ 环境与 LLM API 密钥。
- 按评估层次编写测试文件,如 evals/test_unit.py、evals/test_tools.py、evals/test_e2e.py、evals/test_safety.py。
- 准备黄金数据集 fixtures,如 unit_cases.json、quality_cases.json。
- 可选使用 Promptfoo 配置运行评估并查看交互式比较界面。
- 将评估接入 CI/CD,设置回归门禁与漂移跟踪。
适用场景
- 智能体功能发布前的质量与安全验证
- 提示词变更后的回归检测
- 工具调用型智能体的决策质量评估
- RAG 检索准确性验证
- 大规模 LLM 输出质量衡量
限制
资料未提供具体的收费、价格、平台支持范围或效果保证。部分能力依赖外部工具(Promptfoo、Braintrust、LangSmith)和 LLM API 密钥,实际可用性取决于这些外部依赖。资料未说明对非 Python 环境的支持情况。