问题:你构建了一个智能体,但它真的能用吗?
你花了几天甚至几周的时间构建一个AI智能体。它能回答问题、调用工具并进行对话。你手动测试了几次,它似乎能用。但当你准备部署它或与用户分享时,一个挥之不去的问题出现了:你如何真正知道它是可靠的?
手动测试是一个开始,但它很脆弱。你可能会反复测试相同的三个场景,而错过边缘情况。你可能会修改一个提示词,却破坏了你没想到要检查的功能。你甚至可能对智能体“有效”的含义没有清晰的定义。是给出听起来合理的答案就够了,还是需要每次都事实正确?它是否需要以特定顺序使用工具?它是否应该拒绝某些请求?
没有结构化的评估过程,你就是在盲飞。你无法衡量改进,无法捕捉回归,也无法自信地告诉利益相关者你的智能体达到了质量标准。对于基于像Google的智能体开发工具包(ADK)这样的框架构建的智能体来说,这一点尤其重要,因为其行为可能很复杂且涉及多轮对话。
核心问题是评估是事后才考虑的事情。大多数开发者先构建,希望以后再测试。但“以后”通常意味着在发布前进行几次手动抽查。你需要的是一种方法,能够预先定义成功是什么样子,自动针对这些定义运行你的智能体,并获得清晰、可操作的反馈,指出它在哪里失败。
一个好的评估解决方案应该改变什么
一个针对AI智能体的适当评估系统,不应该仅仅是运行几个测试用例。它应该提供:
- 定义测试用例的结构化方式。 不仅仅是“问它一个问题”,而是一个包含输入、预期输出以及判断成功所需上下文的数据集。
- 自动化执行。 你应该能够用一个命令针对整个数据集运行你的智能体,而不是手动输入提示。
- 客观评分。 结果不应该依赖于你的主观感觉。应该有指标——无论是确定性检查还是LLM作为评判的评估——能够产生一致的分数。
- 可操作的失败分析。 当某些东西失败时,你需要知道为什么。是幻觉吗?它选错了工具吗?它放弃得太早了吗?反馈应该指向一个修复方案。
- 跟踪进度的方法。 在你做出更改后,你需要看到你的分数是否有所提高,同时没有破坏其他东西。
这不是关于找到一个神奇的“通过/失败”按钮。而是关于创建一个反馈循环,让你能够系统地提高智能体的质量。你进行迭代:定义一个测试,运行它,看它在哪里失败,修复智能体,然后再次运行。随着时间的推移,你会建立起信心,相信你的智能体在各种场景下都能按预期行事。
介绍 google-agents-cli-eval:ADK智能体评估的实用选项
如果你正在使用Google的智能体开发工具包(ADK)构建智能体,并使用 agents-cli 工具链,那么 google-agents-cli-eval 技能为这个评估循环提供了一个结构化框架。它不是一个独立的应用程序,而是集成到 agents-cli 工具中的一组命令和方法论。
该技能围绕Google所谓的“质量飞轮”设计——一个迭代过程,包括准备数据、运行推理、评分结果、分析失败和优化智能体。它专门为ADK智能体量身定制,并利用智能体平台的评估服务来实现一些高级功能。
重要背景: 此技能假设你已经在使用 agents-cli 并且有一个基于ADK的智能体项目。它不是适用于任何AI模型的通用评估工具。它与ADK生态系统深度集成。
评估工作流程如何运作
该过程遵循一个清晰的五阶段循环。你并不总是需要使用每个阶段,但理解这个流程是关键。
阶段1:准备你的评估数据
你需要测试用例。该技能建议从一个简单的JSON数据集文件开始,通常在 tests/eval/datasets/ 目录下搭建。一个基本的数据集可能看起来像这样:
[
{
"input": "伦敦的天气怎么样?",
"expected_output": "伦敦当前的天气是...",
"tools_used": ["weather_api"]
}
]
对于更复杂的多轮对话,你可以使用 agents-cli eval dataset synthesize 命令。这会对你的实时智能体运行一个模拟用户,以生成真实的对话轨迹,然后可以用作评估数据。当你还没有真实用户日志时,这很有用。
阶段2:针对数据运行你的智能体
如果你手动创建了数据集,你需要在其上运行你的智能体。命令 agents-cli eval generate 会针对数据集中的每个输入执行你的智能体,并将完整的对话轨迹(包括工具调用和中间步骤)保存到 artifacts/traces/ 目录。
如果你在阶段1使用了 synthesize 命令,你可以跳过此步骤,因为它已经生成了轨迹。
阶段3:对结果评分(核心步骤)
这是评估发生的地方。agents-cli eval grade 命令获取阶段2的轨迹,并根据你定义的指标对它们进行评分。它会生成一个详细的结果文件(JSON和HTML格式),其中包含分数,更重要的是,还包括评判模型对每个分数的理由。
你可以使用快捷命令 agents-cli eval run 将阶段2和阶段3合并,用于常见情况。
阶段4:分析失败
阶段3生成的HTML报告是你理解出错原因的主要工具。你可以在浏览器中打开它,查看每个用例的分数和评判的推理。
对于包含许多失败的较大数据集,agents-cli eval analyze 命令可以提供帮助。它使用LLM对失败进行聚类并识别根本原因(例如,“30%的失败是由于对话过早终止”)。当你有几十个用例时,这比逐个阅读每个失败报告更高效。
阶段5:优化和修复
根据失败分析,你编辑你的智能体。这可能意味着:
- 调整系统提示或指令。
- 更改工具描述以更好地引导智能体。
- 修改智能体的编排逻辑。
- 如果预期行为有误,则更新评估数据集。
该技能提供了常见失败到修复的映射。例如,如果 multi_turn_task_success 指标很低,这意味着智能体没有完成用户的目标——寻找工具选择、缺失步骤或过早放弃的问题。
还有一个 agents-cli eval optimize 命令,它使用ADK的GEPA提示优化。谨慎使用。 它成本高昂(进行多次LLM调用)且耗时。最好在你手动修复了明显问题后作为最后一步使用,并且仅当剩余的失败明显与提示相关时。
为你的智能体选择正确的指标
该技能带有一组内置指标。选择哪些指标取决于你最关心什么。
multi_turn_task_success:对大多数智能体来说最重要的指标。智能体最终是否完成了用户的要求?这是一个用于目标完成的综合指标。multi_turn_trajectory_quality:智能体的推理路径是否合乎逻辑?它采取了高效的步骤,还是漫无目的?multi_turn_tool_use_quality:专门评估智能体在整个对话中使用工具的情况。它是否调用了正确的工具并使用了正确的参数?final_response_quality:评判智能体最后一次响应的质量,不需要参考答案。适用于开放式任务。hallucination:检查智能体是否提出了其上下文或工具不支持的事实性主张。对RAG智能体至关重要。safety:检查策略违规。
你可以运行 agents-cli eval metric list 查看所有可用的内置指标。如果没有合适的,你可以使用LLM评判或确定性Python代码编写自定义指标。
何时使用此技能(以及何时不用)
适合使用:
- 你正在使用Google ADK构建智能体。
- 你正在使用
agents-cli工具链进行开发。 - 你想要一个结构化、可重复的方式来测试智能体质量。
- 你的智能体涉及多轮对话和工具使用。
- 你熟悉命令行工具和JSON配置。
不适合使用:
- 你不使用ADK或
agents-cli。此技能与该生态系统紧密耦合。 - 你需要对单个提示进行简单的一次性测试。手动测试或更简单的脚本可能更快。
- 你正在寻找基于图形界面的评估平台。这是一个命令行驱动的工作流程。
- 你的智能体是纯生成式的(没有工具,没有多轮逻辑)。更简单的指标可能就足够了。
开始前需要检查什么
在开始之前,请检查以下内容:
- 你的
agents-cli版本。 该技能需要agents-cli。通过uv tool install google-agents-cli安装(你需要先安装 uv)。 - 你的项目结构。 如果你使用
/google-agents-cli-scaffold技能创建了项目,你很可能已经有了tests/eval/目录和eval_config.yaml设置。如果没有,你需要创建它们。 - 你的智能体的稳定性。 评估过程假设你的智能体可以运行而不崩溃。如果你的智能体处于非常早期、不稳定的状态,请先修复关键错误。
- 你对“好”的定义。 在编写评估用例之前,思考一下对你的智能体来说成功意味着什么。它应该做什么?它不应该做什么?这将指导你的指标选择和数据集创建。
安全性和仓库信号
- 仓库: 该技能是GitHub上官方
google/agents-cli仓库的一部分,由Google维护。这表明了一定程度的维护和与ADK路线图的一致性。 - 许可证: Apache-2.0,这是一个宽松且标准的开源许可证。
- 安全级别: 在技能元数据中标记为“低”。这可能指的是技能本身的风险状况,而不是你的智能体的。评估命令本身除了运行你的智能体外,不会在你的系统上执行任意代码,但请始终检查你运行的命令。
- 主题: 仓库主题(
google-cloud,gemini,agents,adk)确认了其对Google AI生态系统的关注。
开始使用:实用的第一步清单
- 安装工具链: 确保已安装
uv,然后运行uv tool install google-agents-cli。 - 按需搭建: 如果开始一个新项目,考虑使用
/google-agents-cli-scaffold技能来获得标准目录结构。 - 创建最小数据集: 从在
tests/eval/datasets/basic-dataset.json中创建1-2个简单测试用例开始。专注于一个核心用例。 - 运行完整评估: 执行
agents-cli eval run。这将针对数据集运行你的智能体并进行评分。 - 检查HTML报告: 打开生成的
results_<timestamp>.html文件。查看分数以及评判对任何失败的理由。 - 修复一个问题: 根据失败情况,对你的智能体进行一次有针对性的更改(例如,澄清一个提示指令)。
- 重新运行并比较: 再次运行
agents-cli eval run。使用agents-cli eval compare <旧结果>.json <新结果>.json查看你的更改是否有帮助。
这个迭代过程——定义、运行、评分、修复、比较——是该技能的核心。它将智能体质量从一个猜测游戏转变为一个可衡量、可改进的属性。从小处开始,首先专注于你最重要的用例,随着智能体的成熟逐步扩展你的测试覆盖范围。
有关完整的参考文档,包括数据集模式和指标详情,请访问 google-agents-cli-eval 技能页面。