智能上下文压缩
Carry Code 的智能上下文压缩功能可以自动管理对话长度,让你在长时间对话中也能保持高效。
为什么需要压缩?
Section titled “为什么需要压缩?”AI 对话有一个重要的限制:Token 数量。每个 AI 模型都有一个最大 token 限制(如 128K、200K 等)。
当对话变长时:
- 超过限制会导致对话无法继续
- 发送长上下文会增加 API 成本
- 影响 AI 响应速度
Carry Code 的智能压缩功能可以解决这些问题。
Carry Code 会自动检测对话长度,当接近 token 限制时:
- 分析对话 — 识别关键信息和次要信息
- 压缩次要内容 — 简化早期的详细对话
- 保留关键信息 — 重要的代码、决策、结果
- 保持连贯性 — 让 AI 仍然理解上下文
| 内容类型 | 处理方式 |
|---|---|
| 关键代码 | 完整保留 |
| 重要决策 | 完整保留 |
| 错误信息 | 精简保留 |
| 闲聊内容 | 大幅简化 |
| 历史细节 | 选择性压缩 |
手动触发压缩
Section titled “手动触发压缩”/compact手动触发上下文压缩。
- 对话变得很长时
- 想要清理不必要的历史
- 想要节省 API 调用成本
压缩后:
- Token 数量显著减少
- 关键信息仍然保留
- 对话可以继续
配置压缩行为
Section titled “配置压缩行为”在 ~/.carry/carrycode.json 中配置:
{ "compaction": { "enabled": true, "threshold": 80000, "preserveKeyInfo": true }}| 参数 | 说明 | 默认值 |
|---|---|---|
enabled | 是否启用自动压缩 | true |
threshold | 触发压缩的 token 阈值 | 80000 |
preserveKeyInfo | 是否保留关键信息 | true |
压缩对对话的影响
Section titled “压缩对对话的影响”- 信息精简 — 早期的详细对话会被精简
- 要点保留 — 重要的代码和决策会保留
- 继续对话 — 你可以继续之前的任务
不会发生什么
Section titled “不会发生什么”- ❌ 不会丢失当前任务的关键信息
- ❌ 不会删除重要的代码
- ❌ 不会影响当前对话的上下文
1. 定期压缩
Section titled “1. 定期压缩”当对话超过一定长度时,主动使用 /compact:
- 保持对话高效
- 节省成本
- 避免达到 token 上限
2. 适时创建新会话
Section titled “2. 适时创建新会话”对于完全不同的任务,创建新会话更好:
- 避免上下文混淆
- 保持每个任务清晰
3. 利用 Plan 模式
Section titled “3. 利用 Plan 模式”不需要写代码时,使用 Plan 模式:
- 不会产生新的代码内容
- 上下文更简洁
与会话管理配合
Section titled “与会话管理配合”| 操作 | 效果 |
|---|---|
/session new | 全新空白上下文 |
/compact | 压缩当前上下文 |
/session switch | 切换到其他上下文 |
Q:压缩会丢失重要信息吗?
Section titled “Q:压缩会丢失重要信息吗?”不会。压缩算法会优先保留:
- 关键代码片段
- 重要决策
- 当前任务相关的信息
Q:压缩后还能继续之前的工作吗?
Section titled “Q:压缩后还能继续之前的工作吗?”可以。AI 会理解压缩后的上下文,你可以继续之前的任务。
Q:如何禁用自动压缩?
Section titled “Q:如何禁用自动压缩?”在配置文件中设置 "enabled": false,但建议保持启用以避免达到 token 上限。