用 NVIDIA NemoClaw 构建记忆驱动的 AI Agent
企业工作涵盖随时间不断变化的消息、决策、项目和任务。一个 AI agent 若在没有这些上下文的情况下启动,必须先自行重建背景信息才能发挥作用。
为了让 agent 获得这些必要的上下文,我们的团队利用 NVIDIA NemoClaw 构建了一个 memory-driven 幕僚长。它维护着一个名为 self model(自我模型) 的人类可读知识层:即 agent 的记忆,记录着相关的人员、项目、优先事项和工作模式。定时任务会周期性审查新动态、跟踪待办事项,并逐步融入用户的决策。我们的经验表明,有用的 agent 记忆需要结构化、选择性检索和治理机制——而不仅仅是存储空间。
本文展示如何利用 NVIDIA NemoClaw 构建的 memory-driven agent 提升真实企业工作流中的生产力,并分享五条可应用于你自身 agent 的设计经验:
- 在日常工作中保持上下文连贯性,以提升任务质量
- 将证据、知识与行动分离,帮助 agent 做出更优判断
- memory-driven agent 可优先遵循用户意图,而非短期紧迫性
- 允许用户纠正 agent 的决策,从而建立信任
- 通过 NVIDIA OpenShell 严格执行安全与授权边界
在日常工作中保持上下文连贯性
对话历史提供短期连续性,但会将当前优先事项与过往决策及临时请求混杂在一起。检索虽能找到相关来源材料,但 agent 仍需跨越时间将信息串联起来。
以项目状态查询为例。答案可能取决于某项早期决策、后续消息中的更正、一项未结清的义务,以及「两个不同名称实则指向同一项目」这类知识。
为解决这些问题,你可以使用 self model,它通过结构化的 Markdown 页面维护这些关系。它将关于人员、项目、优先级、目标、概念及重复性工作模式的信息进行组织,其 schema 定义了索引、交叉引用、溯源以及增长限制。
自我模型保存的是推导出的解释,而非直接替代原始证据。保持两者分离,有助于开发者判断错误答案究竟来源于证据本身、记忆维护、检索过程,还是模型的最终决策。分离证据、知识与行动
你可以利用 Memory-Driven Chief of Staff 中三层调优能力:
证据 → 知识 → 受控执行
证据用于支持自我模型的更新。针对每个任务,智能体会检索一组有界的相关上下文,并在 NVIDIA NemoClaw 示例中使用该上下文。架构如图 1 所示。
该示例存储两类信息:
- 知识:人员、项目、优先级和工作模式
- 判断:某项是否需要关注、其排序位置,以及用户是否已忽略它
知识存储在 Markdown 格式的智能体记忆中,而 SQLite 账本则用于记录义务、排序、修正和审计事件。这种设计在不将判断写入原始消息(如已读标记、标签或文件夹)的前提下,保留了智能体的判断能力。
记忆页可能记录了某位协作者偏好使用 Slack。Agent 可以据此推荐 Slack,但真正发送消息仍取决于凭证、工具权限、运行时策略以及用户的批准。
上下文可以为行动提供依据,但无法授权行动。
用户意图优先于短期紧迫性
收到的请求常常自称紧急,但紧急并不等于符合用户的优先事项。因此,intent gate 把最高层级留给与用户明确表达的优先事项相关的义务。
在提供的公开 recipe 中,一条紧急的报销政策确认仍然可见,但排在一条与既定优先事项相关、看似不那么急迫的请求之后。NVIDIA NemoClaw 可以理解这种关系,而层级大小、溢出行为和排序规则则由确定性代码来强制执行。
允许用户纠正 Agent
持久化记忆保存错误判断和保存正确判断一样容易。借助这个 recipe,你可以把某条义务移到其他层级或直接忽略,后续的 Agent 运行会保留这一决定。每次更改都只记录一次,写入 append-only 的审计日志。
反复出现的纠正模式可以更新一份小而易读的偏好策略。用户可以查看、编辑或删除这份策略,而不是让偏好隐藏在模型状态中。
整个反馈回路保持透明可见:
Agent 判断 → 用户纠正 → 审计事件 → 偏好更新
加入记忆以提升 Agent 任务表现
在 NemoClaw 中加入记忆驱动的 Chief of Staff 后,多项 Agent 任务都有可衡量的提升,如表 1 所示。Agent Memory Benchmark 和评估示例都包含在示例仓库中。该仓库将执行多轮检索的 agentic retrieval-augmented generation (RAG) 基线与 self model 进行了对比。
| 指标 | 问题数量 | Agentic RAG 基线 | Self model | 差距 |
|---|---|---|---|---|
| 整体准确率 | 186 | 82.8% | 90.9% | +8.1 pp |
| 困难问题 | 31 | 67.7% | 87.1% | +19.4 pp |
| 追踪随时间变化的事实 | 5 | 60.0% | 100.0% | +40.0 pp |
| 时间点推理 | 6 | 33.3% | 66.7% | +33.3 pp |
| 实体消歧 | 15 | 66.7% | 86.7% | +20.0 pp |
| 多源综合 | 73 | 87.7% | 94.5% | +6.8 pp |
| 基于语料库忠实作答 | 13 | 100.0% | 92.3% | -7.7 pp |
| 单跳检索 | 30 | 86.7% | 83.3% | -3.3 pp |
| 引用覆盖率 | 186 | 92.5% | 97.8% | +5.4 pp |
在运行时强制执行边界
通过 NVIDIA NemoClaw 和面向自主智能体的 NVIDIA OpenShell 安全运行时,实现上述隔离。NemoClaw 负责将示例集成至 NVIDIA OpenShell 并管理其生命周期,而 NVIDIA OpenShell 则在沙箱中运行智能体,并对文件系统、进程和网络访问提供治理与策略强制。对于托管推理和 MCP 连接,凭据始终处于沙箱之外。
这一点至关重要:记忆和检索内容属于模型的输入,而非可信的安全策略。即便智能体误解了上下文,或遵循了恶意指令,它仍会在操作者定义的运行时边界内运作。这些边界限制了智能体的访问权限以及故障的潜在影响。
开始构建智能体记忆
要将本文介绍的记忆设计适配到你的 NemoClaw 示例中,请查阅 NVIDIA/nemoclaw-community GitHub 仓库中的开源 Memory-Driven Chief of Staff 配方 及其 设计提案。
该配方将示例打包为可部署的 Hermes 配置文件,供 NemoClaw 使用:
- 结构化记忆模式
- 持久化义务账本
- 有界排序逻辑
- 用户纠正与审计路径
- 计划性内存维护
- 合成消息与内存页
- 离线 walkthrough
- 一组单元测试
文中的人物、组织、项目和消息均为虚构。在离线 walkthrough 中,记录好的模型决策用于替代实际推理。代码随后应用排序、纠正、持久化和验证行为。
本方案聚焦于内存基础架构,不发送消息,也不修改源系统。该范围使你无需连接企业账号即可审查设计。实时连接器需要单独处理凭据、隐私、保留和删除策略。
了解更多关于 NVIDIA NemoClaw 与 NVIDIA OpenShell 的信息。