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