元鉴
返回中文阅读流

NVIDIA Developer Blog

使用 Hermes Agent 和 NVIDIA NemoClaw 部署自进化智能体,实现更快速、更安全的研究

AI 智能体可综合数据以加速研究、总结信息并辅助团队更快决策,但结合内部数据与公开来源会带来安全挑战。

中文内容

已翻译official company source英文原文2026-06-05

AI 智能体是综合数据的强大工具,可加速研究、总结信息,并帮助团队更快做出决策。但将内部数据与公开来源结合会带来安全挑战。

本文分享了一个开源示例,使用 Hermes Agent 与 NVIDIA NemoClaw,在 Outlook、Slack 和 GitHub 中开展产品研究。NVIDIA OpenShell 会执行经过安全批准的运行时。该智能体会学习偏好和模式,写入新的记忆和技能。用户与智能体协作越多,它就会变得越好。

尽管集成点针对这一特定用例(Slack、Outlook 和 GitHub),但在自我改进型智能体中安全混合公开数据与私有数据的模式,对许多用例都很重要,包括销售研究、客户支持、工程分诊、竞争分析和内部知识发现。

你将学习如何:

  • 通过一条安装命令启动开源 NemoClaw 技术栈。
  • 将智能体连接到两个消息渠道(Slack 和 Outlook)以及社区数据(GitHub 和 NVIDIA 开发者论坛)。
  • 直接通过聊天对话教会智能体一种周期性报告格式——无需修改代码或重启网关。
  • 保存智能体学到的状态,使其能够在多次部署之间保持。

前提条件

要跟随操作,你需要:

  • 一台运行 Docker daemon 的主机。该示例面向 Ubuntu 24.04,但可在 OpenShell 支持的任何发行版上运行。
  • 用于推理的 build.nvidia.com API key。默认模型为 nvidia/nemotron-3-super-120b-a12b。当流量必须留在本地环境时,Hermes Agent 可无需修改地运行于自托管的 NVIDIA Nemetron 模型(在 NVIDIA NIM 上),或运行于 vLLM。
  • 至少一个消息集成的凭据:Outlook 租户加已注册的 Azure app,或 Slack workspace 加 Slack app。

设置说明见:

  • 正文:docs/set-up-outlook-bridge.md
  • 正文:docs/set-up-slack.md
  • 用于拉取数据的 GitHub token。
视频 1:使用 NemoClaw 和 Hermes Agent 部署自进化 AI 智能体

安装并启动 Hermes

  1. 克隆代码库并安装 OpenShell:
git clone https://github.com/NVIDIA/nemoclaw-community.git
cd nemoclaw-community/examples/personal-community-sentiment-triage
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | OPENSHELL_VERSION=v0.0.38 sh
  1. 复制 env 模板,并填写你的推理密钥,以及至少一个消息渠道。
  2. 使用 host-services shell 脚本启动主机侧服务,然后启动智能体:
bash scripts/00-host-services.sh
bash scripts/bring-up.sh

bring-up.sh 脚本会在沙箱内启动 Hermes。OpenShell 沙箱会完成两件关键事情。

  • 管理凭据,确保 Hermes agent 永远看不到 Slack 或 Outlook token——身份验证会在请求离开沙箱代理时发生。
  • 执行网络访问策略。智能体可以访问来自 Outlook 或 Slack 的敏感内部数据。为保护这些数据,智能体被禁止访问公共互联网。

GitHub 和 NVIDIA 论坛数据通过单独的 ETL 流程提供,该流程会检索数据并进行存储,使智能体拥有只读访问权限。此设置可确保即使智能体被攻破,也无法将数据发布到外部网站。

  1. 脚本完成后,检查沙箱是否健康:
openshell sandbox list
# hermes-direct should report Ready
openshell sandbox exec --name hermes-direct -- \
  curl -sf http://localhost:8642/health
# {"status":"ok","platform":"hermes-agent"}
  1. 向智能体发送一条 Slack 私信,或使用你在 .env 中配置的地址发送一封电子邮件,以确认它会回复。

一次教学,随处调用

在智能体启动并运行后,本节展示如何教会它一项新技能,以及该技能如何在不同对话中延续。

1. 请求每日摘要。

教智能体每天早晨总结 GitHub issue。先请求每日更新:

> Give me a daily update on important issues for NemoClaw.

回复是有帮助的——有一些散文式文字,也有一些项目符号——但格式不正确。要求使用另一种格式:

> That's too long. Give me exactly 5 top issues and 3 discussions, each with the number, title, state, URL, and a one-line "why it matters". Open with a bold header and close with **Bottom line:** in 2-3 sentences.

现在回复已成为格式良好的摘要,使用正向强化触发器,并告诉智能体为将来保存此格式:

