Skip to content
FunCoding

Search

Search docs, Skills and MCP

上下文、压缩与检查点

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

This page has not been translated into English yet. The original Chinese version is shown below.

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

查看使用情况

输入 /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

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

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