D118 L4-CACHE-004 cache agent, big-table small-table silent switching

This commit is contained in:
root 2026-05-31 14:31:13 +08:00
parent 98089207ae
commit 09f966741c

View 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让铸渊永远感觉桌面够大——因为他不看见被换走的东西。