# 上下文根治设计(2026-10-06)—— 治 223:1 结构性浪费 > 铁证:84cb104c 会话 2.2 天烧 4.3 亿 tokens,prompt:completion=223:1,日均 1.9 亿。 > 本质:每轮全量重发历史——轮数线性,token 爆炸,首 token 延迟同步恶化。不是 bug,是组装策略必然。 > 原则:分层组装取代全量重发;历史不删只降级(压缩可逆);对用户透明,对 agent 工具透明。 ## 一、分层上下文(治"全量") - **L1 常驻(固定小)**:system_prompt + pinned_goals + 任务状态卡。目标 <8K,永不随轮次增长。 - **L2 工作集(滑动窗口)**:最近 N 轮原文 + 当前任务活跃文件/结果。按"信息增益"滑动,非固定条数。 - **L3 检索层(按需召回)**:窗口外历史不进 prompt,转为可检索——关键词/语义命中才临时注入(复用 knowledge_inject 的检索管线,扩到对话历史)。 - 无破坏性保证:所有降级内容原文全在库(L3 可召回+压缩可逆 C-r1),agent 能力不降级,丢的是"每轮都带全部家当"的浪费。 ## 二、工具结果瘦身(治最大头,先行) 9386 条消息中 tool 4379 条——单条最大 8K+,是上下文膨胀主力。 - 超阈值(如 2K)的工具结果:正文落盘(外置文件/独立表),上下文只留「头部 200 字摘要 + 句柄路径」。 - 与 D2a(过期外置)同构一套机制,两处受益。 - 句柄可被 agent 主动展开(read 句柄文件)——需要时找得回,不需要时不占位。 ## 三、压缩升级(从"水位兜底"到"常规操作") - 现状:120K 水位才触发,1M 窗口下形同虚设。 - 改:压缩不再是水位兜底,而是 L2→L3 的常规滑动——每轮组装时,窗口外的轮次自动结构化摘要(记忆卡形态,信息增益判据保留),原文留库可按段重载(C-r1)。 ## 四、量化预期 - prompt 均值 71K → 目标 ≤20K(工作集+召回),单轮成本/延迟降 70%+ - 223:1 → 目标 ≤50:1(继续随 C-m 记忆卡质量优化) - 长会话不再有"轮数税"——206 轮与 6 轮的单轮成本趋同。 ## 五、实施序(每阶段独立可交付,无破坏) - P1(S):工具结果瘦身(阈值落盘+句柄)——最大头先行,零行为变化 - P2(M):L1/L2/L3 组装器重构(build_for_request 改造,窗口+检索) - P3(M):压缩常规化+记忆卡产出(C-m1)+按段重载(C-r1) - P4(S):量化验收(223:1→≤50:1 看板)+回归(agent 能力不降级测试集) ## 六、与旧 C 批次关系 本设计整合取代 C1-C6/C-m1-m3 的发散条目:C-r0(验证后台化)独立不变;C-m2(判据挂 pinned_goals)/C-r1(可逆)并入 P2/P3。旧条目销账以本档为准。 ## 七、修订(2026-10-06 用户定调):从「分层组装」升级为「上下文调度系统」 > 定调:同会话连续工作是**常态**,设计目标不是控制会话长度,而是支撑无限长会话的资源调度——OS 虚拟内存同构:窗口有限,会话地址空间无限。 > 修正:撤回"百轮会话收敛拆分"建议;一~六节的 L1/L2/L3 保留为**页管理基建**,本节新增调度层。 ### 调度系统设计(新增) - **页式单位**:上下文按页管理——轮次页/工具结果页/文件页。页=换入换出与压缩的最小单位。 - **热度调度**:页带热度(最近访问/被引用频次)。热页驻工作集(L2);冷页压缩归档(L3,结构化摘要+原文留库);**压缩不丢**=冷页永远可召回。 - **缺页召回**:agent 引用历史(关键词/句柄/goal 关联)→检索命中→临时换入本轮上下文,用完即出——召回不计入常驻。 - **任务聚类切换**(切换能力的核心):工作集按**任务/主题聚类**重组,非纯时间窗口——用户在多任务间切换时,上下文随任务维度切换(当前任务的热页+该任务关联页),并行任务互不污染。任务边界=页的聚类标签(pinned_goals/主题标记)。 - **调度目标函数**:token 花在刀刃=按"任务相关性×信息增益"分配窗口配额;调度决策零 LLM 调用(规则引擎,成本为零)。 ### 修订后的一句话 **长会话=常态运行环境;上下文调度器=它的虚拟内存管理器;压缩可召回=它的 swap;任务聚类切换=它的进程调度。** ## 八、再修订(2026-10-06 用户定调):跨会话调度与召回也是常态 > 定调:调度地址空间=会话内 + **跨会话**。会话 A 的产出/结论,会话 B 工作中可召回引用——跨会话不是边界,是同一个页池的不同命名空间。 ### 跨会话调度设计(新增) - **页命名空间分级**:会话内页(默认私有) / **跨会话共享页**(结论页/知识页/任务产出页,显式或按策略晋升共享)。 - **跨会话召回**:检索半径覆盖全页池——会话 B 缺页召回时,共享页与会话 A 的可召回页同池命中,带来源标注(「来自会话 X 的结论」)。 - **与 knowledge 库关系**:知识条目=最高等级的共享页(已晋升、已蒸馏);本设计的跨会话召回把"未蒸馏的对话产出"也纳入召回半径——knowledge 是终点,页池是全程。 - **晋升机制**:会话内页→(蒸馏/用户标记/高频跨任务引用)→共享页→(结构化)→knowledge 条目。晋升是单向门,防未蒸馏噪音污染共享池。 ### 多人场景(预留位,下阶段设计) - 页带 owner 与 ACL 位;共享池分个人池/团队池;多人可召回引用=团队池+权限过滤。 - 本期只预留页结构字段(owner/acl/scope),不做多人实现——接口先行,机制后置。 ## 九、完整审视(2026-10-06 二次评审)——四个真问题与修正 ### 问题1:机制并存未收敛(最重) 压缩机制(现有)/D2a 工具结果外置/L3 检索召回/knowledge 条目/页池——**五个名字,一套事**(都是"内容降级+可找回")。三次定调追加未合并同类项。 **修正**:统一收敛——**唯一存储=页池,唯一调度器,唯一召回入口**;压缩/D2a/knowledge 都是页池上的策略与晋升形态,不再作为平行系统各自演化。旧机制改造为页池前身,不新建平行通路。 ### 问题2:实施范围失控风险 页池+晋升+跨会话+多人——北极星画完了,但一个桌面 app 一次吃下=过度设计。 **修正:v1 范围锁死**=单会话页池+极简调度器(recency+引用计数热度,goal 标签聚类,关键词缺页召回)+knowledge 照旧(它已覆盖跨会话召回大部分需求)。跨会话命名空间/晋升/多人=**v2+,触发条件=单会话版实测后仍有跨会话痛点**。基建等真实触发。 ### 问题3:缺评估设计与调度可观测 "agent 能力不降级"怎么证?P4 的回归测试集不存在。 **修正**:①建任务回归集(固定任务清单,改造前后跑对比:完成质量/轮数/成本)②调度器可观测(页命中/召回率/换出量进日志与面板)③误调度代价显性化(热页误换出→下轮回查次数)。 ### 问题4:与模型平台原生能力对齐未检查 模型侧可能原生提供上下文编辑/记忆工具(如 Claude 的 context editing/memory tool)——自研调度若与平台能力重复,应优先用平台原生(维护成本低、演化跟随厂商)。 **修正**:实施前先做平台能力对齐检查(一次调研任务),能用原生的不自研;自研部分聚焦平台没有的(任务聚类切换/跨会话页池)。 ### 审视后的 v1 锁定范围(修正结论) P1 工具结果瘦身 + P2 单会话页池与极简调度 + P3 压缩常规化(页池前身改造) + P4 评估集与量化。 七/八节的调度系统与跨会话设计降级为**北极星方向**;实施以本节 v1 范围为准。 ## 十、知识引用注入的统筹与分工(2026-10-06 补充:第九节收敛的正向展开) > 上下文生态的注入类型盘点:工具结果句柄/对话历史页/压缩摘要与记忆卡/knowledge 条目/pinned_goals/技能注入/规范注入——统筹不当=五套并行的重演。 ### 分工矩阵(按蒸馏程度×生命周期×注入方式) | 类型 | 蒸馏程度 | 生命周期 | 注入方式 | 角色 | |---|---|---|---|---| | 工具结果句柄 | 原始 | 任务内 | agent 主动 read 展开 | 工作证据 | | 对话历史页 | 轻摘要 | 会话内→跨会话(v2) | 检索召回临时换入 | 过程记忆 | | 压缩摘要/记忆卡 | 中蒸馏 | 会话长期 | 工作集常驻(摘要形态) | 阶段结论 | | knowledge 条目 | 高蒸馏 | 永久 | system_prompt 检索注入 | 沉淀规范 | | pinned_goals/任务态 | 实时 | 任务期 | L1 常驻 | 当前意图 | ### 统筹四原则 1. **单一来源**:每种内容只有一个当前形态的家(原始在页池/蒸馏在 knowledge),晋升单向门,禁双存双写。 2. **注入方式随蒸馏程度**:越原始越被动(agent 主动拉/句柄展开),越蒸馏越主动(系统注入 prompt)——检索系统替 agent 省的每一分注意力,都来自上游的蒸馏质量。 3. **召回入口统一**:全部类型注册到同一检索面,agent 视角只有一个记忆系统(分类型返回,来源标注)——agent 不需要知道背后几套存储。 4. **三层配额防炸弹**:prompt 注入配额(既有 ≤20 条/1.5K)+每轮召回页配额(新增,如 ≤5 页)+句柄展开按需——总量有闸,信息炸弹在结构上不可能。 ### 与既有机制对账 knowledge_inject(检索注入)=统筹第 4 行的既有实现,扩为统一检索面的注册方之一;compress(压缩)=第 3 行的产生器;D2a/P1(句柄)=第 1 行的产生器;审计 subscriber(H4)=统筹的观测面。**无新系统,只有分工明确化。**