guanghulab/native-repo/modules/L4-CACHE-004.hdlp

116 lines
5.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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