SuperAPI AI 工具集

agent-evals

测试与质量

查看项目

更新于 10-15 14:42

技能介绍

用途

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 等指标检测回归,超过阈值时退出并报警。

使用方式

  1. 准备 Python 3.10+ 环境与 LLM API 密钥。
  2. 按评估层次编写测试文件,如 evals/test_unit.py、evals/test_tools.py、evals/test_e2e.py、evals/test_safety.py。
  3. 准备黄金数据集 fixtures,如 unit_cases.json、quality_cases.json。
  4. 可选使用 Promptfoo 配置运行评估并查看交互式比较界面。
  5. 将评估接入 CI/CD,设置回归门禁与漂移跟踪。

适用场景

  • 智能体功能发布前的质量与安全验证
  • 提示词变更后的回归检测
  • 工具调用型智能体的决策质量评估
  • RAG 检索准确性验证
  • 大规模 LLM 输出质量衡量

限制

资料未提供具体的收费、价格、平台支持范围或效果保证。部分能力依赖外部工具(Promptfoo、Braintrust、LangSmith)和 LLM API 密钥,实际可用性取决于这些外部依赖。资料未说明对非 Python 环境的支持情况。