自动压缩
长任务会不断占用模型的上下文窗口。Auto Compact 开启后,Dline 会在上下文接近上限时让模型总结较早的对话,用摘要代替这些内容继续任务。
在 Settings → Features 中打开 Auto Compact(说明为 “Automatically compress conversation history.”)。该选项默认关闭。
开启后会出现以下设置:
| 设置 | 默认值 | 说明 |
|---|---|---|
| Compression point (%) | 97 | 可调范围 1–97,数值越小越早压缩 |
| Minimum reserve | 5K | 预留空间的下限(K tokens) |
| Maximum reserve | 30K | 预留空间的上限(K tokens) |
| Maximum context | 0 | 绝对上下文上限(K tokens),0 表示不设绝对上限 |
触发点并不是简单的“用到 97%”。如果模型的上下文窗口大于 Maximum context,所有计算都以该设定值作为窗口;按这个窗口的百分比算出的预留空间同样被限制在最小与最大预留之间,与同样大小的模型窗口完全一致。触发点等于该窗口减去预留空间,再减去 5.5K 的安全余量;预计的下一次请求一旦达到触发点就开始压缩。估算容差已经包含在触发点中,不会让触发点再移动。
输入非法时会提示 “Reserve values must be whole numbers from 0 to …” 或 “Minimum reserve cannot exceed maximum reserve.”。
压缩时发生什么
Section titled “压缩时发生什么”- Dline 指示模型写出摘要,涵盖用户请求、技术细节和待完成的工作。开启 Focus Chain 时,待办清单的进度也会提供给摘要。
- 聊天中会出现 Summary 卡片,显示摘要生成过程和结果。
- 之后发送给模型的内容由“累积摘要 + 尚未被摘要覆盖的消息 + 当前的继续内容”组成。
保存在磁盘上的完整对话记录不会被删除,只是发送给模型的内容变短了。
分段压缩与停止条件
Section titled “分段压缩与停止条件”下文的“上下文窗口”指模型窗口;设置了 Maximum context 且小于模型窗口时,指该设定值。
一次压缩可能包含多个分段(Pass):
- 每个分段从最早尚未压缩的对话开始,尽可能多地带上连续的完整轮次,同时让输入不超过触发点,把预留空间留给摘要。越过触发点的那一轮,只要占用不超过预留空间的一半,仍可加入本分段;它之后不再加入其他轮次,因此至少一半的预留空间留给摘要。这样,只是略超触发点的一轮不会被单独拆到下一个分段。
- 从第二个分段起,上一段的摘要也会一并带上,因此摘要会逐段累积。
- 某一轮对话本身超过触发点、且超出部分大于预留空间的一半时,会按消息拆到多个分段,工具调用与其结果始终放在一起,不会截断其中的内容。
- 单条消息本身仍超过触发点时,会单独作为一个分段发送,这个分段最多可以使用模型完整窗口减去 3K。
- 每个分段完成后,如果发送内容已低于上下文窗口的 80%,或者已经没有尚未压缩的对话,压缩就停止并生效。
压缩不会因为上下文仍然较大而判定失败。只有摘要请求本身出错且重试用尽,或者你取消了压缩,才会结束而不生效。唯一的例外是单条消息大于模型的整个窗口:如果之前已有分段完成,就让这些分段的结果生效;否则 Dline 会说明这条消息无法压缩。
接近上限时的工具结果
Section titled “接近上限时的工具结果”为了让长任务持续运行,一轮工具调用(包括并行的读取、命令和 subagent)返回的结果合计,不超过这一轮开始时剩余上下文的 80%。这部分额度由正在运行的调用分摊;每个结果返回后,其余调用的额度会立即重新计算,subagent 能看到自己当前的额度。单个结果仍保留各自 64 KB 的上限。这部分额度不会影响压缩何时触发、分段如何划分以及压缩何时停止。
剩余上下文不足 3K 时,Dline 会先结束这一轮并说明之后继续,尚未交付的 subagent 结果暂时保留。自动压缩完成后,这些结果会交付到对话中,任务自动继续,不需要你重新发送消息。


恢复到压缩之前
Section titled “恢复到压缩之前”压缩完成后,Summary 卡片旁的检查点显示为 Compaction checkpoint。点击 Restore 只提供 Restore Task Only:对话会回到压缩之前,工作区文件保持不变。从压缩卡片恢复时不能同时编辑消息。
无论是否开启 Auto Compact,都可以在输入框中输入 /compact 或 /smol 立即压缩当前任务,参见使用斜杠命令。
Auto Compact 关闭时,Dline 仍会在上下文接近上限时进行基于规则的裁剪:优化重复的文件读取,并删除较早的对话轮次,始终保留第一轮对话。这种方式不生成摘要,被删除的内容不会以任何形式保留在发送给模型的上下文中。
生成摘要本身是一次模型请求,会产生相应的 token 用量和费用,计入任务的累计用量。具体费用取决于服务商和缓存情况。