同样的问题,新会话里完美解决,用了两小时的老会话里反复出错。这不是错觉——是上下文管理的核心挑战。
为什么长会话性能下降?
Claude 的上下文窗口装的是一切:每条消息、每个读过的文件、每次命令输出。填满后性能下降,Claude 开始「忘记」早期指令,犯低级错误。
核心工具速查
| 命令/策略 | 何时用 | 效果 |
|---|---|---|
/clear | 任务切换时 | 彻底重置上下文 |
/compact | 上下文 70% 满时 | 压缩保留关键信息 |
/compact 关键词 | 想保留特定信息 | 定向压缩 |
Esc+Esc 或 /rewind | 需要回退 | 恢复检查点 |
| 子 Agent | 大范围代码搜索 | 探索不消耗主上下文 |
claude --continue | 跨会话继续 | 恢复上次对话 |
规则 1:每个任务一个会话
text
# 正确
会话 A:修复 auth 模块 token 刷新 bug
会话 B:实现用户管理分页功能
会话 C:更新 API 文档
# 错误
会话 A:修 bug → 聊架构 → 加新功能 → 又修另一个 bug规则 2:70% 时主动 /compact
不要等到 90-100% 才压缩,那时候已经在影响性能了。
bash
/compact # 基础压缩
/compact Focus on the API changes # 定向压缩在 CLAUDE.md 里指定压缩偏好:
markdown
When compacting, always preserve:
- Full list of modified files
- Test commands that work
- Current task status and next steps规则 3:两次纠错后 /clear 重来
如果同一问题纠正超过两次,停下来直接 /clear。上下文里积累了太多失败方向在干扰 Claude。清除重来 + 更精确的提示,几乎总是更快。
规则 4:子 Agent 做大范围搜索
text
"use a subagent to investigate how our auth system handles token refresh,
and whether we have existing OAuth utilities I should reuse."子 Agent 在独立上下文里工作,只把摘要汇报给主会话。能节省 40% 以上主上下文消耗。
规则 5:/btw 问快问题(不进历史)
bash
/btw 这个 API 的速率限制是多少?答案显示在浮层里,不进对话历史,不消耗上下文。
规则 6:跨会话继续任务
bash
claude --continue # 继续最近一次对话
claude --resume # 选一个历史对话继续用 /rename 给会话起名:/rename oauth-migration,方便之后找回。
检查点和回退
Claude 每次修改前自动创建检查点。操作失误:
bash
Esc+Esc # 或 /rewind
# 选择:只恢复对话 / 只恢复代码 / 全部恢复 / 从此处压缩检查点跨会话保存,关掉终端第二天还能回退。
常见失败模式
「厨房水槽会话」:一个会话塞多个不相关任务。→ /clear 切换任务。
「反复纠错」:同一问题纠正三遍还是错。→ /clear 后写更精准的提示。
「无限探索」:「调查一下」代码库,Claude 读了 100 个文件把上下文塞满。→ 限定范围,或用子 Agent。
来源:Claude Code 官方 Best Practices | morphllm.com | 整理:ClaudeEagle