> Perfect, that's the format I want every day. Next time I ask for the daily NemoClaw issue digest, give me back exactly this shape—without me spelling it out again. And if a coworker emails the bot for the same thing, they should get the same shape, too.

2. Hermes 写入一项技能。

当 Hermes 识别出该模式时,它会向文件系统写入一个 SKILL.md。该文件包含简短的 YAML frontmatter(名称和描述),正文则是格式脚手架。

3. 快照、拆除、重建、恢复。

生产环境中的智能体会在新代码发布或配置变更时被重建。如果学到的技能无法保留,就必须每次重新教授智能体。为避免这种情况,创建快照、销毁沙箱、从镜像重建,并从 tarball 恢复,以确保技能得以保留:

bash scripts/snapshot.sh	      # writes.snapshots/<ISO-timestamp>.tar.gz
bash scripts/tear-down.sh      # destroys the sandbox container
bash scripts/bring-up.sh        # rebuilds the sandbox from the image
bash scripts/restore.sh         # rehydrates /sandbox/.hermes-data/

快照会捕获智能体状态,包括技能、记忆、会话以及任何计划任务。凭据过滤器会排除 .env、*token* 和 *secret* 等文件,因此该 tarball 可以安全共享。

4. 从全新对话中触发该技能。

在新对话中请求“过去 3 天的每日 NemoClaw issue 摘要”,该技能将返回相同的答案格式。只有数字和标题会根据底层数据发生变化。格式保存在技能中,而不是对话记忆中。

架构为何有效:模型、harness 与运行时

该智能体使用 NVIDIA NemoClaw 部署。NemoClaw 是一个开放智能体蓝图,使用由开放模型驱动的 harness,并运行在安全运行时中。

ComponentWhat it doesProvided byModelReasoning, tool selection, draftingNVIDIA Nemotron 3 SuperHarnessSkills, sessions, memory, bridges, hooksHermes AgentRuntimeFilesystem and network policy, provider injection, credential brokeringNVIDIA OpenShell
表 1:智能体的三个组件

图 1 展示了各层如何组合在一起。

Architecture diagram showing Hermes Agent interactions with a sandbox.Architecture diagram showing Hermes Agent interactions with a sandbox.
图 1:Hermes Agent 在 OpenShell 沙箱内运行,并通过主机侧镜像访问 GitHub 和论坛数据

网络策略是代码,而不是提示词。policy.yaml 声明了每个允许的目标、端口、HTTP 动词和二进制文件。此代码块授权推理:

network_policies:
nvidia:
  endpoints:
    - host: integrate.api.nvidia.com
      port: 443
      rules:
      - allow: { method: POST, path: /v1/chat/completions }
      - allow: { method: POST, path: /v1/embeddings }
      - allow: { method: GET,  path: /v1/models }
  binaries:
    - path: /usr/local/bin/hermes
    - path: /usr/bin/python3

如果智能体尝试访问不在允许列表中的主机,代理会返回 403(Forbidden)错误,Hermes Agent 会将其视为工具错误。

使用 NeMo Relay 和 Arize Phoenix 实现可观测性

智能体在每一轮对话中都会做出许多决策——调用哪项技能、调用哪个工具、传递哪些参数、向用户返回什么。当出现问题时,如果看不到智能体实际做了什么,用户就无法修复。

已部署的智能体会以 Agent Trajectory Format(ATIF)记录追踪。沙箱镜像默认包含 NVIDIA NeMo Relay,因此无需额外设置即可显示这些追踪。在沙箱被拆除前,scripts/download-traces.sh 会将它们从沙箱中拉取出来。在 .env 文件中设置 PHOENIX_COLLECTOR_ENDPOINT,可启用将追踪实时流式传输到 Phoenix collector,以进行交互式调试。

适配不同用例

尽管 Hermes 的主要优势之一是自我改进,但该示例也可以在部署前进行定制。更新预定义技能和 OpenShell 策略,以适配特定工作流和环境。该示例随附五项技能,网关会自动从 agents/hermes/skills/ 文件夹中读取。修改 OpenShell 策略可让智能体访问数据源或工具。

快速开始使用 NemoClaw:将你的智能体指向 Claude Code、Codex 和 Hermes Skills Hub 中内置且经 NVIDIA 验证的技能,完整目录发布在 skills.sh 上,可在 Cursor、Gemini CLI、GitHub Copilot、Windsurf 以及更多工具中使用。

了解更多

NemoClaw Community 代码库提供了本教程所用的完整示例。如需深入了解:

  • 阅读 NemoClaw 文档,了解蓝图参考和 CLI。
  • 阅读 NVIDIA OpenShell 文档,了解沙箱创建、策略语法和 provider 管理。
  • 从 build.nvidia.com 选择一个 Nemotron 模型,或使用 NIM 自托管。
Like

标签

原文标题

Deploy Self-Evolving Agents for Faster, More Secure Research with a Hermes Agent and NVIDIA NemoClaw