中文内容
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。
安装并启动 Hermes
- 克隆代码库并安装 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
- 复制 env 模板,并填写你的推理密钥,以及至少一个消息渠道。
- 使用 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 流程提供,该流程会检索数据并进行存储,使智能体拥有只读访问权限。此设置可确保即使智能体被攻破,也无法将数据发布到外部网站。
- 脚本完成后,检查沙箱是否健康:
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"}
- 向智能体发送一条 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,并运行在安全运行时中。
图 1 展示了各层如何组合在一起。

网络策略是代码,而不是提示词。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 自托管。
标签



















