Herdr 多 Agent 协作实战:5 个 AI 编程智能体并行搭建订阅管理 WebApp
为什么需要一套「多 Agent 工作台」
当你把 Claude Code、Codex、OpenCode、Pi Agent 都装上以后,真正的痛苦才会浮现:你必须在多个终端窗格之间反复切换,才能知道谁在工作、谁在等你点确认、谁已经完成。几个窗口叠在一起,状态是黑箱;切到一半又怕错过某个 Agent 的关键提示。
Herdr(GitHub)就是为这个场景设计的——它把 Agent 放在真实终端 Pane 里跑,并在同一界面展示 working / blocked / done 等状态,让多智能体开发真正变得可观察、可恢复、可调度。关于它的架构、与 tmux / Zellij 的对比、安装与单 Agent 入门,参考此前整理的 Herdr 终端工作区管理器:为 AI 编程智能体而生的运行时。本文专注多 Agent 并行协作的实战工作流。

1. 先把概念理顺:Workspace / Tab / Pane / Agent
Herdr 的主体概念只有四个,记住这张对应表就理解了整个产品:
| Herdr 概念 | 对应到代码项目 | 数量关系 |
|---|---|---|
| Workspace | 整个代码库 | 一个 Herdr 实例可承载 1~N 个 |
| Tab | 一个具体任务 | 每个 Workspace 内 1~N 个 |
| Pane | 一个 Agent 会话 | 每个 Tab 内可横/纵分屏 1~N 个 |
| Agent | 跑在 Pane 里的智能体(Codex / Pi / Claude Code…) | 每个 Pane 一个 |
所以打开 Herdr 默认界面,左侧栏是 Workspace + Agent 状态聚合视图,右侧才是操作区:

一个 Tab 内可以同时跑多个 Pane。下面这张图里:左上是 Pi Agent,左下是 OpenAI Codex,右边是空终端——三个真实终端进程并行:

