mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-21 17:38:10 +00:00
docs(resident-subagent): 子的记忆面收窄为「传统上下文 + 图记忆」
用户澄清:**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。
This commit is contained in:
@ -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/<id>, Read:[sub/<id>,main]}`;所有记忆读写经 scope | S13–S15 |
|
||||
| **N2d** | **晋升与丢弃**:`Promote(space, records)`(回收时父把选中的 temp 记录写进 main)+ `DropSpace(space)`(回收/销毁时丢弃 temp) | S11 的数据面 |
|
||||
| **N3** | **驻留子生命周期**:创建 / 销毁 / 登记表 / 父退出清理 | S12、S16 |
|
||||
|
||||
Reference in New Issue
Block a user