☰
Deep Code CLI上下文窗口完全指南:contextWindow与长会话自动压缩原理
2026/10/8 6:47:54 网站建设 项目流程

Deep Code CLI上下文窗口完全指南:contextWindow与长会话自动压缩原理

【免费下载链接】deepcode-cliDeep Code 是专为 deepseek-v4 模型优化的终端 AI 编码助手,支持深度思考、推理强度控制以及 Agent Skills。项目地址: https://gitcode.com/gh_mirrors/de/deepcode-cli

Deep Code CLI是专为 deepseek-v4 模型优化的终端 AI 编码助手。当你和它长时间连续对话时,上下文窗口(contextWindow)和自动压缩(auto-compact)机制决定了 AI 能否"记住"并延续之前的工作。本文将用通俗的方式讲清这两个机制的原理与配置方法,让你的长会话永不失忆。🧠

上下文窗口是什么?为什么长会话需要它

LLM 每次处理请求时,都会把系统提示词、工具定义和历史对话一起"装"进一个有限的容器——这就是上下文窗口,单位是 token。

  • 窗口太小:长对话会频繁触顶,AI 表现不稳定;
  • 窗口太大:不划算,也可能超出模型实际能力。

Deep Code CLI 针对不同的默认窗口做了智能适配(见 settings.ts):

场景默认contextWindow
deepseek-v4 系列模型1M(1024 × 1024 tokens)
其他模型256K

一键配置:contextWindow 与 autoCompactWindow 快速上手

这两个字段都位于settings.json的顶层(配置说明详见 docs/configuration.md):

字段作用默认值
contextWindow上下文窗口上限,支持精确 token 数或128K、1M格式按模型自动取值
autoCompactWindow自动压缩触发阈值上下文窗口的50%

配置示例(K按 1024、M按 1024² 换算):

{ "contextWindow": "1M", "autoCompactWindow": "512K" }

解析优先级为:环境变量CONTEXT_WINDOW→ 项目 settings → 用户 settings → 模型默认值;autoCompactWindow同理(环境变量为AUTO_COMPACT_WINDOW),且最终值不会超过contextWindow(见 settings.ts 解析逻辑)。

自动压缩原理:5 步让长会话"瘦身"

当会话中实际占用的 token 数(activeTokens,来自模型响应的 usage 统计)超过autoCompactWindow阈值时,Deep Code CLI 会在下一次模型调用前自动触发压缩,界面上你会看到一句The conversation is getting long, compacting...(触发点在 session.ts)。

压缩的完整流程如下:

  1. 筛选消息:取会话中所有"未压缩过"的消息,跳过开头的 system 消息;
  2. 保留近段:从 2/3 处开始寻找边界,最近约 1/3 的对话保持原文不动,只有更早的 2/3 参与压缩(见 compactSession 实现);
  3. 生成摘要:把早期对话以 JSONL 格式交给模型,用专门的压缩提示词(getCompactPrompt)让它输出一份关注"用户明确需求 + 此前执行动作"的详细摘要;
  4. 标记压缩:早期消息打上compacted标记(技能目录类消息会被跳过保留),并从后续请求中移除;
  5. 插入摘要:在消息序列中插入一条隐藏的系统摘要,内容形如"There are earlier parts of the conversation. Here is a summary: …",模型之后读取的就是这份摘要。

整个压缩会累计到会话用量统计中,activeTokens也会随压缩结果刷新。

压缩之后,会话还能继续吗?

可以,而且几乎无感:

  • 最近 1/3 的对话是原文,模型对近期上下文的记忆完整;
  • 早期历史由摘要承载,关键需求、决策、已执行操作都被提炼保留;
  • 会话文件本身未被删除,配合/resume命令恢复会话时,压缩状态一并持久化,跨终端重启也有效。

实用建议:如何调整压缩阈值

  • 默认值(50%)通常就够了——既留足回答空间,又能尽早瘦身;
  • 长文档、多轮重构任务:可适当调低,如"autoCompactWindow": "384K",让压缩更频繁、每次代价更小;
  • 短平快的问答:可不调,交给默认策略;
  • 调高contextWindow前,建议确认所用模型的实际窗口能力,避免超出模型上限。

想深入了解会话持久化与恢复,可以继续看 docs/session-persistence.md 与 docs/configuration.md,源码实现集中在 packages/core/src/session.ts 与 packages/core/src/settings.ts。

【免费下载链接】deepcode-cliDeep Code 是专为 deepseek-v4 模型优化的终端 AI 编码助手,支持深度思考、推理强度控制以及 Agent Skills。项目地址: https://gitcode.com/gh_mirrors/de/deepcode-cli

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询