一、通过多 Claude 工作流程提升水平
除了独立使用之外,一些最强大的应用涉及并行运行多个 Claude 实例:
a. 让一个 Claude 编写代码;使用另一个 Claude 进行验证
一个简单但有效的方法是让一个 Claude 编写代码,而另一个审查或测试它。类似于与多个工程师合作,有时拥有独立的上下文是有益的:
- 使用 Claude 编写代码;
- 运行/clear或在另一个终端中启动第二个 Claude;
- 让第二个 Claude 审查第一个 Claude 的工作;
- 启动另一个 Claude(或再次/clear)来阅读代码和审查反馈;
- 让这个 Claude 根据反馈编辑代码;
您可以对测试做类似的事情:让一个 Claude 编写测试,然后让另一个 Claude 编写代码使测试通过。您甚至可以让您的 Claude 实例相互通信,通过给它们各自独立的工作草稿本,并告诉它们要写入哪一个和要读取哪一个。
这种分离通常比让单个 Claude 处理所有事情产生更好的结果。
b. 拥有多个代码仓库 checkout
与其等待 Claude 完成每个步骤,Anthropic 的许多工程师采用的做法是:
- 创建 3-4 个 git checkout在不同的文件夹中;
- 在单独的终端标签页中打开每个文件夹;
- 在每个文件夹中启动 Claude执行不同的任务;
- 循环检查进度并批准/拒绝权限请求;
c. 使用 git worktrees
这种方法在处理多个独立任务时表现出色,提供了比多个 checkout 更轻量级的替代方案。Git worktrees 允许您将同一仓库的多个分支 checkout 到单独的目录中。每个 worktree 都有自己的工作目录和隔离的文件,同时共享相同的 Git 历史记录和 reflog。
使用 git worktrees 使您能够在项目的不同部分同时运行多个 Claude 会话,每个都专注于自己独立的任务。例如,您可能让一个 Claude 重构您的身份验证系统,而另一个构建完全无关的数据可视化组件。由于任务不重叠,每个 Claude 都可以全速工作,无需等待其他 Claude 的更改或处理合并冲突:
- 创建 worktrees :
git worktree add ../project-feature-a feature-a; - 在每个 worktree 中启动 Claude :
cd ../project-feature-a && claude; - 根据需要创建其他 worktrees(在新的终端标签页中重复步骤 1-2);
一些提示:
- 使用一致的命名约定;
- 为每个 worktree 维护一个终端标签页;;
- 如果您在 Mac 上使用 iTerm2,设置通知以便在 Claude 需要注意时收到提醒;
- 为不同的 worktrees 使用单独的 IDE 窗口
- 完成后清理:
git worktree remove ../project-feature-a;
d. 使用 headless mode 与自定义 harness
claude -p(headless mode)将 Claude Code 以编程方式集成到更大的工作流程中,同时利用其内置工具和 system prompt。使用 headless mode 有两种主要模式:
- 扇出模式处理大型迁移或分析(例如,分析数百个日志的情感或分析数千个 CSV):
- 让 Claude 编写脚本生成任务列表。例如,生成需要从框架 A 迁移到框架 B 的 2k 个文件列表。
- 循环遍历任务,为每个任务以编程方式调用 Claude,给它一个任务和一组可以使用的工具。例如:
claude -p "将foo.py从React迁移到Vue。完成后,如果成功您必须返回字符串OK,如果任务失败则返回FAIL。" --allowedTools Edit Bash(git commit:*); - 多次运行脚本并优化您的 prompt 以获得期望的结果。
- 流水线模式将 Claude 集成到现有的数据/处理流水线中:
- 调用
claude -p "<您的prompt>" --json | your_command,其中your_command是处理流水线的下一步; - 就是这样!JSON 输出(可选)可以帮助为更容易的自动化处理提供结构。
对于这两种用例,使用--verbose标志来调试 Claude 调用可能会有帮助。我们通常建议在生产环境中关闭 verbose 模式以获得更清洁的输出。
您使用 Claude Code 的技巧和最佳实践是什么?请标记@AnthropicAI,让我们看看您在构建什么!
二、使用 git worktrees实操
通过claude code创建git worktree。一个用来检测bug,一个用来开发需求。
2.1 检测bug
提示词:
基于wuziqi-demo项目,复制一个新的项目wuziqi-demo_bugfix,基于wuziqi-demo_bugfix项目工作树bugfix,然后切换到bugfix,创 建bigfix.md文件,内容为项目的一些问题,然后推送到github。
测试效果:

成功:

效果:

这是把wuziqi-demo-bugfix作为一个新项目提交了,和我的预期不符。不过不重要。【2.2】演示的例子和我的预期是相符的。
2.2 开发需求
再新建一个命令窗口,做需求用:
提示词:
基于wuziqi-demo项目,复制一个新的项目wuziqi-demo_feature基于wuziqi-demo_feature项目工作树feature,然后切换到feature工作树,创建feature.md文件,内容为项目的一些新需求,,然后推送到github。
测试:

成功:

但这次和上次不一样,这次上作为wuziqi-demo项目的一个分支,而不是单独创建了一个项目。不用管这些细节了。。。
效果:
