Skip to main content

CONTEXT_COLLAPSE — 上下文折叠

Feature Flag: FEATURE_CONTEXT_COLLAPSE=1 子 Feature: FEATURE_HISTORY_SNIP=1 实现状态:核心逻辑全部 Stub,布线完整 引用数:CONTEXT_COLLAPSE 20 + HISTORY_SNIP 16 = 36

一、功能概述

CONTEXT_COLLAPSE 让模型内省上下文窗口使用情况,并智能压缩旧消息。当对话接近上下文限制时,自动将旧消息折叠为压缩摘要,保留关键信息的同时释放 token 空间。

子 Feature

二、实现架构

2.1 模块状态

2.2 核心接口(已定义,待实现)

2.3 预期数据流

2.4 HISTORY_SNIP 子功能

SnipTool 提供手动折叠能力:
  • /force-snip 命令 — 强制执行折叠
  • SnipTool — 标记特定消息进行折叠/修剪
  • collapseReadSearch.ts 已完整实现,将 Snip 作为静默吸收操作处理

2.5 集成点

三、需要补全的内容

四、关键设计决策

  1. 后台 LLM 压缩:折叠不是简单截断,而是用 LLM 生成压缩摘要保留关键信息
  2. 413 恢复:当 API 返回 413(请求过大)时,紧急折叠是最重要的恢复手段
  3. 与 autoCompact 协作:折叠和自动压缩(compact)是不同的机制,折叠在消息级别,压缩在对话级别
  4. 持久化:折叠状态持久化到磁盘,会话恢复时重载

五、使用方式

六、文件索引