引导长时间会话
提示Claude完成一个快速任务很容易。您提出请求,它完成工作,您检查结果。但长任务是另一回事。跨十几个文件进行重构或构建一个新功能可能需要数小时。而且您在过程中需要引导Claude的次数越多,耗时就越长。
好消息是,在这些长时间会话中,您有很多工具可以帮助Claude。归根结底就是两个习惯:在Claude开始之前先界定工作范围,并在它运行时进行引导。让我们来逐一了解这两点。
先用计划模式界定工作范围
在Claude写下第一行代码之前,先让它制定一个计划。在计划模式下,Claude会进行研究,而不会编辑您的源文件。它会阅读代码,弄清楚需要更改什么,然后给您一份计划供审阅。
当您拿到那份计划时,要真正去阅读它,不要只是略读。计划越详尽,一旦Claude开始执行,您遇到的意外就越少。如果有什么地方不对或遗漏了,只需让Claude按您的要求补充即可。对计划进行迭代要比让Claude直接运行、寄希望于一切顺利、然后再收拾烂摊子快得多。
在Claude工作时进行引导
一旦Claude开始运行,您有几种方法可以让它保持在正确的方向上。第一种是压缩(compaction)。
压缩(Compact)
压缩会总结您的对话,将该摘要用作新的上下文,并删除旧消息。这会释放您的上下文窗口,让Claude可以继续工作。风险在于摘要中可能会遗漏一些重要内容,导致Claude偏离正轨。
所以不要只是单独运行/compact。在命令后面加上指示,告诉Claude该如何总结。例如,如果您之前完成了调试,现在只关心某些API更改,就这样说明:
/compact Focus on the --version flag implementation您在命令后写的任何内容都会决定摘要保留什么。那就是您用来引导上下文的方向盘。
回退(Rewind)
当Claude走上错误的方向时,您不必靠提示把它拉回来。回退功能会带您回到上一个检查点。每一次用户提示都会创建一个您可以恢复到的检查点。要打开菜单,在空提示上双击escape键。
在回退菜单中,您有以下几个选项:
- 恢复代码和对话 - 将两者一起回滚。
- 恢复对话 - 只回滚聊天内容。
- 恢复代码 - 只回滚文件。
- 从此处开始总结 - 总结检查点之后的所有内容。如果您进行了一段题外话的对话,只想释放一些空间,这个选项很有用。
- 总结到此处为止 - 总结检查点之前的所有内容。当您经历了一个想要压缩的长设置阶段,但又想保留实现部分完整时,这个选项很有用。
让Claude更自主地运行
到目前为止的一切都假设您是亲力亲为的,在旁边观察并纠正。如果您想要更自主一些的方式,可以使用目标(goal)和循环(loop)。
目标(Goal)
目标设定了一个完成条件。您描述"完成"是什么样子,Claude会在多个回合中持续工作,直到一个快速评估器确认这些条件已经满足。它不会在第一次认为自己完成时就停下来。
例如:
/goal all tests in src/billing pass, and the type checker reports zero errors要取消它,运行/goal clear。有一个重要的限制:评估器只会读取对话记录(transcript)。所以您的条件必须能够从Claude实际产生的输出中进行检查,比如测试运行的结果。
循环(Loop)
循环会在回合之间按一定间隔运行一个提示,间隔可以是固定的,也可以是自行调节的。可以用它来轮询某个外部事物,比如CI运行或部署,并在状态发生变化时采取行动。
要在自行调节的循环等待下一次运行时停止它,按escape键。固定间隔的循环会一直运行,直到您让Claude取消它,或者七天过去为止。
使用worktree进行并行工作
到目前为止的引导比喻都假设一辆车只有一个方向盘。但当您在同一个代码库上运行多个代理时,您不会希望一辆车里有两个方向盘。那是不安全的。两个Claude会话争抢同一批文件会导致冲突。
这就是worktree发挥作用的地方。每个会话不再互相干扰,而是各自拥有独立的文件树。
因为每个代理都有自己的文件树,它们不会互相覆盖对方的更改。当一个会话退出时,干净的worktree会被自动移除。
有一个值得了解的实用文件。仓库根目录下的.worktreeinclude文件列出了需要复制到每个worktree中的git忽略文件。这对于诸如环境变量文件或本地配置之类的东西很有用——您需要它们出现在每个worktree中,但又不想将其提交到版本控制中。
综合运用
处理长时间的Claude Code会话归结为以下几个习惯:
- 先界定工作范围,再进行引导。
- 引导您的压缩过程,让摘要保留重要内容。
- 当Claude偏离方向时,使用回退菜单进行纠正。
- 当您能比描述步骤更好地描述"完成"状态时,设定一个目标。
- 在worktree中运行并行工作。
做到这些,您就可以信任一次长时间的运行,而不必在每一步都盯着它。