上下文压缩
长任务接近模型上下文上限时,Mogick 会把较早的对话整理成摘要,并保留近期原文继续工作。完整会话历史仍保存在本地;压缩改变的是后续发送给模型的输入视图。
什么时候用
自动压缩始终开启,并在运行准备阶段发现上下文超过模型窗口约 70% 时触发。你也可以在以下情况手动执行:
- 侧栏 Session window 接近上限。
- 对话很长,准备开始一个新的任务阶段。
- 模型开始反复引用过时细节,希望重新收敛上下文。
text
/compact手动压缩必须是当前消息的唯一内容,并且只能在会话空闲时执行。模型生成、工具调用或另一次压缩进行中时不会启动。
你会看到什么
压缩期间需要等待一次摘要生成。成功后:
- TUI 侧栏在摘要生成完成后刷新 Session window。
- ACP 宿主收到新的
usage_update。 - 下一次请求使用“压缩摘要 + 最近原文”。
- 原始会话历史没有被删除。
压缩失败会明确结束当前操作,不会静默截断历史。
工作原理
每次模型请求前,Mogick 依次组装:
| 层次 | 内容 |
|---|---|
| 系统与运行信息 | 系统提示、工具、权限、计划、记忆、MCP 和项目指令 |
| 压缩摘要 | 已被覆盖的较早历史及继续任务所需的 handoff |
| 最近原文 | 摘要之后保留的用户、助手和工具消息 |
| 当前输入 | 本轮用户消息与附件 |
再次接近窗口上限时,Mogick 会基于已有摘要和新增历史继续压缩,而不是每次重新处理全部原始对话。这使长会话能够跨多次压缩继续运行。
摘要优先保留任务目标、已作决策、文件变化、未完成事项、重要约束和关键错误;重复回显与已经完成的中间细节可能被省略。因此,对精确原文有要求时应查看会话历史或重新引用文件,不要只依赖压缩摘要。
与其他能力的区别
| 能力 | 影响范围 | 是否删除原始历史 |
|---|---|---|
| 上下文压缩 | 后续模型输入 | 否 |
Checkpoint / /rewind | 工作区和/或会话历史状态 | 可能回退 |
| L3 记忆 | 跨会话检索与沉淀 | 否 |
/new | 新建独立会话 | 否 |
输入边界
单轮用户输入文本和附件字符串上限为 1 MiB。这个限制与上下文压缩不同:超大的单条输入应拆分任务、缩小引用范围或让 Agent 按需读取文件,不能依靠 /compact 绕过。
如果模型没有提供上下文窗口上限,侧栏仍会显示已使用 token,但可能无法计算百分比。