Run 中认知交班
wesgine 的 MidRunHandoff 与 MidRunCompression 机制。
概述
长对话在 Run 过程中可能超出模型上下文窗口。认知交班(MidRunHandoff)在 Run 中途执行,将已有的对话历史压缩为结构化的 SessionState,为后续 turn 腾出空间。
触发条件
当对话消息的估算 token 数接近模型上下文窗口限制时触发。
判据基于 EconomicWindow(经济窗口)——不是物理窗口的 100%,而是保留一定余量。
与 CognitiveSettlement 的关系
| 机制 | 时机 | 目的 |
|---|---|---|
| MidRunHandoff | Run 中途 | 腾出上下文空间 |
| CognitiveSettlement | Run 终态 | 持久化认知产物 |
两者使用相同的 SessionState schema(INV-CTX-45)。
SessionState
交班产出的 SessionState 包含:
- 对话摘要
- 关键事实
- 待办事项
- Plan 状态(Plan 是 SessionState 子字段,INV-CTX-46)
信息保全策略
INV-CTX-44:信息保全首选认知交班。
交班不可用或失败时,机械压缩提供确定性 fallback:
- 丢弃前
ExtractToolEvidence注入 Pinned system message - 不做 LLM 判断
主模型产出
INV-CTX-41:SessionState 由主对话模型产出。
- 不使用辅助模型
- 不使用规则引擎
- 压缩质量 = 对话质量
不可见性
INV-CTX-42:Settlement/Handoff 产出不可见于用户。
- 不 emit StreamDelta
- 不产生 assistant 气泡
- 用户不会看到压缩过程
降级策略
3 次重试 → mechanicalFallback:
degraded=truedegraded_reason分类常量- 写入 worker 日志
与上下文组装的关系
INV-CTX-43:SessionState 是下一轮 Context 的唯一历史来源。
System Prompt 的历史信息仅从 SessionState 注入,不从旧消息推断。