AI 智能体是一种强大的工具,可用于合成数据,从而加速研究、汇总信息,并帮助团队更快地做出决策。但是,将内部数据与公共数据来源相结合会带来安全挑战。
本文分享了一个开源示例,使用搭载 Hermes Agent 与 NVIDIA NemoClaw 跨 Outlook、Slack 和 GitHub 进行产品研究。 NVIDIA OpenShell 强制实施经安全批准的运行时。智能体学习偏好和模式,书写新的记忆和技能。使用智能体的用户越多,效果就越好。
虽然集成点是特定于此用例 ( Slack、Outlook 和 GitHub) 的,但在自我改进的智能体中安全混合公共和私有数据的模式对于许多用例很重要,包括销售研究、客户支持、工程分类、竞争分析和内部知识发现。
您将学习如何:
- 只需一条安装命令,即可启动开源 NemoClaw 堆栈。
- 将智能体连接到两个消息传递渠道 ( Slack 和 Outlook) 以及社区数据 ( GitHub 和 NVIDIA 开发者论坛) 。
- 直接通过聊天对话向智能体教授循环报告格式,无需更改代码或重启网关。
- 保存智能体的学习状态,使其在部署中持续存在。
预备知识
要继续学习,您需要:
- 具有正在运行的 Docker 守护程序的主机。此示例面向 Ubuntu 24.04,但适用于 OpenShell 支持的任何发行版。
- 用于推理的 build.nvidia.com API 密钥。默认模型为 nvidia/nemotron-3 – Super-120b-a12b。当流量必须保持在本地时,Hermes Agent 可以与 NVIDIA NIM 上的自托管 NVIDIA Nemotron 模型 (或 vLLM) 相同运行。
- 至少一个消息集成的凭据:
- Outlook 租户和已注册的 Azure 应用,或
- Slack 工作空间和 Slack 应用。
设置说明如下:
- docs/ setup – Outlook-bridge.md
- docs/ setup-slack.md
- 用于提取数据的 GitHub 词元。
安装并启动 Hermes
- 克隆存储库并安装 OpenShell:
git clone https://github.com/NVIDIA/nemoclaw-community.gitcd nemoclaw-community/examples/personal-community-sentiment-triagecurl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | OPENSHELL_VERSION=v0.0.38 sh |
- 复制环境模板并填写推理密钥,以及至少一个消息传递通道。
- 使用 host-services shell 脚本启动主机端服务,然后启动代理:
bash scripts/00-host-services.shbash scripts/bring-up.sh |
bring-up.sh 脚本会在沙盒中启动 Hermes。OpenShell 沙盒可执行两项关键操作。
- 管理凭据,确保爱马士代理永远不会看到 Slack 或 Outlook 词元 – 身份验证在请求退出沙盒代理时发生。
- 执行网络访问策略。智能体可以从 Outlook 或 Slack 访问内部敏感数据。为保护这些数据,禁止智能体访问公共互联网。
GitHub 和 NVIDIA 论坛数据可通过单独的 ETL 流程获取,该流程会检索并存储数据,从而为智能体提供只读访问权限。此设置可确保即使受到入侵的智能体也无法将数据发布到外部站点。
- 脚本完成后,请检查沙盒是否正常运行:
openshell sandbox list# hermes-direct should report Readyopenshell sandbox exec --name hermes-direct -- \ curl -sf http://localhost:8642/health# {"status":"ok","platform":"hermes-agent"} |
- 使用您在
.env中配置的地址向代理发送 Slack DM 或电子邮件,以确认其回复。
一次教学,随时随地回顾
随着智能体的启动和运行,本节将向您展示如何教其掌握一项新技能,以及该技能如何在对话中发挥作用。
1. 获取每日摘要。
教会智能体每天早上总结 GitHub 问题。首先要求提供每日更新:
> 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 前缀 (名称和说明) 和格式支架作为正文。
3. 快照、拆解、重建、恢复。
当新代码发布或配置发生变化时,系统会重建生产中的智能体。如果习得的技能无法存活,则每次都必须重新训练智能体。为防止出现这种情况,请截取快照,销毁沙盒,从镜像重建,然后从 tarball 中恢复,以确保该技能存活下来:
bash scripts/snapshot.sh # writes.snapshots/<ISO-timestamp>.tar.gzbash scripts/tear-down.sh # destroys the sandbox containerbash scripts/bring-up.sh # rebuilds the sandbox from the imagebash scripts/restore.sh # rehydrates /sandbox/.hermes-data/ |
快照捕捉智能体状态,包括技能、记忆、会话和任何已安排的作业。凭据过滤器会排除 .env、* 词元* 和* secret* 等文件,因此 tarball 可安全共享。
4. 从新的对话中触发技能。
在新对话中,要求提供“过去 3 天内每日 NemoClaw 问题摘要”,技能将返回相同的答案格式。只有数字和标题发生变化才能与基础数据相匹配。该格式存在于技能中,而非对话记忆中。
架构的工作原理:建模、线束和运行时
该智能体使用 NVIDIA NVIDIA NemoClaw,NVIDIA NemoClaw 是在安全运行时使用开放模型驱动的线束构建开放智能体的蓝图。
| 组件 | 它的作用 | 由 |
|---|---|---|
| 模型 | 推理、工具选择、绘图 | NVIDIA Nemotron 3 Super |
| 线束 | 技能、会话、记忆、桥梁、挂钩 | Hermes 智能体 |
| 运行时 | 文件系统和网络策略、提供程序注入、凭证代理 | NVIDIA OpenShell |
图 1 显示了各层如何组合在一起。

网络策略是代码,而不是提示。policy.yaml d 声明每个允许的目标、端口、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 (禁止) 错误,而 Hermes Agent 将其视为工具错误。
使用 NeMo Relay 和 Arize Phoenix 实现可观测性
智能体每次回合都会做出很多决策,包括调用技能、调用工具、传递参数、将参数返回给用户。当出现问题时,如果没有看到智能体的实际操作情况,用户就无法修复问题。
部署的智能体以智能体轨迹格式 (ATIF) 记录追踪。沙盒图像默认包含 NVIDIA NeMo Relay,因此无需额外设置即可显示这些追踪。在被拆掉之前,scripts/download-traces.sh 会将其从沙盒中拉出。在 .env 文件中设置 PHOENIX_COLLECTOR_ENDPOINT,可将追踪实时流式传输到 Phoenix 收集器,以进行交互式调试。
适应不同的用例
虽然 Hermes 的主要优势是自我改进,但在部署之前也可以对示例进行定制。更新预定义的技能和 OpenShell 策略,以适应特定的工作流程和环境。该示例附带五个技能,网关会从代理/hermes/skills/ 文件夹中自动获取这些技能。修改 OpenShell 策略,使智能体能够访问数据源或工具。
快速上手使用 NemoClaw:将发布在 skills.sh 上的完整目录用于 Cursor、Gemini CLI、GitHub Copilot、Windsurf 等数十种技能,让您的代理了解内置在 Claude Code、Codex 和 Hermes 技能中心中的 NVIDIA 验证技能。
了解详情
NemoClaw 社区资源库会提供本教程中使用的完整示例。更深入地说:
- 阅读 NemoClaw 文档,了解蓝图参考和 CLI。
- 阅读 NVIDIA OpenShell 文档,了解沙盒创建、策略语法和提供商管理。
- 从 build.nvidia.com 上选择一个 Nemotron 模型,或使用 NIM 自行托管该模型。