/btw、/fork 和 /rewind 简明教程
使用Claude Code的/btw、/fork和/rewind命令消除上下文污染
微信 ezpoda免费咨询:AI编程 | AI模型微调| AI私有化部署
AI工具导航 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo
学习如何使用Claude Code的/btw、/fork和/rewind命令消除上下文污染、管理并行会话并优化AI编码工作流。包含示例和决策框架的完整指南。
每个认真使用Claude Code的开发者都撞过同一堵墙。你在看着AI重构一个复杂模块。一个问题突然出现在脑海中,于是你输入了它。Claude停下来,回答,然后试图继续。但现在你的上下文窗口中包含了与任务无关的几百个token的问答。
这就是上下文污染:AI辅助编码生产力的无声杀手。直到现在,还没有干净的方法来避免它。
随着2026年3月10日Claude Code v2.1.72的发布,Anthropic推出了/btw,一个看似简单却从根本上解决这个问题的命令。结合现有的/fork和/rewind命令,它为开发者提供了一个完整的工具包,用于管理AI辅助开发中最容易被忽视的方面:上下文卫生。
本文详细解析所有三个命令,展示何时使用每个命令,并演示它们如何组合成工作流,从第一次提示到最后一次提交保持会话高效。
1、为什么上下文窗口优化对AI编码很重要
把LLM的上下文窗口想象成会议室里的白板。你写在上面的每个笔记、问题和答案都会在会议剩余时间里一直存在。如果白板一半被无关讨论覆盖,团队实际工作的空间就少了,更糟的是,那些无关的笔记不断吸引每个人的注意力,从重要事项上分散注意力。
在Claude Code中,上下文窗口的工作方式相同。每个token都影响模型的下一个输出。当你在主任务上下文中注入不相关的问题和答案时,会发生两件事:
- Token预算缩小。 每次Q&A交换消耗的空间本可以容纳文件内容、代码分析或实现计划。
- 信号降级。 模型在处理信号的同时处理噪音,这可能降低实际任务的输出质量。
在典型的长时间运行会话中,几个随意的问题可以消耗20-30%的可用上下文。这不仅是浪费空间。它积极地降级了Claude在会话剩余时间生成的每个响应。
2、/btw命令:临时侧通道
/btw("by the way"的缩写)在2026年3月10日的Claude Code v2.1.72中发布,解决了上下文污染最常见的来源:随意的中途问题。
工作原理
输入/btw后跟你的问题。Claude Code会生成一个临时的临时代理,它:
- 通过主会话的提示缓存读取当前对话上下文
- 基于Claude已经看到和决定的一切回答你的问题
- 在终端中内联显示答案
- 自我销毁。问题和答案永远不会进入主对话历史
主会话在后台继续。零中断。零上下文污染。
为什么这很重要
/btw背后的关键洞察是大多数中途问题是关于理解,而不是改变方向。你想知道为什么Claude选择了某种方法、某个库做什么、或者某个模式如何工作。这些问题对你作为开发者很重要,但与Claude正在进行的任务无关。在/btw之前,你有两个糟糕的选择:中断会话(污染上下文)或启动单独的会话(丢失所有上下文)。现在你有了第三个选项,既能保留你的理解,又能保持Claude的专注。
实践中
你让Claude将API从Express迁移到Fastify。Claude正在重写路由处理器,你想知道中间件策略。
没有/btw:
你:等等,你如何处理Express中间件?你把它们转换成Fastify插件了吗?
Claude:好问题!我正在使用fastify-plugin包装器将每个Express中间件转换为Fastify插件。这是我的方法...
[400+ token永久添加到上下文]
Claude:现在,我刚才说到哪了...让我继续处理路由处理器。
使用/btw:
/btw 你如何处理Express中间件迁移?
[btw] 主会话正在使用fastify-plugin将Express中间件转换为Fastify插件。每个中间件都用fp()包装并通过fastify.register()注册。错误处理使用Fastify的setErrorHandler。
[主会话继续不受干扰,上下文不变]
相同的信息。零上下文成本。
为什么它便宜
/btw代理利用主会话的提示缓存。你没有重新发送整个上下文或开始新的对话。临时代理搭载在已处理的token上,使每次/btw查询的成本只是正常轮次的一小部分。对于关注API支出的团队来说,这很重要:你可以在每个会话中检查Claude的进度数十次,而不会产生有意义的成本影响。
设计约束
- 仅单轮:一个问题,一个答案。没有后续。
- 只读:不能编辑文件、运行命令或创建工件。
- 无工具访问:不能读取主会话未见过的文件。
这些约束是有意的。它们使/btw快速、便宜和安全。如果你的问题需要不止一个答案,或者你需要Claude实际做某事,使用/fork。
3、/fork命令:用于深度探索的并行会话
有时理解是不够的。你需要Claude读取额外的文件、生成图表、原型化替代方法或运行命令测试理论。/btw不能做任何这些。/fork可以。
工作原理
Forking创建一个继承分支点之前完整对话历史的新会话。原始会话保持不变。
会话内:
/fork
从CLI(在单独终端中打开很有用):
claude -r "session-name" --fork-session
VSCode扩展对fork的支持在v2.1.19中发布,所以你也可以从编辑器的命令面板触发它。
为什么Forking比从头开始好
当你启动新的Claude Code会话时,你会丢失所有上下文。Claude读过的文件、做出的决定和识别的模式都消失了。Fork保留了所有这些。它就像复制一个运行中的进程。Fork从原始会话所在的位置开始,完全了解已发生的一切。这意味着你可以立即提出深入问题或探索替代方案,而无需花费轮次让Claude了解当前状态。
实践中
你正在构建实时通知系统。Claude正在实现WebSocket,但你想知道Server-Sent Events。
# 终端2 - fork会话
claude -r "notifications-feature" --fork-session
# 在fork中:
你:使用SSE而不是WebSocket原型化这个通知系统。比较复杂度。
Claude:[创建SSE文件,分析权衡,生成比较]
同时,原始会话继续WebSocket实现。你现在有两种并行方法可以比较,且任何会话的上下文都没有被另一个污染。
何时/fork胜过/btw
- 问快速问题: 使用
/btw——更便宜、更快、零上下文成本 - 读取Claude未见过的文件: 使用
/fork——/btw没有工具访问 - 生成图表或工件: 使用
/fork——/btw是只读的 - 原型化替代方法: 使用
/fork——需要完整会话能力 - 运行命令测试某事: 使用
/fork——/btw不能执行命令
权衡是直截了当的:/btw更便宜更轻量,/fork更强大。根据你的问题需要选择,而不是习惯。
4、/rewind命令:外科手术式状态恢复
/rewind在2025年9月29日引入,是当Claude走上错误道路时你使用的命令。与/btw(防止污染)和/fork(隔离探索)不同,/rewind主动移除已存在的坏上下文。
工作原理
Claude Code在Claude的每次更改前创建检查点。通过以下方式激活rewind:
- 输入
/rewind - 按Esc两次
然后选择要恢复的内容:
Rewind选项
- 仅代码: 代码被还原,对话保留
- 仅对话: 代码保留,对话回滚
- 两者: 代码被还原且对话被回滚
为什么Rewinding比争论好
当Claude误解你的需求时,自然的本能是解释错误:"不,我不是指X,我是指Y。原因是..."这创建了一个消耗大量上下文的纠正链。错误的方法留在对话中(浪费token),纠正也留下(更多token),Claude必须调和冲突指令(降低质量)。
Rewinding完全消除了这个问题。你回滚到错误发生前,提供更清晰的提示,Claude就像错误从未发生一样继续。上下文窗口只包含正确、相关的信息。
实践中
你通过/btw检查Claude的缓存实现:
/btw 你正在实现什么缓存策略?
[btw] 使用Redis的直写缓存,5分钟TTL,URL作为缓存键。
这对用户特定端点是错误的。不是在内联解释问题,而是rewind:
[Esc + Esc]
> Rewind代码和对话
你:实现缓存层。约束:
- 用户端点:缓存键中包含用户ID,2分钟TTL
- 公共端点:仅URL键,5分钟TTL
- 两者都使用Redis
干净的开始。正确的方法。零上下文浪费。
使用总结进行上下文压缩
对于长时间运行的会话,/rewind summarization将对话压缩为摘要并重新开始:
/rewind summarization
这释放了大部分上下文窗口,同时保留关键决策。可以将其视为归档已完成的工作。结果被保留,但逐步细节不再消耗活动上下文。这对于推动上下文限制的多阶段项目至关重要。
注意
/rewind检查点系统只跟踪Claude的更改。你的手动编辑和bash命令不包括在内。
5、决策框架:使用哪个Claude Code命令
当你在会话中间需要决定使用哪个工具时,使用这个流程图:
快速参考:命令选择指南
- 快速问题: 使用
/btw——成本非常低,无上下文影响 - 需要文件/工具访问: 使用
/fork——中等成本,单独会话 - 探索替代方案: 使用
/fork——中等成本,单独会话 - 错误方向: 使用
/rewind——免费,移除污染 - 膨胀的上下文: 使用
/rewind summarization——免费,压缩历史 - 小错误: 使用Esc + Esc——免费,回滚上次更改
- 非破坏性检查: 使用
/btw——成本非常低,无上下文影响
6、高级Claude Code工作流模式
这些模式结合三个命令,在现实开发场景中实现最大效果。
监控-纠正循环
最常见的高级模式结合了/btw用于监控和/rewind用于纠正。
- 开始复杂任务
- 定期使用
/btw检查Claude的方法 - 如果方法错误,
/rewind到错误发生前 - 用纠正后的指令重新提示
- 恢复
/btw监控
这个循环保持你的上下文窗口外科手术般干净。你从不与Claude争论,从不在内联解释错误,从不在上下文中累积失败的方法。结果是一个只包含任务描述和正确实现工作的上下文窗口。
探索分支
对于你想在提交前看到实际代码的架构决策:
- 在主会话中到达决策点
- Fork:
claude -r "main-task" --fork-session - 在fork中探索选项A
- 如果需要,再次fork原始会话用于选项B
- 跨fork比较结果
- 用获胜方法继续主会话
这个模式在项目早期特别有价值,当你做出以后会很昂贵才能逆转的决策时。两三个forked会话的成本与重构糟糕架构选择的成本相比微不足道。
上下文压缩管道
对于跨越多个项目阶段的多小时会话:
- 完成项目的第1阶段
- 使用
/rewind summarisation压缩第1阶段 - 保留第1阶段决策,以干净上下文开始第2阶段
- 对每个后续阶段重复
这在原本会超过上下文窗口的工作中保持会话连续性,在整个过程中保持高信噪比。
用于自动化的脚本化Fork
将forking集成到开发脚本中以实现并行工作流:
#!/bin/bash
# 主会话继续时进行并行代码审查
claude -r "$SESSION_ID" --fork-session \
-p "审查到目前为止的更改。检查安全问题、性能问题和缺失的错误处理。将审查写入review.md"
这创建了一个一次性的审查会话,检查主会话的工作而不影响它。
7、成本比较:上下文污染 vs 干净工作流
会话中的直接问题:
- 上下文成本:高(永久性)
- 美元成本:高(更长的上下文)
- 质量影响:负面(噪音)
/btw侧通道:
- 上下文成本:零
- 美元成本:非常低(缓存)
- 质量影响:中性
/fork并行会话:
- 上下文成本:零(单独)
- 美元成本:中等(新会话)
- 质量影响:中性
/rewind纠错后:
- 上下文成本:负(释放空间)
- 美元成本:免费
- 质量影响:正面(移除噪音)
最昂贵的模式是大多数开发者默认的:在主会话中问问题,消耗上下文,然后在每个后续轮次为膨胀的上下文付费。讽刺的是,"免费"的问题实际上在会话生命周期内成本最高。
8、结束语
Claude Code的/btw、/fork和/rewind形成了一个完整的上下文卫生工具包,每个解决不同方面的问题:
/btw在污染发生前预防它。用于每个不需要工具访问的中途问题。/fork隔离探索。当你需要全功能调查而不污染主会话时使用。/rewind在污染发生后移除它。用于航向纠正和上下文压缩。
从Claude Code中获得最大收益的开发者不是写最好提示的人。他们是像管理稀缺资源一样管理上下文窗口的人。上下文窗口中的每个token要么是信号要么是噪音,这三个命令给了你最大化信号的工具。
对每个不需要工具访问的问题使用/btw。需要探索时fork。事情出错时rewind。你的上下文窗口会感谢你。
原文链接: Mastering Claude Code's /btw, /fork, and /rewind: The Context Hygiene Toolkit
汇智网翻译整理,转载请标明出处