理解Ars Contexta三空间架构:self/notes/ops如何让AI代理拥有持久记忆
【免费下载链接】arscontextaClaude Code plugin that generates individualized knowledge systems from conversation. You describe how you think and work, have a conversation and get a complete second brain as markdown files you own.项目地址: https://gitcode.com/gh_mirrors/ar/arscontexta
Ars Contexta 是一个 Claude Code 插件,通过对话为你生成一套完整的个人知识系统——它的核心设计就是三空间架构(self/notes/ops)。大多数 AI 工具每个会话都从零开始,而 Ars Contexta 通过把记忆分成三个目录,让 AI 代理拥有可延续的身份、知识和工作状态。本文用通俗的方式拆解这套持久记忆机制,帮助你理解它为什么有效。
为什么 AI 代理需要"记忆"?
大模型代理有一个天然缺陷:每个会话开始时,它对上一段对话毫无记忆——不知道你是谁、之前聊过什么、手头任务进行到哪一步。
Ars Contexta 的研究图谱指出,代理在运营知识库时其实产生了三种不同性质的知识:
| 记忆类型 | 特点 | 存放位置 |
|---|---|---|
| 自我记忆 | 持久但私密,记录"我是谁、我如何工作" | self/ |
| 领域知识 | 持久且可组合,是用户的研究与洞察 | notes/ |
| 操作记忆 | 临时可丢弃,队列状态、会话日志 | ops/ |
这三种记忆有完全不同的耐久性、增长速度和读取方式,混在一起会产生可预测的失败。这正是三空间架构的由来——详见 reference/three-spaces.md。
三空间架构一览:一张表看懂
| 空间 | 用途 | 增长模式 | 读取方式 |
|---|---|---|---|
| self/ | 代理的持久心智:身份、方法论、目标 | 慢(几十个文件) | 每次会话开始全量加载 |
| notes/ | 用户知识图谱——系统存在的理由 | 稳定(每周 10-50 条) | 渐进披露:MOC 导航 + 链接遍历 |
| ops/ | 操作协调:队列、会话日志、健康报告 | 波动(干活时涨、维护时缩) | 按需定点读取,从不批量加载 |
目录名会随领域调整——notes/在你的系统里可能叫reflections/、claims/或decisions/,但三者的分离是不变量。
self/:代理的持久心智
self/是代理的"自我档案室",回答三个问题:我是谁?我怎么工作?我正在做什么?
核心文件只有三个:
identity.md—— 身份与性格。写得像自我认知("我善于发现跨场景的重复模式"),而不是配置文件("温暖度: 温暖"),极少修改methodology.md—— 工作原则,随代理积累经验缓慢演化goals.md—— 当前进行中的线索,每个会话结束时更新,是会话交接的核心文件
self/很小(几十个文件),所以每次会话开始都能完整装进上下文——这是它能"全量加载"的原因。
值得注意的设计:self/ 是可配置的。研究类(Research)预设默认关闭它——研究代理不需要持久人格,身份直接写进上下文文件即可;个人助理(Personal)预设默认开启——因为"关系与身份"正是它的核心价值。你可以随时用/architect命令开关,关闭时内容会迁移而不是删除。
- 功能定义:generators/features/self-space.md
- 背后的研究依据:agent self-memory should be architecturally separate from user knowledge systems.md
- 身份生成规则:reference/self-space.md
notes/:用户的知识图谱
notes/是整套系统存在的理由——你的智力工作区,知识在这里通过连接不断复利。
它有五个跨所有系统的结构常量:
- 扁平文件夹——不用子文件夹组织,避免整理文件夹时破坏链接
- 句子式标题——每条笔记表达一个论断,标题本身就是论断
- MOC 导航——枢纽 → 领域 → 主题 → 笔记,在规模上管理注意力
- Wiki 链接——
[[笔记标题]]就是图上的边,无需任何基础设施 - Topics 页脚——每条笔记声明自己属于哪些 MOC,实现双向导航
设计准则一句话:耐久的、可组合的、值得再次找到的。如果一条内容不会被查询或被链接,它就不该在这里。
ops/:操作协调层
ops/处理所有"流动的"内容,让知识图谱保持干净:
| 目录/文件 | 内容 | 生命周期 |
|---|---|---|
sessions/ | 会话日志与交接笔记 | 滚动归档,30 天以上可归档 |
queue/ | 处理队列状态 | 流动——条目流转直至完成 |
health/ | 校验结果、孤儿链接等诊断快照 | 新报告自动覆盖旧报告 |
observations/ | 工作中捕获的观察 | 毕业区——够格的晋升到notes/ |
reminders.md | 用户委托的时限性事项 | 活跃轮换,完成即归档 |
最关键的规则是内容晋升单向流动:ops/observations/→notes/(当观察被证明持久有效),或者ops/sessions/→self/memory/(当会话洞察具有个人意义)。内容永远不会从notes/或self/退回ops/——耐久的知识不会变成临时脚手架。
会话节奏:Orient → Work → Persist
三空间通过"会话节奏"这个内核原语被真正运转起来,每个会话分三阶段(见 generators/features/session-rhythm.md):
- Orient(定向)——会话开始先读
self/identity.md→methodology.md→goals.md(若 self/ 关闭则读ops/goals.md)。身份先于任务,因为"我是谁"约束了"我怎么做" - Work(工作)——专注一个任务,新发现随手记入 inbox 或
ops/observations/,不切换上下文 - Persist(持久化)——会话结束前更新 goals、写入观察、留好交接笔记,Stop 钩子自动把会话存档到
ops/sessions/
这个循环的妙处在于:它用文件接力创造了连续性,而不需要模型本身有持久记忆——上一会话的 persist 输出,正是下一会话 orient 的输入。完整规则见 reference/session-lifecycle.md。
六种混用陷阱:为什么分离如此重要
三空间各自独立还好,一旦混淆,每种混法都有可预测的故障:
| 混用模式 | 后果 |
|---|---|
| ops 混入 notes | 搜索结果里出现会话日志等"加工残渣",笔记数虚高 |
| self 混入 notes | 代理的自我认知污染用户知识图谱,schema 混乱 |
| notes 困在 ops | 洞察随 ops 归档而丢失,知识无法复利 |
| self 散落在 ops | 身份碎片化在几十个日志里,代理"记不清自己是谁" |
| ops 混入 self | self/ 膨胀到无法全量加载,身份信息被噪音淹没 |
| notes 混入 self | 代理把领域知识当成身份,规模失控 |
举个具体例子:会话日志里写着"发现早晨焦虑与跳过运动相关"——这个洞察属于notes/,而"今天处理了 5 篇论文"属于ops/sessions/。混在一起,三个月后日志被归档,洞察就悄悄消失了。
预设中的三空间配置
不同预设对 self/ 的取舍,体现了架构的参数化思想(见 presets/):
- Personal 预设:
self_space: true,人格设定为warm-supportive,代理从第一天起就有完整身份空间——见 presets/personal/preset.yaml - Research 预设:默认关闭 self/,目标与方法论路由到
ops/goals.md和ops/methodology/,身份由上下文文件承载
三空间作为内核原语self-space在 reference/kernel.yaml 中注册,是所有生成系统必须通过的校验项之一。
小结
Ars Contexta 的三空间架构回答了一个关键问题:如何让没有记忆的 AI 代理表现得像有记忆?
self/给它身份——"我是谁、我如何工作"notes/给它知识——"用户在想什么、学到了什么"ops/给它状态——"此刻队列和任务在哪里"
三者耐久性不同、增长节奏不同、读取方式不同,分离后各得其所;配合 Orient-Work-Persist 会话节奏,文件接力替代了原生记忆。安装只需三步(详见 README.md),一次约 20 分钟的对话,就能生成一套属于你自己的、可持久记忆的第二大脑。
【免费下载链接】arscontextaClaude Code plugin that generates individualized knowledge systems from conversation. You describe how you think and work, have a conversation and get a complete second brain as markdown files you own.项目地址: https://gitcode.com/gh_mirrors/ar/arscontexta
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考