[控场AI]
· 5 分钟阅读· 2,804 字

AI Agent 并行工作实战:分支对话与 Git Worktree 全解析

AI Agent 并行工作实战:分支对话与 Git Worktree 全解析

通过TMUX分支、侧边聊天和Git Worktree三种机制让多个AI Agent真正并行工作,将等待时间转化为生产力。

本文介绍了在AI编程助手场景下实现多Agent并行工作的三种核心机制。第一种是TMUX分支,通过PiHarness扩展从当前会话分叉出新会话,完整继承原上下文,适合在等待期间继续处理额外任务。第二种是侧边聊天(Side Chat),在Codex、Claude Code等工具中内置,但本质上只是开启新对话窗口,存在无法创建子代理等限制,适合轻量级并行问询。第三种是Git Worktree,利用Git原生能力将同一代码库挂载到多个独立工作目录,实现代码级隔离,最适合前后端并行开发或多方案对比等需要同时修改同一代码库的场景。三种方式对应不同的隔离层级,需根据任务复杂度和协作需求灵活选用。

在使用 AI 编程助手时,一个常见的痛点是:当你把一个任务交给代理执行后,往往需要干等它跑完,才能继续下一步操作。这段等待时间被白白浪费。而通过「侧边聊天(Side Chat)」、「分支对话(Branch)」以及「Git Worktree(工作树)」等机制,你可以让多个 AI Agent 真正并行工作,大幅提升开发效率。

本文基于一位 B 站 UP 主的实战演示,梳理这套并行工作流的核心思路,以及在 Codex、Claude Code 等主流代理工具中的具体操作方法。

为什么要让 Agent 并行工作

核心逻辑很简单:AI 代理执行任务需要时间,尤其是涉及代码重构、测试、搜索等耗时操作。与其盯着进度条干等,不如在等待期间开启另一条工作线,让第二个代理处理其他任务。

演示中的例子很直观——在左侧对话里让代理「临时移除某个功能模块」,同时在右侧新开的对话中执行「更新审查技能、移除指定内容」。两个任务互不干扰、同时推进,这就是并行工作带来的时间价值。

你如何用智能体并行工作

不过需要厘清一个关键区别:并不是所有「分支」都是一回事。演示中提到了三种不同的机制,它们的作用层级和适用场景各不相同,混淆它们会导致操作失败或冲突。

方式一:TMUX 分支——分叉整个会话

第一种方式借助 PiHarness 提供的 TMUX 分支扩展。它的本质是从当前会话(绘画/pane)分叉出一个新的会话,新会话完整继承了前一个会话的上下文。

操作上执行 tmux branch 后,就会从最初的会话分出一个右侧会话。这个右侧会话包含了与原会话相同的上下文,是前一个会话的分叉。你可以在新分支上继续操作,就像在原会话里一样,同时在等待期间处理更多任务。

比如更新热核审查技能

UP 主特别推荐 PiHarness 这类工具,原因在于它提供了便捷的快捷键,让会话拆分变得非常轻松,并且可以灵活扩展功能。对于习惯 TMUX 工作流的开发者来说,这是一种低成本的并行方案。

TMUX(Terminal Multiplexer)是一款终端复用工具,允许在单个终端窗口中创建、管理多个独立的会话(session)和窗格(pane)。即使断开 SSH 连接,TMUX 中的进程也会持续运行,重连后可恢复现场。PiHarness 在 TMUX 基础上提供的「分支(branch)」扩展,进一步实现了会话级的上下文快照与分叉——类似于 Git 对代码的分支管理,但作用对象是终端会话状态和 AI 对话历史。这对于需要在同一上下文基础上探索不同操作路径的场景尤为有用,可以在不丢失原有进度的情况下,开辟新的执行路径同步推进。

方式二:侧边聊天与分支对话——注意限制

在 Codex、Claude Code 这类编码代理应用中,内置了类似但不完全相同的功能。通过点击「三个点」菜单,选择「新建侧边聊天(New Side Chat)」,就能打开一个并列的对话视图。

这里有一个容易被忽视的关键点:侧边聊天和前面说的会话分支(pane 分支)不是一回事。侧边聊天不会创建新的会话,它只是在当前环境里开一个新的聊天窗口。

这里的侧边聊天和绘画分支

据 UP 主的使用经验,在 Codex 的侧边聊天中可能存在一些限制——比如不允许创建子代理(sub-agent),还有其他约束条件。换句话说,侧边聊天更适合轻量级的并行问询,而不是复杂的、需要独立代理协作的任务。这一点他本人也坦言「可能说错」,建议读者以实际工具版本为准。

方式三:Git Worktree——真正的代码级隔离

当你需要对同一份代码库做两处并行修改时,前两种方式就不够用了,因为它们共享同一个工作区,容易产生冲突。这时「在新工作树中分支(Branch in new worktree)」才是最优解。

点击「在新聊天中分支」按钮后,工具会询问你:是在同一工作区分叉,还是在新的工作树中分叉。

什么是 Git Worktree

工作树(Worktree)是 Git 的原生能力。它的本质是把你的代码库克隆一份副本到一个新分支。这样一来,你就拥有了同一代码库的多个独立工作目录,每个目录对应不同的分支。

会创建你代码库的副本

这种隔离带来的好处非常实际:

  • 前端与后端并行开发:一个代理在工作树 A 中改前端 UI,另一个代理在工作树 B 中测试后端优化方案,彼此的改动完全隔离。
  • 多方案对比:当你想测试多种不同实现思路、看哪种优化效果最好时,可以在不同工作树中并行尝试,互不污染。
  • 避免代理冲突:多个代理同时操作代码时,不会在同一份文件上发生改动冲突。

更准确地说,Git Worktree 并不是完整的「克隆」,而是在同一个 Git 仓库(.git 目录)下挂载多个工作目录。与 git clone 不同,所有工作树共享同一套提交历史和对象数据库,只是各自检出到不同分支,因此磁盘占用远小于完整克隆。创建方式为 git worktree add ../my-feature-branch feature-branch,执行后会在指定路径生成一个独立的工作目录,可直接在其中编辑、提交,而不影响主工作目录的状态。完成工作后,用 git worktree remove 清理即可。这一特性自 Git 2.5(2015年)起内置,无需任何插件,主流 IDE 和 AI 编码工具能直接识别并利用它实现并行代理隔离。

如何选择合适的并行方式

三种机制并非互相替代,而是对应不同的需求层级:

方式隔离级别适用场景
TMUX 分支会话级继承上下文,等待时处理额外任务
侧边聊天对话级轻量并行问询,受子代理等限制
Git Worktree代码级同一代码库的并行独立修改

无论你用的是 PiHarness 的 TMUX 扩展,还是 Codex、Claude Code 等应用的内置工具,核心思路都是一致的:善用分叉会话和工作树,把等待时间转化为生产力。

对于频繁与 AI 代理协作的开发者而言,掌握这套并行工作流,意味着在同样的时间内能完成更多任务,也能更从容地探索不同的技术方案。

分享:

相关推荐