小技巧:在 Pane 边框右键 → Rename 给每个 Pane 起一个可识别名字(比如
Architect / UI / Logic / Test / Integrator),侧边栏会自动按名字聚合,再按状态(空心=空闲、黄色=运行、红色=阻塞)排序,跨工作区也能一眼看完。
2. UI 与交互:鼠标和键盘两头都友好
Herdr 把「鼠标用户」和「键盘用户」当成两个一等公民,不会逼你二选一。
2.1 鼠标可以完成所有事
新建 Workspace、切 Tab、分屏、聚焦 Pane、调整边框、复制选中文本——全部可以靠鼠标完成。点选文本会自动复制到剪贴板,不需要 Ctrl+C;Ctrl + 点击 在 Pane 内打开链接(支持 OSC 8、http://、https://,含换行截断的链接)。
2.2 键盘用 tmux 风格前缀
喜欢 Vim 的用户用 tmux 风格的 Ctrl+B 前缀键:

按 Ctrl+B 进入前缀模式后,常用动作:
| 动作 | 按键 |
|---|---|
| 竖向分屏 | prefix + v |
| 横向分屏 | prefix + - |
| 新建 Tab | prefix + c |
| 上/下个 Tab | prefix + n / prefix + p |
| Workspace 导航 | prefix + w |
| 新建 Workspace | prefix + shift + n |
| 分离客户端 | prefix + q |
| 查看所有绑定 | prefix + ? |

2.3 状态指示器一眼看全局
侧边栏的圆点是 Herdr 的灵魂。颜色含义:
| 状态 | 颜色 | 含义 |
|---|---|---|
| idle | 空心圆 | 已完成 / 等待中,已被查看过 |
| working | 实心黄 | 正在运行 |
| blocked | 实心红 | 需要你审批或回答问题 |
| done | 实心绿 | 已完成但你还没看 |
在 Settings → Indicators 里还能切换实心/空心/半圆三种样式,配合 Pane labels 一起看就能秒判哪个 Agent 在等你。
2.4 Integrations:第一次启动要做的事
Herdr 出厂不自带所有 Agent 的状态钩子。第一次启动某个 Agent 后,进入 Menu → Integrations,找到带 + 的 Agent → 点加号 → 自动拉取并安装对应插件 → 状态变绿勾,之后侧边栏才能精准拿到 blocked / done 信号。
3. 两个杀手级能力:对话保持 + 远程会话
3.1 退出再回来,对话不会丢
Herdr 是 client-server 架构:Agent 跑在后端 Server 的真实终端进程里,UI 客户端只是渲染层。你按 prefix + q 退出客户端,Server 和所有 Agent 还在跑;下次执行 herdr 重连,原布局、状态、Pane 全部恢复。

注意:服务器/机器重启后 Herdr 会恢复布局,但原始进程不会跨重启保留。长任务要靠 Agent 自身的会话续命能力(Pi、Claude Code 等都支持)。
3.2 远程会话:一个窗口管多台机器
1 | herdr remote <user>@<host> |
这条命令会把远程 SSH 主机挂到当前 Herdr 实例下,远程跑着的 Agent 也合并进侧边栏。手机装任意 SSH 客户端连上,TUI 自适应窄屏——等于免费获得手机端监控。
4. 实操演示:5 个 Agent 并行搭一个订阅 WebApp
下面是一次完整的多 Agent 协作 Demo,目标是用 5 个 Agent 在同一个 Workspace 内并行做出一个订阅费用管理 WebApp。
4.1 角色分工
| Agent | 任务 | 使用模型 |
|---|---|---|
| Architect | 统一数据结构、接口契约、测试边界 | OpenAI Codex(gpt-5.5 high) |
| UI Agent | 实现界面与交互 | Pi Agent |
| Logic Agent | 实现数据模型、业务逻辑、存储 | Pi Agent |
| Test Agent | 编写并执行测试,覆盖核心模块 | Pi Agent |
| Integrator | 拉起服务、做端到端整合 | OpenAI Codex |
Workspace 拆成两个 Tab:
- Tab 1(Architecting):Architect + Integrator 并列
- Tab 2(Imp Team):UI / Logic / Test 三个 Pane 横/纵排
给每个 Pane 右键 Rename 之后,侧边栏会按名字聚合:

4.2 阶段一:Architect 先统一协议
关键原则:不要让 UI / Logic / Test 直接并行开工——必须先让 Architect 输出一份共享协议(数据 schema、模块边界、接口签名、测试边界),否则三个 Agent 各自发挥,最后整合必崩。
在 Architect Pane 里给 Prompt:
你是一个 Architect Agent。我们做一个用于记录订阅服务和费用的 Web App。请基于我对订阅 App 的理解,先统一接口规范:
- 数据模型:Subscription(名称、价格、币种、计费周期、下次扣款日、自动续订、备注)
- 接口:list / add / edit / delete / stats
- 存储:localStorage(数组形式)
- UI 组件:订阅列表、添加/编辑表单、统计卡片
- 类型文件:
types/subscription.ts,统一导入请只产出架构契约文档,不写实现代码。
Architect 跑完后,跳到 Imp Team Tab,让 UI / Logic / Test 分别用同一份契约开始并行实现。
4.3 阶段二:UI / Logic / Test 并行
三个 Pane 同时启动。运行中各自的指示灯颜色:

小细节:Architect / Integrator 走的是左右分屏,Prompt 全文能直接看到;而 UI / Logic / Test 是纵排,每个 Pane 垂直空间紧,Pi Agent 会自动把 Prompt 折成概要展示——这是 Pi 的「paste-collapse」特性,不是 Herdr 截断的。
期间会蹦出几个红色 blocked(需要你点头或选方案):
- Logic Agent 问你是否要把币种字段限定为 ISO 4217
- UI Agent 询问表单字段顺序
- Test Agent 询问测试 fixture 怎么生成
处理建议:默认全部采用 Agent 的 recommended 选项,不要过度干预,否则并行效率会被你自己拖垮。
继续看一段时间后,三个 Agent 已经各自完成核心模块:

4.4 阶段三:Integrator 端到端整合
切到 Tab 1 的 Integrator Pane,给一段「按共享契约汇总」的 Prompt:
把三个 Agent 输出的代码整合成可运行 WebApp:装依赖、
npm run build、http-server起 8000、跑全部测试、curl 一下/和/api/stats验证。
Integrator 会按顺序执行依赖安装 → 编译 → 起服务 → 跑测试 → 自检。期间仍可能触发红色 blocked(如执行 npm install -g http-server 需要权限),照例直接放行即可。
4.5 最终成果
整合成功后,浏览器打开 http://localhost:8000 就能看到这个 WebApp:

功能清单(实测可用):
- 新增订阅:名称、价格、币种、计费周期、下次扣款日、自动续订、备注
- 编辑 / 删除订阅
- 自动汇总:月支出、年度费用、3 天内即将扣款数
- 即将扣款(≤3 天)行橙色高亮
- 数据持久化到 localStorage
整个流程从「写 Prompt」到「跑起来」,5 个 Agent 并行协作,一个人只要做决策、放行 blocked。
5. 复用这套协作模式的 4 条经验
5.1 先 Architect,再并行,最后 Integrator
这是关键。没有 Architect 直接并行三个实现 Agent,90% 会在整合阶段出现命名冲突、接口对不上、测试挂在边界条件上。Architect 的输出就是后面三方的契约。
5.2 Pane 命名 = 团队角色
不要让 Agent 自己猜角色。给每个 Pane 显式起 Architect / UI / Logic / Test / Integrator 名字,侧边栏自动按角色聚合,跨 Tab 也能一眼看出团队配置。
5.3 把 Prompt 写得像「合同」而不是「需求」
并行场景下 Prompt 越像合同越好:
- 数据 schema 用 TypeScript interface 写死字段名
- 接口签名 给出函数名 + 入参类型 + 返回类型
- 测试边界 列出「这些场景必须覆盖」
- 不写实现,让 Agent 自己发挥
5.4 红色 blocked 用「建议优先 + 必要时干预」
并行阶段会出现大量「你要不要这样做?」的提示。默认采用 Agent 推荐的方案,只在以下情况介入:
- 涉及外部破坏性操作(删文件、装全局包、重启服务)
- Agent 提议的安全策略与你预期不符
- 多个 Agent 的方案冲突(这才是 Architect 没做好的信号)
6. 它解决了哪些真实痛点
对照一下日常多 Agent 开发的踩坑:
| 痛点 | 没 Herdr 时 | 用 Herdr 后 |
|---|---|---|
| 谁在等你 | 切四个窗口扫一遍 | 侧边栏红色 blocked 一眼看到 |
| SSH 断开 / 终端关闭 | 长任务报废 | prefix + q 重连后继续 |
| 多台机器的项目 | 各开一套终端 | 一窗口 + herdr remote |
| 手机端查看 | 不可能 | 任意 SSH 客户端 + TUI |
| Agent 之间协调 | 手动拷贝结果 | socket API(详见 Herdr 架构文章) |
如果你同时跑 ≥2 个 AI 编程智能体,Herdr 几乎是必装的。Pi Agent 用户还可以额外装 pi-herdr-agents 扩展,让 Agent 直接用 socket API 主动 spawn 其他 Pane——多智能体编排有了一个原生的运行时底座。
安装一条命令、上手十分钟、并行五人协作。 装好后给自己一周时间——大概率回不去。
官网:herdr.dev · 文档:herdr.dev/docs · 中文快速开始:herdr.dev/zh-cn/docs/quick-start · 仓库:github.com/herdrdev/herdr