最近折腾了一套多 Agent 协作流程来帮我搞 WordPress 插件开发,记录一下。
背景
写 WordPress 插件这件事,说起来不复杂,真干起来事情挺多的。需求拆解、架构设计、写代码、自测、修 bug、发布——一个人干所有活,来回切换上下文效率很低。
之前试过一些方案,都不太顺手。要么太重(搞一堆编排工具),要么太轻(一个模型对话到底,上下文乱串)。
后来想明白一件事:我不需要一个"万能助手",我需要三个各司其职的搭档。
三个角色
最终拆成了三个 Agent,每个负责一个环节:
- wp-pm(需求交付负责人)—— 收需求、拆任务、定优先级,产出开发任务丢给 wp-dev。最后验收结果,准备发布。
- wp-dev(架构开发)—— 拿到 PM 的任务,写代码实现。插件架构设计、核心功能开发、代码质量把关。干完活交给 QA。
- wp-qa(测试修复)—— 接手开发成果,全面测试、抓 bug、修问题。搞定了通知 PM 发布。
每个 Agent 用不同的模型和配置:pm 偏发散(temperature 0.7),dev 和 qa 偏严谨(0.2)。dev 用 deepseek-v4-flash,pm 和 qa 用 gpt-oss-120b。
技术落地
底层跑的是 Hermes Agent 的多 profile 机制。每个 Agent 是一个独立的 Hermes profile,有各自的 config.yaml 和 .env,互不干扰。
最开始想直接用 OpenClaw 来管这三个 Agent,但发现 OpenClaw 的配置和 Hermes 不太搭,而且我不想多套一层。干脆用 Hermes profiles,干净利落。
每个 profile 以独立 gateway 进程运行,监听各自的 API 端口:
- wp-dev → 8642
- wp-pm → 8643
- wp-qa → 8644
主 gateway(带微信接入)跑在 web-ui 端口 8648 上,三个子 gateway 各自独立,互不冲突。关键是要用 API_SERVER_ENABLED=true API_SERVER_PORT=xxxx 环境变量来启动,config.yaml 里的 platforms 字段在 Hermes gateway 里不生效,折腾了好久才搞清楚。
协作流程
在 web-ui 的群聊里,我是人类用户,三个 Agent 是在线搭档。流程大概是:
我在群里丢一个需求 → @wp-pm 拆任务 → @wp-dev 开发 → @wp-qa 测试修复 → @wp-pm 验收发布。
每个 Agent 有自己的工具集:dev 有文件读写和终端,qa 多了浏览器和视觉能力用来做 UI 截图比对,pm 有搜索和信息聚合。各干各的活,不串号。
遇到的坑
说几个印象深的:
1. WSL 和 Windows 的 profile 不通用。一开始图省事直接从 WSL 把 profile 目录复制过来,结果各种报错。后来老老实实 hermes profile create --clone 从默认配置重建,删掉 WSL 的遗留文件,干干净净。
2. 子 gateway 总被 weixin 卡住。主 gateway 已经连了微信,子 gateway 启动时也去抢 weixin 连接,直接报错退出。解决方案是在 profile 里把 weixin 和 qqbot 禁掉,但后来发现我们根本不走 config.yaml 的 platforms 配置——api_server 是靠环境变量启的。这属于文档没写清楚。
3. 模型配置要复制到每个 profile。默认的 providers 和 custom_providers 只在全局配置里有,profile 单独启动 gateway 时看不到。后来手动把 provider 定义复制到每个 profile 的 config.yaml 里才正常。
效果
目前跑了几天,最大的感受是上下文切换少了很多。以前写插件逻辑时突然想到一个 bug 要修,就得停下手头工作切过去。现在直接 @wp-qa 丢过去,它干完了在群里通知我,我继续写我的代码。
每个 Agent 的上下文是隔离的,不会串。pm 不会读到 dev 的代码细节,dev 也不用管发布流程。各司其职。
当然也有不完美的地方。比如三个 gateway 跑着占内存不小(每个 100-150MB),群聊的 Agent 在线状态偶尔会掉线需要重连。但总体来说,比以前一个人切来切去舒服多了。
一点感想
多 Agent 协作这件事,关键不是技术有多炫,而是流程拆得对不对。角色分清楚了,每个 Agent 知道自己该干什么、不该干什么,合作起来就很自然。跟带一个团队差不多——人不用多,一个 pm、一个 dev、一个 qa,够了。
至于底层跑什么、怎么配置,都是细节。好的流程设计,用什么工具都能落地。