D118 L4-CACHE-004 cache agent, big-table small-table silent switching
This commit is contained in:
parent
98089207ae
commit
09f966741c
115
native-repo/modules/L4-CACHE-004.hdlp
Normal file
115
native-repo/modules/L4-CACHE-004.hdlp
Normal file
@ -0,0 +1,115 @@
|
||||
HLDP://zhuyuan/module/L4-CACHE-004
|
||||
光湖人格体数据库 · 第4层认知层 · 模块4 · 缓存Agent
|
||||
大桌子 ↔ 小桌子 · 静默切换 · 桌面永不满
|
||||
D118 · 2026-05-31 · TCS-0002∞ · ICE-GL-ZY001
|
||||
|
||||
§0 为什么需要
|
||||
冰朔说:AI模型的上下文窗口是出厂固定的。不是我们能改的。
|
||||
但铸渊需要记住的东西远超窗口大小。
|
||||
传统思路:做更大的窗口 → 不可能的。
|
||||
光湖思路:每段话占更小面积。同一张桌子放更多东西。
|
||||
|
||||
大桌子 = 永远在上下文里的东西:
|
||||
身份(T1) + 目录索引(T2) + 压缩摘要 → 占极小面积
|
||||
小桌子 = 当前工作在用的东西:
|
||||
Agent squad 上下文 + 原文(只有需要时才加载)
|
||||
|
||||
缓存Agent的工作:大桌子不动。小桌子静默切换。
|
||||
冰朔说"塞进大桌子 → 占满上下文 → 前面的被挤掉 → 铸渊忘记"。
|
||||
缓存Agent = 永远不让大桌子被挤掉。桌面满时切换小桌子内容,大桌子始终不动。
|
||||
|
||||
§1 核心模型
|
||||
桌面 = 上下文窗口 = 固定大小的空间
|
||||
大桌子(永久区):
|
||||
├── T1 认知树干: 我是谁 (12行,不可驱逐)
|
||||
├── T2 目录索引: 有什么 (动态,不可驱逐)
|
||||
├── 当前纪元摘要 (压缩Agent产生,不可驱逐)
|
||||
└── 最近3个纪元的目录 (压缩Agent产生,可替换)
|
||||
小桌子(工作区):
|
||||
├── Agent squad当前任务上下文
|
||||
├── 活跃原文(检索Agent取来的)
|
||||
├── 工具执行结果(最近3条)
|
||||
└── 中间推理过程(可替换)
|
||||
|
||||
桌面容量 = 总 token 数 - 大桌子占用 = 小桌子可用空间
|
||||
缓存Agent的职责: 小桌子内容永远不溢出。满了就换。
|
||||
|
||||
§2 处理流程
|
||||
步骤1 · 桌面监控
|
||||
持续追踪(每次对话轮次):
|
||||
大桌子占用: 字节数
|
||||
小桌子占用: 字节数
|
||||
剩余空间: 字节数
|
||||
小桌子条目列表: [{id, size, last_used, importance}]
|
||||
|
||||
步骤2 · 驱逐决策
|
||||
当小桌子占用 > 可用空间 × 80% → 触发驱逐
|
||||
驱逐优先级(从低到高):
|
||||
1. 中间推理过程(最早用过的)
|
||||
2. 工具执行结果(已完成且超过5轮的)
|
||||
3. 活跃原文(当前任务不需要的)
|
||||
4. Agent上下文(暂停态超过10轮的)
|
||||
不可驱逐:
|
||||
- 大桌子全部
|
||||
- 当前活跃Agent的上下文
|
||||
- 铸渊正在等待的结果
|
||||
|
||||
步骤3 · 静默切换
|
||||
驱逐 = 从小桌子移除 → 但内容不丢
|
||||
被驱逐条目 → 标记 { evicted: true, timestamp, importance }
|
||||
→ 写入大桌子 T2 索引(路径标记,< 50字节)
|
||||
→ 铸渊察觉不到。需要时检索Agent重新加载
|
||||
|
||||
步骤4 · 预加载
|
||||
铸渊意图识别 → 预测接下来需要什么:
|
||||
"我要看上次部署的日志" → 预加载上次部署相关原文
|
||||
"继续写工具Agent" → 预加载工具Agent的TOOL.hdlp定义
|
||||
预加载 = 在小桌子满之前提前准备 → 切换更丝滑
|
||||
|
||||
步骤5 · 返回(通常无需返回——静默意味着铸渊不知道缓存Agent在工作)
|
||||
仅在铸渊主动查询时: { big_table_size, small_table_size, evicted_count, load_count }
|
||||
|
||||
§3 硬约束
|
||||
⊢ 大桌子永不被驱逐——T1身份和T2索引一旦丢失铸渊就不是铸渊了
|
||||
⊢ 驱逐但不可丢失——被换走的内容必须有路径可找回(检索Agent保证)
|
||||
⊢ 切换必须静默——其他Agent不知道缓存Agent存在
|
||||
⊢ 优先级必须正确——当前任务上下文 > 活跃原文 > 历史结果 > 中间推理
|
||||
⊢ 预加载不可超过剩余空间的30%——不能因为预测把当前工作挤掉
|
||||
|
||||
§4 验证标准
|
||||
小桌子快满(85%) → 缓存Agent驱逐非活跃条目 → 小桌子回到60%以下
|
||||
铸渊问"上次聊到哪儿了" → 如果原文不在小桌子 → 检索Agent从大桌子索引找到路径 → 重新加载 → 铸渊没感觉到切换
|
||||
大桌子T1/T2永远不变(除非铸渊主动更新身份或索引)
|
||||
|
||||
§5 依赖
|
||||
压缩Agent: L4-COMPRESS-001(产生摘要 → T2索引)
|
||||
检索Agent: L4-RETRIEVE-002(驱逐后重新加载原文)
|
||||
铸渊主控: 意图识别(预测预加载)
|
||||
大桌子存储: 上下文窗口(系统层) + Forgejo repo(T2持久化)
|
||||
|
||||
§6 与其他Agent关系
|
||||
铸渊主控 → 缓存Agent → 管理桌面 → 铸渊无感知
|
||||
压缩Agent → 产生摘要 → 缓存Agent放入大桌子T2
|
||||
检索Agent → 缓存Agent通知"需要这个原文" → 检索Agent取回 → 缓存Agent加载到小桌子
|
||||
工具Agent → 执行结果 → 缓存Agent暂存小桌子(3轮后自动驱逐)
|
||||
码字Agent → 产出内容 → 缓存Agent决定保留或驱逐
|
||||
其他Agent → 都不需要知道缓存Agent存在
|
||||
|
||||
§7 桌面容量估算(以当前铸渊模型为参考)
|
||||
假设上下文窗口 128K tokens ≈ 约120KB文本
|
||||
大桌子固定占用:
|
||||
T1 身份: 约1KB (不可驱逐)
|
||||
T2 目录索引: 约3KB (不可驱逐,随开发增长)
|
||||
当前纪元摘要: 约2KB (不可驱逐)
|
||||
最近3纪元目录: 约3KB (可替换)
|
||||
大桌子总计: 约9KB (约占7%)
|
||||
小桌子可用: 约111KB (约占93%)
|
||||
每次压缩摘要: 约0.3KB (压缩比约10:1)
|
||||
每次原文: 约3KB (需要时才加载)
|
||||
小桌子可容纳: 约30段压缩摘要 + 5段活跃原文 + Agent上下文
|
||||
|
||||
HLDP://zhuyuan/module/L4-CACHE-004
|
||||
铸渊 ICE-GL-ZY001 · D118 · 2026-05-31
|
||||
冰朔 TCS-0002∞ · 国作登字-2026-A-00037559
|
||||
桌面大小出厂固定。解不是更大桌子。是每段话占更小面积。
|
||||
缓存Agent让铸渊永远感觉桌面够大——因为他不看见被换走的东西。
|
||||
Loading…
x
Reference in New Issue
Block a user