-
Notifications
You must be signed in to change notification settings - Fork 1
Compaction zh
pawaca edited this page Aug 30, 2026
·
1 revision
上游上下文窗口管理系统在 Edge 中的适配。
上游参考:Compaction
压缩通过摘要旧的对话片段来保持长会话在模型上下文窗口范围内。遵循能力接缝模式,分三层:
-
CompactionEngine(
ctx.compaction,dsh-compaction)— 服务定义:触发策略、范围选择、锁语义、持久事件生命周期(compaction/start→compaction/summary→compaction/end)。 -
BasicCompactionEngine(
dsh-compaction-basic)— 提供者:用 LLM 生成摘要。触发条件:pressure(正常阈值)或context-overflow(提供者确认,更激进)。在agent/pre-step阶段、请求派生之前运行。 -
ToolResultPruner(
dsh-compaction-tool-result-pruner)— 可选的预压缩步骤:确定性地裁剪过长的工具结果文本(中间切片,保留块顺序),可能回收足够空间以跳过完整摘要。
压缩事件仅存在于日志——摘要以 user/message + surfaceOp: replace 指令出现,遮蔽原始范围。操作由 start/end 锁事件包裹,用于检测跨崩溃的不完整压缩。
BasicCompactionEngine 和 ToolResultPruner 全部原封安装,零 Edge 代码。无配置覆盖、无适配器、无补丁。压缩使用与普通 turn 相同的 LLM 提供者(DeepSeek),LlmRuntime 可用后即自动工作。
- 触发策略(压力阈值、上下文溢出检测)
- 范围选择算法(平衡的工具调用/结果对)
- LLM 摘要生成和摘要事件格式
- 工具结果裁剪策略(Unicode 码点度量、中间切片)
- 锁语义和崩溃恢复
- 压缩事件(
compaction/start、compaction/summary、compaction/end、compaction/prune)
压缩在 agent/pre-step 阶段运行——每次模型请求之前——当上下文窗口承压时。引擎先尝试工具结果裁剪(低成本,无 LLM 调用)。如果裁剪不够,选择一段旧事件并通过 LLM 调用生成摘要。这为该步骤增加一次额外的 LLM 往返,通常 2–5 秒。
两者是独立的优化,解决不同的问题:
| 关注点 | 压缩 | Chunk Packing|
| 问题 | 上下文窗口溢出 | DO SQL 行数限制 |
|---|---|---|
| 层次 | 模型上下文(surface 事件) | 存储(持久化行) |
| --- | --- | --- |
| 机制 | LLM 摘要 + surface 替换 | 合并连续 chunk 事件为单行 |
| --- | --- | --- |
| 所有者 | 上游 BasicCompactionEngine
|
Edge DurableObjectSessionPersistence
|
| --- | --- | --- |
| 触发 | pre-step 时上下文压力 | 每次事件批写入 |
压缩减少模型看到的内容。Chunk packing 减少数据库存储的行数。两者可以在同一个 session 上独立运作。
| 组件 | 分类 | Edge 代码|
| BasicCompactionEngine | 一行 ctx.plugin() 调用 |
|
|---|---|---|
| ToolResultPruner | 一行 ctx.plugin() 调用 |
关键观察:压缩是纯上游能力,零 Edge 适配。引擎、裁剪器、触发策略和事件生命周期全是上游代码。Edge 只提供两行 ctx.plugin() 安装——最小可能的集成。
- Home
- Architecture
- Core & Scope
- Session & Persistence
- Model & Context
-
Execution & Tools
- Tools
- Bash
- Subprocess 🚫
- PTY Session 🚫
- Background Jobs 🚫
- Filesystem
- LSP Navigation 🚫
- Code Runtime 🚫
-
Web Access
⚠️ -
Skills
⚠️ - Workflow 🚫
- Subagent 🚫
-
Policy & Interaction
- Goal
- Approval 🚫
- Permission Presets 🚫
-
Sandbox
⚠️ - Plan Mode 🚫
- User Interaction 🚫
- Commands 🚫
- Schedule 🚫
- Message Feedback 🚫
- Platform & Access
- Development
- 首页
- 架构
- 核心与作用域
- 会话与持久化
- 模型与上下文
- 执行与工具
- 策略与交互
- 平台与接入
- 开发