Grok Build 中的记忆功能:xAI 为其编程代理添加持久项目笔记

Grok Build 现在有了记忆功能。xAI 宣布其编程代理会记录工作中出现的约定、决策和项目事实,并在后续会话中先读取这些笔记再处理相关代码——其宣称的效果是“Grok Build 使用得越多,表现越好”。

公告内容

Grok Build 的记忆功能会从已完成的工作轮次中捕获持久信息,并在同一项目的未来会话中重放这些信息。捕获是自动的,并且在后台运行,因此不会中断或阻塞当前会话。

该功能附带两个新的斜杠命令:/memory 和 /dream,现已在 Grok Build 中可用。

捕获在轮次完成后运行

记忆捕获由轮次完成触发,而非用户的显式操作。轮次结束后,Grok 在后台审查并记录任何持久信息:约定、决策和项目事实。xAI 表示捕获会在每个完成的轮次中运行,并且不会中断会话。

这种设计意味着用户无需决定哪些内容值得记住。代理会在事后、对话关键路径之外做出判断。

Grok Build 记住什么——以及它刻意不记住什么

记忆的范围仅限于 xAI 认为在后续会话中最可能重要的细节:

  • 团队如何编写和审查代码 — 编码约定和审查实践。
  • 决策及其背后的理由 — 不仅包括选择了什么,还包括为什么。
  • 关于项目的持久事实 — 例如,子系统位于何处,或哪个命令运行测试套件。

同样重要的是排除列表。Grok Build 不会记录:

  • 任务状态
  • 初步结论
  • 机密信息
  • 仓库或其文档已涵盖的任何内容

最后一项排除是刻意的防重复规则:记忆旨在保存代码库本身未陈述的内容。

记忆按项目限定,另加一个全局集合

笔记按项目保存,另外还有一个全局集合用于适用于所有地方的偏好。这给该功能提供了两层:随仓库一起的项目特定知识,以及跟随用户的跨项目偏好。

笔记在后台写入,然后合并到主题文件中

捕获从不阻塞会话。Grok 审查完成的轮次,将任何值得保留的内容写成 Markdown 笔记,然后继续。

随着时间的推移,/dream 命令会将这些笔记合并到主题文件中——每个主题一个文件——这样每个项目最终会得到少量有组织的参考,而不是不断增长的原始笔记堆。xAI 给出了 topics/testing.md 作为结果结构的示例。Dream 也会定期在后台自动运行,因此组织工作不依赖于用户调用它。

检索限定在正在工作的区域

当用户返回项目时,Grok 会读取涵盖其即将工作区域的主题。因此,检索是有针对性的,而不是一次性倾倒所有记住的内容。

xAI 为冲突指定了优先级规则:当前对话中的指令优先于笔记中的任何内容。记忆是上下文,不是对实时用户指令的覆盖。

浏览和编辑记忆

/memory 打开一个只读的记忆文件浏览器,按范围分组,并显示所选文件的预览。xAI 将其描述为查看会话产生内容以及定位需要编辑的文件(当笔记有误时)的最快方式——暗示记忆文件是可编辑的 Markdown,尽管浏览器本身是只读的。

两个新命令

  • /memory — 打开只读记忆浏览器,按范围分组,并显示文件预览。
  • /dream — 将最近的笔记组织到主题文件中,例如 topics/testing.md。Dream 也会定期在后台自动运行。

可用性

记忆功能现已在 Grok Build 中可用。它适用于新会话:运行 /new 或启动新的 grok,笔记在第一个完成的轮次后开始记录。

为什么这很重要

Grok Build 的记忆功能是为编程代理提供的持久、项目范围的知識层,基于三个设计选择,使其区别于简单的对话历史:

  1. 捕获是轮次后异步的,因此记忆不会在会话期间给用户带来延迟。
  2. 存储是组织到主题文件中的人类可读 Markdown,因此记忆是可检查和可纠正的,而不是不透明的。
  3. 检索限定在相关区域,并服从于实时指令,因此过时的笔记不能静默覆盖用户在当前会话中的话。

xAI 提出的实际主张是累积改进:一个项目使用 Grok Build 的次数越多,代理在后续会话中带入该项目的上下文就越多。

Sources