跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

上下文、压缩与检查点

查看 token 构成,理解大输出外置、后台压缩和不可恢复的摘要损失。

上下文窗口是模型当前一次回复能参考的信息总量,容量取决于模型。系统指令、工具定义、用户提示、回复,以及工具请求和结果都会占用窗口;磁盘上保存了会话历史,不表示每一条历史都仍在模型当前上下文中。

查看使用情况

输入 /context 查看当前模型、已用 token 和总容量,并按类别分析:System Prompt、Custom Instructions、System Tools、MCP Tools、Messages、Free Space 和 Buffer。Custom Instructions 仅在实际加载时显示;Buffer 是为回复和运行余量保留的容量,不能直接算作可任意填满的空间。

如果会话增长很快,先看 Messages 中的大型工具输出,以及 MCP 工具定义占比,再决定缩小文件读取范围或调整工具配置。

大型工具输出

默认超过 20 KiB 的工具结果写入临时文件,模型获得路径和预览,而不是整个输出。这也适用于 MCP 工具。

可在启动前设置 COPILOT_LARGE_OUTPUT_THRESHOLD_BYTES,值为正数,单位是 UTF-8 字节。提高阈值会让更多工具结果直接进入窗口,也会减少后续对话和工具调用可用空间;不能把它理解成增加模型总上下文容量。

自动与手动压缩

当前上下文专题说明:使用量约到 80% 时开始后台压缩,保留约 20% 供工具继续运行;如果压缩结束前达到约 95%,CLI 暂停等待摘要完成。概览页仍将自动压缩简写为接近 95% 时发生,此处采用专题中的两阶段说明,具体行为以正在使用的版本为准。

输入 /compact 可主动压缩,适合一个阶段结束、准备进入下阶段时使用。手动压缩尚未结束时可按 Esc 取消;已经完成的压缩不能撤销。

压缩会把历史生成结构化摘要,记录目标、已完成工作、关键技术信息、重要文件和下一步,替换旧的活动对话历史,同时保留原始用户指令、计划 / 待办状态,以及后台压缩期间新增的消息。

摘要不是无损记忆

摘要不保证保留每条原话、每次命令完整输出或早期的小决定。需要精确内容时,应重新提供具体文件、约束或结论。不要把“会话可继续”理解成模型永久记住全部历史细节。

如果任务已经改变,或者多次压缩后关键背景不断丢失,可以建立新会话,把必要的结果和限制整理后继续。相关的多阶段实现、调试和探索则适合保留在同一会话。

压缩检查点

每次自动或手动压缩都会保存编号、标题和摘要内容:

/session checkpoints
/session checkpoints 2

第一行列出检查点,第二行查看指定编号。它们用于核对压缩保留了什么,或调查为什么后续工作偏离了早先决定;它们不是完整原始上下文的恢复按钮,也不同于文件回滚。

恢复会话时可以继续查看其检查点,入口见会话管理。