跳到正文

核心概念 ​

本页说明 Origin 怎样记忆:它保存什么,Agent 学到的东西怎样变成长期记忆,以及你怎样掌控这一切。阅读本页之前,请先看快速开始。完整的设计见架构。

会话与事件 ​

每个支持的 Agent(Claude Code、Codex、Cursor、Grok Build、ZCode)本来就会把对话写到磁盘上。Origin 读取这些记录,保存两样东西:

  • 原始镜像:原始记录的只追加副本,压缩后保存在 ~/.origin/raw/ 下。它们比 Agent 自己的清理活得更久,而且从不改写。
  • 事件:每条消息、每次工具调用和工具结果,在各 Agent 之间统一格式,按会话归组,并建立检索索引。每个事件都指向它所来自的镜像中的那一行。

这个指向就是溯源:Origin 给出的任何回答,都可以一直展开到原文,方式是 origin show <id>、MCP 的 sources 工具,或者管理界面中该事件的页面。Origin 从不概括或改写说过的话,也从不调用模型来做这件事。

条目 ​

会话记录一切;条目记录值得留下的东西。条目是一句自成一体的陈述:Agent 学到之后还用得上的东西时,用 remember 保存;你也可以在 CLI 或管理界面中自己写。条目分三类:

类别内容示例
memory发生了什么:一个决定及其原因「在第一次发布之前不做 schema 版本管理,以保持代码简单。」
knowledge稳定的事实「演示应用通过 CI 从 main 分支部署。」
cognition关于你的东西:偏好、方法、目标、边界「提交信息不要带署名尾注。」

每个条目还有:

  • 来源:至少一个它所依据的事件,可以附上它引用的原话。没有来源的条目无法保存。
  • 作者:Agent 写的是 <agent>@<设备>,例如 claude-code@laptop;你自己写的是 user@<设备>。
  • 置信度:0 到 1 之间;可选地还有项目。

Agent 用 search 找到条目,用 get 读取;接入 Origin 的任何 Agent 都能看到其他 Agent 记下的东西。

版本与纠正 ​

条目从不原地修改。用 origin correct、管理界面或 Agent 的 correct 纠正一个条目,会新增一个版本来取代它;旧版本留在条目的历史中,来源也会带过去。检索和列表显示当前版本,历史显示全部版本:

bash
origin show ent_5f0c2a9e41b7        # 条目、它的来源与各个版本
origin entries --history            # 所有版本,包括已取代和已结束的

如果你的两台机器在互相知道之前纠正了同一个版本,两次纠正都会保留,每个库都会把其中较晚的一个定为当前版本;另一个会被标记为输给了一次并发纠正。

有效期 ​

条目可以说明自己在什么时间内成立,即 valid_from 和 valid_to。一旦 valid_to 已过,条目就已结束:它是历史,不再是当前的知识。已结束的条目不出现在检索和列表中,这样 Agent 就不会拿到已经不成立的东西;但它们仍留在历史中,origin show 和 MCP 的 get 工具按 id 仍能显示它们。

原生记忆 ​

Claude Code、ZCode 和 Grok Build 有自己的记忆:Agent 写下并反复改写的 Markdown 文件,一个文件一条笔记,按项目或工作区放在各自的目录中。Origin 把它们单向导入为条目:只读取这些文件,从不写入,这样一个 Agent 记下的东西能带着溯源到达所有 Agent。各自的目录布局见会话来源。

  • 一个记忆文件对应一个条目。 文件的每个版本成为条目的一个版本,并以该版本的文件作为来源。记忆的类型决定条目的类别:你是怎样的人、你提过的要求成为 cognition,项目中发生的事成为 memory,其余成为 knowledge。
  • 删除文件会结束它的条目。 条目的最后一个版本留在历史中,有效期在删除时结束;如果文件又出现,条目会重新成为当前的。
  • 以文件为准。 你可以在 Origin 中纠正导入的条目,但如果文件在你纠正之后又有变化,文件的新版本会取代你的纠正。要改变 Agent 自己记住的内容,请编辑它的文件。
  • 遗忘只在 Origin 中隐藏。 被遗忘的导入条目在文件变化时仍保持隐藏,但 Agent 的文件保持原样:如果希望 Agent 不再使用它,也请编辑或删除那个文件。

导入的条目在 MCP 结果、CLI 和管理界面中都会标明。它们是怎样派生的,见架构中的原生记忆。

遗忘与恢复 ​

遗忘会把一个条目或事件在所有地方隐藏起来:检索、时间线和每个 MCP 工具中都不再出现,在本机如此,遗忘传到你的中枢和其他设备后,在那里也如此。遗忘一个条目会隐藏它的所有版本以及它引用的事件;遗忘一个事件会隐藏它以及所有依据它的条目。重新同步永远不会把它们带回来。

每次遗忘都必须写明原因,并作为一条记录保存下来,包括何时、何地、由谁做出。Agent 可以遗忘,但只能在你要求时这样做,而且必须给出你的原因。只有你能恢复一次遗忘,同样要写明原因,可以在 CLI 或管理界面中进行;恢复也是一条记录,所以遗忘与恢复的历史始终完整。

遗忘是隐藏,不是抹除。原始镜像仍保留原始的行,正因如此才能恢复。相关命令见隐私与数据,确切的规则见架构中的遗忘。

设备、中枢与中转 ​

你使用 Agent 的每台机器都是一个设备,拥有一个完整的、可离线工作的库。自托管的个人中枢把每台设备归档和写下的内容汇集到一个库中,让任何机器上的 Agent 以及云端 Agent 都能找到它们;在任何地方做出的遗忘都会到达每个库。磁盘很小的机器可以改作中转:它自己不保存任何东西,把 Agent 的记录直接发给中枢,并通过中枢作答。搭建方法见个人中枢。