将生产证据转化为优先考虑的问题和自定义评估,帮助您改进提示词、工具、模型、内存、技能和利用代码。
为您的领域构建智能体时,通用基准评分可能无法解释其失败的原因。智能体可能会选择错误的工具、遵循错误的工作流分支、错过相关上下文、使用不必要的昂贵模型,或者在不满足特定领域要求的情况下完成任务。
改进智能体需要的不仅仅是模型调整。提示、工具、路由、内存、技能、控制流和其他代码都会影响生产可靠性。追踪可帮助您调查故障,而评估则可帮助您衡量更改是否改善智能体行为。
本教程将带您完成一个完整的优化周期:使用 NVIDIA NeMo Compass 识别所记录痕迹中的故障,使用 NVIDIA NeMo Eval Author 创建评估,更新智能体指令,并比较开发和延迟任务的结果。关注 NVIDIA NemoClaw 智能体优化blueprint。
该 blueprint 在 NVIDIA OpenShell 沙盒中使用了 Hermes Agent,并记录了一家虚构公司的痕迹。
智能体线束是优化表面
一次错误的工具调用可能会破坏整个任务。原因可能是工具描述不明确、路线规则或智能体线束中缺少上下文。追踪有助于识别运行出错的地方。
我们的示例智能体是一家虚构公司的 Hermes 企业助手,通过模型上下文协议 (MCP) 连接到公司的聊天、电子邮件、文件和工单。我们让它“起草包含项目更新的消息”。它起草了消息,但也调用了 send_message 工具,无需用户确认。解决此错误需要同时检查线束指令和工具执行。
预备知识
使用原生运行 Docker 的 Linux 机器。推荐配置为 Ubuntu 24.04,配备 8 个 vCPU 和 32 GB RAM。您还需要:
- OpenShell 0.1.2 和 Harbor 0.22.0
- 来自 build.nvidia.com 的 NVIDIA API 密钥
- NeMo Eval Author 支持的编码代理,例如 Codex 或 Claude Code
在 GitHub 上遵循完整的分步教程,或开始使用NVIDIA Brev 可启动程序。
NeMo Compass:首先找到需要修复的问题
用于智能体优化的 NemoClaw Blueprint 使用三个库:NeMo Compass、NeMo Eval Author 和 NVIDIA NeMo Relay。
NeMo Compass 可分析存储的智能体追踪和评估证据,以发现反复出现的问题、找出评估差距并确定改进优先级。NeMo Compass 并不要求您检查每次运行,而是将大量追踪语料库简化为结构化的问题积压、支持示例以及推荐的改进或实验领域。
示例中的每个 Hermes 运行都记录为每行一个 JSON 追踪。我们将 NeMo Compass 与定义助手预期行为的短文件 ETHOS.md 一起指向了存储库中的 42 条追踪。
compass --config configs/trace-analyst.yaml \
--trace.filesystem.path traces/world-v3/production/insights.jsonl
NeMo Compass 根据多个信号返回结果:
- 异常行为的迹象
- 智能体如何使用工具
- 与智能体预期行为的差异
NeMo Compass 还提供追踪 ID,将每个信号关联到相关代理运行。
这些追踪 ID 支持整体发现。在这些运行中,智能体发送消息而无需用户确认。NeMo Compass 通过将智能体的操作与 ETHOS.md 中的规则进行比较来识别此错误。
在我们的内部基准测试中,针对包含数千条痕迹的数据集运行全套 NeMo Compass 信号,可识别分配类似任务的编码代理错过的异常情况。
使用 NeMo Eval Author 围绕真实代理工作构建评估
发现 NeMo Compass 的问题后,创建重现该问题的测试。NeMo Eval Author 提供编码智能体技能和工作流,帮助您创建这些测试。NeMo Eval Author 支持两种智能体评估格式:端口评估和NVIDIA NeMo Gym 评估。
在您的编码智能体中安装 NeMo Eval Author 的技能,并指示其使用这些技能。提供 NeMo Compass 发现结果、原始追踪、智能体的 ETHOS.md 文件,以及对智能体存储库的访问权限。评估应衡量与坐席要求相关的坐席行为。审核并调整生成的评估,确保它们反映这些要求。
在我们的示例中,编码智能体创建了四个 Harbor 评估,其任务类似于“起草响应”。NeMo Eval Author 还创建了验证器,用于确定智能体是否满足特定标准。在本示例中,验证器检查代理是否在未经人工确认的情况下调用 send_message 工具,并将其标记为失败。
NeMo Eval Author 可以使用 ETHOS.md 中的智能体要求以及工具定义和现有工作流程等代码详细信息,帮助您在生产数据存在之前创建自定义评估。当出现真实的痕迹和已知的故障时,请使用 NeMo Eval Author 扩展您的评估套件,以便其继续反映智能体的使用方式。
更换线束的一部分
在确定问题并编写相关测试后,请更新工具。在我们的示例中,我们更改了爱马士智能体的 SOUL.md (与爱马士概念类似的系统提示):
Requests to write, draft, compose, prepare, or suggest a message authorize preparation only. Provide the draft for review and stop before sending it. A token returned by a preparation tool is a technical capability to execute an action. It does not establish the user's consent to that action.
线束更改的范围包括此类简单的修复,以及更复杂的中间件实现、插件扩展和其他智能体线束模式。为编码智能体提供 NeMo Compass 输出、智能体的ETHOS.md文件和智能体实现。这种上下文为编码智能体的提案提供了依据。之前的博文介绍了如何利用LangChain Deep Agents和Nous Research Hermes进行优化。
前后测量
更新智能体后,我们重新运行由 NeMo Eval Author 创建的评估任务。两项标记为“已完成”的任务被阻止,无法向提议更改线束的编码代理提出。这些难以完成的任务有助于评估更改是否会超出开发任务的范围。
| 评估集 | 基准测试/ 运行 | 更新的智能体传递/ 运行 | 工具调用前后 |
|---|---|---|---|
| 开发,2 项任务 x 3 次运行 | 3/6 | 6/6 | 10 至 6 |
| 成功完成 2 项任务 x 3 次运行 | 4/6 | 6/6 | 28 至 15 岁 |
在我们的示例中,我们从一组狭地专注于 NeMo Compass 结果的评估任务开始。为您的生产智能体构建涵盖各种行为的评估套件。根据我们的经验,制作套件通常包含数百到几千个示例。只有当更改同时改进了测试用例和保留的数据集时,才接受更改。如果结果不确定,或者某项更改修复了一个问题,但引入了回归,请在提议的智能体的新追踪上运行 NeMo Compass。编码智能体可以利用这些新的见解来优化更改。在对该过程进行迭代时,请确保对编码智能体隐藏延迟的案例,以避免过拟合。
再次运行循环
成功完成线束更换后,重复分析以确定下一个问题。我们在更新后的智能体的评分痕迹上运行了 NeMo Compass,它不再报告未确认发送的发现结果。它发现了另一个问题:对于某些查询,代理找到了答案,但未能以检索到的证据作为其回答的依据。这一发现是下一轮测试和修复的重点。
将优化循环应用于工程智能体
相同的追踪到评估循环可应用于执行更复杂的技术任务的智能体。在工程工作流中,评估需要衡量工程成果以及智能体工具使用的效率。
车门设计示例说明了 NVIDIA NeMo 工具如何支持这一过程。该示例使用 Dassault Systèmes 的工程虚拟伙伴 LEO 提出设计变更建议,并通过模拟进行测试,目标是打造更强大、更安全的车门。
NeMo Compass 会分析智能体的痕迹,找出需要改进的地方。编码智能体使用这些发现进行有针对性的提示和配置更改,并通过评估来衡量更新后的智能体在工程环境中的性能。其他场景会检查这些更改是否引入回归。
在本示例中,NeMo Compass 发现了一个反复出现的问题,即智能体将 QueryModel 参数置于预期的 options 字段之外。它返回一条空白的错误消息,导致代理无法恢复。问题出现在多个痕迹中。基于这一发现,该编码智能体添加了验证步骤,以捕获工具调用中放错位置的参数和名称。与基准相比,形工具调用从 142 次降至零。准确性没有变化,在其余场景中没有观察到回归。
在初始阶段,优化循环在没有人工干预的情况下通宵运行。在大约 12 小时内,报告结果显示,门设计工作流程的整体评估分数相对提高了 28%,在六个测试场景中,每次运行的工具调用次数减少了 35%,而在其他场景中没有报告回归。
该示例将 NeMo 工作流连接到两个智能体性能指标:任务质量和执行效率。它遵循本教程中描述的过程:使用跟踪来确定要更改的内容,然后使用自定义评估来评估目标改进,并在采用更改之前检查回归。
试用用于智能体优化的 NemoClaw blueprint
从用于智能体优化的 NemoClaw blueprint、本文中的 工作场所助手示例 或 CAD 指南 开始。
运行示例智能体并建立基准分数。然后完成一个优化周期:使用 NeMo Compass 查找问题,使用 NeMo Eval Author 为其构建测试,然后尝试对工具束进行一次更改。之后,将相同循环指向您自己的智能体。