From 36e7556a0221d0eca3726b45d47021bba3b9f89f Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Sun, 13 Sep 2026 09:24:09 +0800 Subject: [PATCH] =?UTF-8?q?docs(resident-subagent):=20=E5=AD=90=E7=9A=84?= =?UTF-8?q?=E8=AE=B0=E5=BF=86=E9=9D=A2=E6=94=B6=E7=AA=84=E4=B8=BA=E3=80=8C?= =?UTF-8?q?=E4=BC=A0=E7=BB=9F=E4=B8=8A=E4=B8=8B=E6=96=87=20+=20=E5=9B=BE?= =?UTF-8?q?=E8=AE=B0=E5=BF=86=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户澄清:**doc 记忆**与 **context 动态上下文**是内核独立设计的记忆能力(父专属), 子 agent 的记忆面只有 **图记忆**。据此更正设计: - §5 开头加适用范围界定:两级空间(读 temp∪main / 写 temp)**只针对图记忆** - 新增 §5.5「子的记忆面」对照表: | 能力 | 根 | 驻留子 | | 图记忆(含向量检索) | ✅ main 读写 | ✅ 作用域化 | | doc 记忆 / context 动态上下文 / 蒸馏 / 归档 / consolidation / 文本 / 知识库 / 媒体 / 社交 | ✅ | ❌ 父专属 | - 修正「轻量内核」的表述:不是"记忆变轻",而是**记忆面裁到只剩图记忆 + 图记忆被作用域化** - §16.1 记忆面清单加「子可用?」列;**v1 只给图记忆(含其向量检索)加 space 维度** —— 其余面子根本够不到,加 space 是白工 - 里程碑:N2a = 图记忆 space 维度;N2b = 图记忆的向量检索接入同一过滤 - 决策表补 R3b 纯文档更正;全仓 go test ./... 37 包 ok。 --- docs/zh/resident-subagent-design.md | 47 +++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/docs/zh/resident-subagent-design.md b/docs/zh/resident-subagent-design.md index 23c3efc..3c3d63a 100644 --- a/docs/zh/resident-subagent-design.md +++ b/docs/zh/resident-subagent-design.md @@ -167,6 +167,10 @@ ## 5. 记忆模型:两级空间 [已定] +> **适用范围**:这套"两级空间"是针对**图记忆**的。子 agent 的记忆面是 +> **传统上下文 + 图记忆**;**doc 记忆**与 **context 动态上下文**是内核独立设计的 +> 记忆能力,**只有根 agent 有**(子不可见、不可用,见 §5.5)。 + ``` 主记忆空间(main) ← 子【只读,可看到全部】;父【读写】;所有子共享 子临时记忆空间(temp) ← 该子【读写】;每个子独立、互不可见 @@ -207,6 +211,19 @@ | **回收** | 父读 → **选中的 promote 进 main** → 丢弃 temp | 父写 | 取消 | | **销毁** | 直接丢弃 | 不写 | 立刻移除 | +### 5.5 子的记忆面:**传统上下文 + 图记忆** [已定] + +| 记忆能力 | 根 agent | 驻留子 | +|---|---|---| +| **图记忆**(实体/关系/句子,含其向量检索) | ✅ main 读写 | ✅ **作用域化**(读 temp∪main,写 temp) | +| **doc 记忆**(文档记忆) | ✅ | ❌ **不可用**(内核独立设计的记忆能力,父专属) | +| **context 动态上下文**(动态上下文装配/裁剪) | ✅ | ❌ **不可用**;子用**传统上下文**(纯消息序列) | +| 蒸馏 / 归档 / consolidation | ✅ | ❌(属上述父专属能力) | +| 文本记忆 / 知识库 / 媒体 / 社交 | ✅ | ❌(同上) | + +⇒ 所以"轻量内核"的准确表述是:**传统上下文 + 图记忆(作用域化)** —— +不是"记忆变轻了",而是**记忆面被裁到只剩图记忆,且图记忆被作用域化**。 + ### 5.4 待钉的边界 [默认] - temp 与 main 是**同一套记忆子系统里的命名空间**(同一批表/索引 + 一个 space 维度), @@ -383,18 +400,20 @@ `internal/memory/` 下需要加 space 维度的面: -| 面 | 载体 | 表 | -|---|---|---| -| 图记忆 | `memory.GraphDB` | `entities` / `sentences` / `relations` | -| 向量索引 | `memory.Indexer` | (索引侧,与图记忆同步) | -| 文档记忆 | `document.Store` | `documents` | -| 知识库 | `knowledge.Store` | 各自表 | -| 文本记忆 | `text.Memory` | 各自表 | -| 媒体 | `media.Store` | 落盘 + 索引 | -| 社交 | `social` | 各自表 | +| 面 | 载体 | 表 | 子 agent 可用? | +|---|---|---|---| +| **图记忆** | `memory.GraphDB` | `entities` / `sentences` / `relations` | ✅ **作用域化**(读 temp∪main,写 temp) | +| **图记忆的向量检索** | `memory.Indexer` | (索引侧,与图记忆同步) | ✅ 同图记忆(需按 space 过滤) | +| 文档记忆(doc 记忆) | `document.Store` | `documents` | ❌ 父专属 | +| context 动态上下文 | 内核上下文装配/裁剪(`pruneOnInput` 等) | — | ❌ 父专属;子用传统上下文 | +| 知识库 | `knowledge.Store` | 各自表 | ❌ | +| 文本记忆 | `text.Memory` | 各自表 | ❌ | +| 媒体 | `media.Store` | 落盘 + 索引 | ❌ | +| 社交 | `social` | 各自表 | ❌ | -⇒ N2a 先做**图记忆**这一条纵切(它是最核心、也是"子写 temp / 父 promote 进 main"的主战场), -验证 space 维度可行后再逐面铺开(N2b)。 +⇒ N2a 做**图记忆 + 其向量检索**这一条纵切(子唯一可用的记忆面, +也是"子写 temp / 父 promote 进 main"的主战场);其余面在 v1 **不加 space 维度** +(子根本够不到,加了是白工)——若将来子扩展记忆面再逐面补。 --- @@ -444,7 +463,8 @@ |---|---|---| | **R1** | 驻留子的内核形态 | **[已定]独立轻量内核**(自己的调度器/中断栈/上下文/记忆作用域) | | **R2** | 插件与工具 | **[已定]父授权,默认完整授权**(可收窄) | -| **R3** | 记忆模型 | **[已定]两级空间**:读 temp∪main,写 temp | +| **R3** | 记忆模型 | **[已定]两级空间**:读 temp∪main,写 temp(**范围 = 图记忆**) | +| **R3b** | 子的记忆面 | **[已定]传统上下文 + 图记忆**;doc 记忆与 context 动态上下文是**父专属**(内核独立设计的记忆能力) | | **R13** | inputch 总览的形态 | **[已定]单工具多视图**(`input_channels` + `view`) | | **R11** | 父消息的级别 | **[已定]对子 = L4**(子的阶梯上唯一 L4 来源;子内部一律 ≤L3) | | **R12** | 子的内核级事件(panic / contextfull)上报级别 | **[默认/推论]在父的阶梯上以 L4(带子标识)上报** | @@ -466,7 +486,8 @@ | **N1a** | **通道登记层**:inputch 一等化(归属插件 / 归属 agent / 容量 / 共享登记表)+ **单工具多视图总览** | S21–S23 | | **N1b** | 输出通道授权过滤 + 目标解析(outputch → 目标 agent 的 inputch) | S1–S3 | | **N2a** | **作用域对象 + 图记忆 space 维度**:`memory.Scope{Write string; Read []string}`;`entities/sentences/relations` 加 `space` 列(默认 `main`,老数据迁移视为 main);写落 `Write`、查询过滤 `space IN Read` | 同 space 可见、跨 space 不可见 | -| **N2b** | **其余记忆面加 space**:text memory / documents / knowledge / media / 向量索引 | 同上(逐面验收) | +| **N2b** | **图记忆的向量检索**接入同一 space 过滤(子能按 space 语义检索) | 检索不跨 space 越界 | +| — | 其余记忆面(doc 记忆 / 动态上下文 / 知识库 / 文本 / 媒体 / 社交):**v1 不加 space**(子不可达) | 由 S13/S14 隐含 | | **N2c** | **Agent 级作用域接线**:`AgentConfig.MemoryScope`;根 = `{Write:main, Read:[main]}`;驻留子 = `{Write:sub/, Read:[sub/,main]}`;所有记忆读写经 scope | S13–S15 | | **N2d** | **晋升与丢弃**:`Promote(space, records)`(回收时父把选中的 temp 记录写进 main)+ `DropSpace(space)`(回收/销毁时丢弃 temp) | S11 的数据面 | | **N3** | **驻留子生命周期**:创建 / 销毁 / 登记表 / 父退出清理 | S12、S16 |