OpenClaw /compact指令详解:上下文爆满时的正确续命方式
核心问题:你跑了一个长任务——让 OpenClaw 整理几十封邮件、分析大型代码库、或者处理多轮复杂对话——突然助理停止响应,提示"上下文窗口已满"。很多用户第一反应是重启会话,结果前面的上下文全丢了。正确答案是:发送 /compact 指令。本文详解 /compact 三种使用方式、什么时候该用、怎么配置自动触发阈值,以及压缩之后如何确认信息没有损失。
为什么OpenClaw会"上下文爆满"
OpenClaw 的 AI 助理(无论是 Claude 还是 GPT)都有一个有限的"上下文窗口"——也就是它在单次对话中能同时看到的文字量。Claude Sonnet 的上下文窗口约为 20 万个 Token,Claude Opus 为 20 万,GPT-4o 为 12.8 万。听起来很大,但实际使用中会比你想象的更快填满。
但 OpenClaw 的每次对话不只包含你发送的消息。SOUL.md 个性文件(约1000-3000 Token)、Skills 技能描述、系统提示词、助理历史回复、工具调用记录——这些都会占用上下文。当你在处理大型任务时,可能几十轮对话之后上下文就满了。
最容易填满上下文的操作类型
- • 代码分析任务:让 OpenClaw 读取并分析大型代码库,每个文件内容都会进入上下文
- • 批量邮件处理:同时整理几十封邮件时,邮件内容全部堆叠在上下文中
- • 长时间研究任务:多轮网页搜索和总结,每次搜索结果都追加到上下文
- • 多Agent协作:多个子Agent的回报内容全部汇入主对话
- • 调试循环:让AI反复修改代码,每次错误输出和修复都累积在上下文中
/compact 指令基础用法
OpenClaw 内置 /compact 指令,专门用于在不丢失核心信息的前提下压缩上下文。它的原理是:让 AI 对当前对话历史做一次"摘要压缩",把冗长的原始内容替换为简洁的摘要,从而释放大量 Token 空间,让对话可以继续进行。
# 方法一:直接发送 /compact(最简单)
# 在聊天界面(Telegram/Discord/WhatsApp)直接发送:
/compact
# OpenClaw 会自动:
# 1. 读取当前完整上下文
# 2. 生成摘要(保留关键决策、结果、待办事项)
# 3. 用摘要替换原始历史
# 4. 报告压缩前后的 Token 数量
压缩之后会看到什么
执行 /compact 成功后,助理会回复类似信息:
✅ Context compacted
Before: 187,432 tokens → After: 12,847 tokens
Compression ratio: 93.1%
Summary preserved: key decisions, pending tasks, file paths
压缩率通常在 85%-95% 之间,核心信息(决策结果、文件路径、待办任务)会优先保留。
/compact 的三种高级用法
除了最基本的 /compact,还有两种带参数的高级用法,适合不同场景:
1 带自定义提示的压缩:/compact [重点保留内容]
/compact 保留所有文件路径和已完成的代码修改记录
在 /compact 后面加上你希望 AI 重点保留的内容描述。当任务涉及大量文件操作时,确保路径信息不被摘要遗漏。
2 压缩并继续任务:/compact then [继续指令]
/compact then 继续处理剩余的邮件
压缩完成后立即继续执行指定任务,不需要手动再发一条指令,适合自动化任务中插入压缩步骤。
3 配置自动压缩阈值(openclaw.json)
# 在 openclaw.json 中添加:
{
"compactThreshold": 0.85,
"autoCompact": true,
"compactPrompt": "保留所有任务进度、文件路径和关键决策"
}
compactThreshold: 0.85 表示当上下文使用率达到 85% 时自动触发压缩。这是最推荐的配置,适合运行长时间任务时使用。
/compact 常见疑问解答
❓ 压缩之后会丢失重要信息吗?
OpenClaw 的压缩算法优先保留:决策结果、文件路径、待办事项、已完成的修改内容。丢失的通常是:冗长的推理过程、AI自我纠错的中间步骤、重复讨论的内容。如果有高度重要的信息,在 /compact 后加上"保留[具体内容描述]"可以提高保留优先级。
❓ 为什么 /compact 之后 AI 好像"忘记"了某些事?
压缩摘要是 AI 自己写的,具有一定的主观判断,偶尔会遗漏细节。解决方法:①在 openclaw.json 的 compactPrompt 中明确列出需要保留的类别;②压缩后马上用"告诉我你记得哪些当前任务信息"来验证;③对特别关键的信息,在压缩前手动发一条"记住:[关键信息]"到对话中。
❓ /compact 和直接开新会话有什么区别?
/compact 压缩当前会话,保留核心上下文,AI 可以继续在原任务基础上工作。开新会话则会完全清空历史,AI 从零开始,之前已完成的分析、收集的信息全部丢失。对于进行中的长任务,/compact 是不可替代的选择。
❓ /compact 本身需要消耗多少 Token?
压缩操作本身会消耗一次 API 调用(大约 1000-5000 Token 的输出),但压缩换来的空间远大于这个成本。一次典型的压缩可以将 18 万 Token 的上下文压缩到 1.2 万 Token,释放约 16 万 Token 的空间,相当于数十次后续对话的容量。
长任务中的 /compact 最佳实践
在处理超长任务时,合理安排 /compact 的时机可以大幅提升任务成功率:
📋 长任务 /compact 使用时机清单
- • 任务进行到一半,估计还有一半工作量
- • 读取了大量文件内容之后
- • 完成了一个重要子任务,准备开始下一个
- • AI 开始出现重复或混乱的回复时
- • 任务刚开始,上下文还不多
- • 当前 AI 正在执行关键操作中途
- • 需要 AI 回溯查看具体的历史对话内容
- • 上下文使用率低于 60% 时
{
"autoCompact": true,
"compactThreshold": 0.80,
"compactPrompt": "保留:1.所有已完成的操作结果;2.文件路径和修改内容;3.当前待办任务列表;4.重要的错误信息和解决方案;5.用户的核心需求和约束条件",
"compactOnSchedule": false
}
用 /status 实时监控上下文用量
想知道当前上下文用了多少?发送 /status 可以查看实时状态:
# 发送 /status 后的示例输出:
🦞 OpenClaw Status
Model: claude-sonnet-4-5
Context: 142,847 / 200,000 tokens (71.4%)
Sessions: 1 active
Memory: 847 entries
Skills: 12 loaded
Uptime: 3h 24m
# 当 Context 超过 80% 时,建议立即执行 /compact
专业技巧:设置定时检查
对于跑夜间任务的用户,可以让 OpenClaw 每隔一小时自动检查上下文用量并在必要时压缩:
每60分钟检查一次上下文用量,如果超过75%就执行/compact并继续当前任务
将这条指令作为任务开始时的系统提示,OpenClaw 会在 cron 调度中自动执行。
/compact vs 其他解决方案对比
| 方案 | 信息保留 | 操作成本 | 适用场景 |
|---|---|---|---|
| /compact 压缩 | ⭐⭐⭐⭐ 高 | 一条指令 | 进行中的长任务 |
| 开新会话 | ⭐ 全部丢失 | 低 | 全新任务开始 |
| 切换更大模型 | ⭐⭐⭐ 中 | 费用更高 | 临时扩容 |
| 拆分任务 | ⭐⭐⭐ 中 | 需重新规划 | 任务设计阶段 |
合理使用 /compact 每月能省多少API费用
每次 API 请求,Claude 不仅处理你发送的新消息,还要"读取"整个历史上下文。上下文越长,每次请求的 Token 消耗越高。通过 /compact 保持上下文简洁,能显著降低 API 费用:
❌ 不使用 /compact
平均上下文:150,000 tokens
每次请求输入消耗:~150K tokens
100次请求:~1500万 tokens
约花费:$75-120/月
✅ 定期使用 /compact
平均上下文:15,000 tokens
每次请求输入消耗:~15K tokens
100次请求:~150万 tokens
约花费:$7-12/月(省90%)
更多实战问题汇总
/compact 即可。CLI 模式下压缩效果与聊天界面完全相同,压缩结果会显示在终端输出中。/sessions list 找到对应的 session 文件进行查阅,但该 session 的活跃上下文已经是压缩后的版本。不同工作场景下的 /compact 配置建议
场景一:代码开发辅助
在处理大型代码库时,/compact 需要保留关键的技术决策和文件路径,而不是代码本身的详细内容。
compactPrompt: "保留:1.所有修改过的文件路径;2.改动的功能描述;
3.遇到的错误和解决方案;4.当前任务的完成状态;
5.下一步需要处理的问题。忽略:详细的代码片段和测试输出"
场景二:批量邮件处理
处理大量邮件时,需要保留已处理/待处理的状态跟踪,而不是每封邮件的完整内容。
compactPrompt: "保留:1.已处理邮件数量;2.待处理邮件列表(发件人+主题);
3.已标记为重要的邮件;4.已取消订阅的来源。忽略:邮件正文内容"
场景三:数据分析研究
进行深度研究时,需要保留关键发现和数据来源,而不是完整的搜索结果。
compactPrompt: "保留:1.已搜索的关键词和来源URL;2.每个来源的核心观点摘要;
3.已验证和已排除的假设;4.结论和数据引用。忽略:完整的搜索结果页"
/compact 与 /think 结合:双管齐下节省 Token
当你同时使用 /compact 压缩上下文和 /think off 降低推理深度时,Token 节省效果可以叠加,特别适合执行重复性的自动化任务:
# 第一步:压缩现有上下文
/compact 保留任务进度和待处理列表
# 第二步:降低思考深度(对于明确的重复任务)
/think off
# 第三步:开始执行批量任务
继续处理邮件列表中的下一批100封
# 批量任务完成后,恢复正常思考深度
/think medium
# 效果:单次对话可处理的任务量提升约3-5倍
用户实战案例:@nateliason 的最佳实践
他在 X.com 分享:每周用 OpenClaw 处理积累的数百封邮件和 GitHub PR 的评审工作。他设置了每处理50个任务项自动 /compact 一次,并在 SOUL.md 中设置了专属的压缩策略,让 AI 只保留"已完成"和"待确认"两类状态。这样一个周末的工作量,以前需要6-8小时,现在 OpenClaw 只需要2小时就能完成,而且从不因为上下文满了而中断。
/compact 执行慢?网络是关键
/compact 操作本质上是一次 Claude API 调用,需要将大量 Token 发送到 Anthropic 服务器并接收摘要结果。如果网络不稳定,压缩请求可能超时失败,让你白等一分钟之后看到一个错误提示。特别是在上下文已经接近满的情况下,这个请求传输的数据量很大。
💡 VPN07 用户的实测表现
对于一个 18 万 Token 的上下文压缩请求,不同网络条件下的完成时间:
OpenClaw用户测评:选对VPN让AI助理如虎添翼
OpenClaw 重度用户对5款主流VPN进行了为期一个月的实测,评估标准包括:Claude API 调用延迟、任务完成率、连接稳定性和性价比。
VPN07
9.8/10运营十年的专业网络服务,70+国家节点,30天退款保障。OpenClaw 长任务场景表现最优,无论是 /compact 压缩大请求还是多Agent并行都稳定不掉线。
2. ExpressVPN
7.2/10延迟约180ms,价格偏高(约$12/月),OpenClaw 长时间任务偶尔出现连接中断,对自动化任务场景不够稳定。
3. NordVPN
7.0/10延迟约200ms,节点数量多但质量参差不齐,OpenClaw 场景下建议手动选择延迟最低的节点。
核心要点总结
如果你只记住这篇文章的一件事:
- ✅ 遇到问题时,先查日志(openclaw logs)确认根本原因,再决定解决方案
- ✅ 任何破坏性操作(删除、清空、覆盖)之前,必须先备份
- ✅ 网络质量直接影响 OpenClaw 的响应速度和任务成功率,这也是 VPN07 千兆网络的价值所在
- ✅ OpenClaw 是一个持续进化的工具,每周都有更新,遇到奇怪问题先检查版本是否最新(openclaw update)