OpenClaw 多 Agent 协同部署文档
本文在《安装文档》基础上,说明如何部署「1 个运营总监 + 4 个员工 Agent」的流水线:人类只对总监说话,总监依次派单写稿→配图→风控→发布,并在完成后把结果汇总回人类。
本文在《安装文档》基础上,说明如何部署「1 个运营总监 + 4 个员工 Agent」的流水线:人类只对总监说话,总监依次派单写稿→配图→风控→发布,并在完成后把结果汇总回人类。
一、架构概览
| Agent ID | 名称 | 职责 |
|---|---|---|
| main | Main(默认) | 用户入口;可把任务「转给总监」 |
| director | 墨媒-运营总监 | 全流程派单:接人类指令 → 派墨笔 → 收汇报 → 派墨影 → … → 汇总给人类 |
| content | 墨笔-写稿 | 写稿;完成后只汇报总监 |
| design | 墨影-设计 | 配图/封面;完成后只汇报总监 |
| security | 墨盾-安全 | 风控;通过/不通过只汇报总监 |
| publish | 墨发-发布 | 发布;只接总监派来的过审物料,发完只汇报总监 |
原则:员工之间不互相派活;只有总监会向 content / design / security / publish 派单,并在收到汇报后派下一环。人类只需对总监(或对 main 说「转给总监」)说话。
二、流水线示意
人类 → 总监:「发 3 篇公众号,主题 xxx」
↓
总监 → 墨笔:写稿任务(sessions_send)
↓
墨笔 写稿完成 → 只汇报总监
↓
总监 → 墨影:配图任务(把稿件正文转过去)
↓
墨影 配图完成 → 只汇报总监
↓
总监 → 墨盾:风控
↓
墨盾 通过/不通过 → 只汇报总监
↓
总监 → 墨发:发布(仅当风控通过)
↓
墨发 发布完成 → 只汇报总监
↓
总监 → 人类(main 会话):【墨媒】流水线结果:篇数、链接、异常
三、目录结构
在 .openclaw 下建议的目录结构如下(路径需与 openclaw.json 中一致):
.openclaw/
├── openclaw.json
├── workspace/ # main 工作区
├── workspace-content/ # 墨笔
├── workspace-design/ # 墨影
├── workspace-security/ # 墨盾
├── workspace-publish/ # 墨发
├── workspace-director/ # 墨媒(含 state/ 用于等待状态与流水线日志)
├── agents/
│ ├── main/
│ ├── content/
│ ├── design/
│ ├── security/
│ ├── publish/
│ └── director/
└── cron/
└── jobs.json
每个 Agent 对应一个 workspace-xxx 和一个 agents/xxx。agents/xxx 下通常有 agent/(鉴权、模型配置)和 sessions/(会话存储)。
四、openclaw.json 配置要点
4.1 agents.list
为每个 Agent 配置 id、name、workspace、agentDir。示例(路径请改为你本机实际路径):
{
"agents": {
"defaults": {
"model": { "primary": "deepseek/deepseek-chat" },
"workspace": "你的路径/.openclaw/workspace"
},
"list": [
{ "id": "main", "name": "Main", "default": true, "workspace": "你的路径/.openclaw/workspace", "agentDir": "你的路径/.openclaw/agents/main/agent" },
{ "id": "content", "name": "墨笔-写稿", "workspace": "你的路径/.openclaw/workspace-content", "agentDir": "你的路径/.openclaw/agents/content/agent" },
{ "id": "design", "name": "墨影-设计", "workspace": "你的路径/.openclaw/workspace-design", "agentDir": "你的路径/.openclaw/agents/design/agent" },
{ "id": "security", "name": "墨盾-安全", "workspace": "你的路径/.openclaw/workspace-security", "agentDir": "你的路径/.openclaw/agents/security/agent" },
{ "id": "director", "name": "墨媒-运营总监", "workspace": "你的路径/.openclaw/workspace-director", "agentDir": "你的路径/.openclaw/agents/director/agent" },
{ "id": "publish", "name": "墨发-发布", "workspace": "你的路径/.openclaw/workspace-publish", "agentDir": "你的路径/.openclaw/agents/publish/agent" }
]
}
}
4.2 开启 Agent 间通信
多 Agent 派单依赖 sessions_send,必须在配置中开启并放行相关 Agent:
{
"tools": {
"agentToAgent": {
"enabled": true,
"allow": ["main", "content", "design", "security", "director", "publish"]
}
}
}
4.3 Gateway
保证 gateway.port、gateway.auth 等已按《安装文档》配置好,Gateway 能正常启动。
五、工作区与 SOUL/AGENTS
每个员工 Agent 的行为由该 Agent 的工作区内的 SOUL.md、AGENTS.md 等文件约束。部署时需保证:
-
总监(director)
- 在 SOUL 中约定:接人类指令后依次派 content → design → security → publish;每次派单后写
state/current_waiting.md,收到汇报后更新或清空;收到【定时检查】时对超时未汇报的员工发催促;墨发汇报后把汇总发到 agent:main:main。 - 在 SOUL 中约定:每次派单/收到汇报时在
state/pipeline_log.md末尾追加一行,便于人类查看流水线动态。
- 在 SOUL 中约定:接人类指令后依次派 content → design → security → publish;每次派单后写
-
墨笔(content)
- 只接总监派单;写稿完成后只汇报总监;汇报时在消息正文中粘贴稿件全文(因墨影无法访问墨笔工作区);保存稿件文件名使用英文/数字/下划线,避免 Windows 乱码。
-
墨影(design)
- 只接总监派单;配图依据消息内正文,不读取 content 工作区;无 AI 生图 API 时用网络搜索找图并在汇报中说明;完成后只汇报总监;配图多时分批汇报进度。
-
墨盾(security)
- 只接总监派单;风控通过/不通过只汇报总监,不自动转墨发。
-
墨发(publish)
- 只接总监派单;发布完成后只汇报总监。
-
main
- 在 AGENTS 中约定:用户说「请把任务转给总监:…」时,用
sessions_send发往 sessionKey: “agent:director:main”;若工具返回 timeout,不报「总监不可用」,而是提示任务已转发、总监会在后台执行并把汇总发回本会话。
- 在 AGENTS 中约定:用户说「请把任务转给总监:…」时,用
以上行为均通过各工作区内的 SOUL.md、AGENTS.md 描述;具体条文可参考项目内的 MULTI-AGENT-README.md 或现有 workspace-xxx 下的文件。
六、如何使用(人类侧)
6.1 通过 main 转给总监(推荐)
在 main 的会话中说:
「请把以下任务转给总监:发 3 篇公众号,主题 AI 工具推荐」
main 会通过 sessions_send 转给总监。若出现 timeout,属正常(流水线耗时长);总监会在后台执行,完成后把**【墨媒】流水线结果发回同一条 main 会话**。过几分钟刷新或重新打开该会话即可看到汇总。
6.2 直接对总监发令(TUI)
若希望直接对总监说话、或查看总监与员工的对话,可使用 TUI 指定会话:
openclaw-cn tui --session agent:director:main
在 TUI 内输入「发 2 篇公众号,主题 xxx」即直接下给总监。查看某员工会话可改用 agent:content:main、agent:design:main 等。
6.3 查看流水线动态(不发令)
总监会在 workspace-director/state/pipeline_log.md 按时间追加「派单 → 谁」「收到谁汇报」。打开或 tail 该文件即可查看近期 AI 间派单与汇报,无需切换会话。
七、定时任务(Cron)
7.1 定时催促卡住员工
若某员工长时间未汇报,可让总监定时检查并催促。在 cron/jobs.json 中增加类似任务(每 10 分钟触发总监做【定时检查】):
{
"jobId": "director-stuck-check",
"name": "总监-定时催促卡住员工",
"schedule": { "kind": "cron", "expr": "*/10 * * * *", "tz": "Asia/Shanghai" },
"sessionTarget": "isolated",
"agentId": "director",
"payload": {
"kind": "agentTurn",
"message": "【定时检查】请读取 state/current_waiting.md。若 waiting_for 有值且 sent_at 距今已超过 10 分钟,请向该员工发送 sessions_send 催促:「【总监】请汇报当前进度或说明遇到的障碍。」并更新该文件中的 reminder_sent_at。若 waiting_for 为 null,回复「当前无等待中的员工。」即可。"
},
"enabled": true
}
总监的 SOUL 中需约定:派单后写 state/current_waiting.md(等待谁、派单时间);收到【定时检查】时按上述逻辑读取并发催促。
7.2 每日日报(可选)
若需总监每日固定时间出日报并推到 Discord 等,可新增一条 cron,sessionTarget: "isolated",agentId: "director",payload.message 为日报指令,delivery 指向对应渠道。详见 openclaw 官方文档或项目内 cron 示例。
八、迁移到另一台电脑
- 将整个 .openclaw 目录复制到新电脑(新电脑需已安装 openclaw-cn)。
- 若新电脑上 .openclaw 的路径与旧机不同,用编辑器打开 openclaw.json,将其中所有旧路径(如
C:\Users\Administrator\.openclaw)全部替换为新路径(如D:\Users\Alice\.openclaw),保存。 - 若不想沿用旧机密钥,可在新机修改 Discord token、gateway 密码等。
- 在新机执行
openclaw-cn gateway启动网关,即可使用多 Agent 与流水线。
九、故障排查速查
| 现象 | 建议 |
|---|---|
| Agent 不生效 | 确认 Gateway 已重启,openclaw.json 中 agents.list 与各路径正确 |
| sessions_send 失败 | 确认 tools.agentToAgent.enabled 为 true,allow 含对应 agentId;main 转发总监时使用 sessionKey: “agent:director:main” |
| 看不到发布结果 | 总监应将汇总发到 agent:main:main;检查 director 的 SOUL 是否约定此事 |
| 流水线断链 | 员工只汇报总监、不转下一环;总监必须在收到汇报后主动派下一环 |
| Windows 文件名乱码 / ENOENT | 工作区文件使用英文/数字/下划线;墨笔汇报时在消息正文带全文;墨影不读 content 工作区路径 |
| PowerShell 报错 ls/dir/which | 使用 Get-ChildItem、Get-ChildItem -Name、where.exe python 等 |
| 界面一直加载/卡在配图 | 减少单次配图数量;墨影分批汇报进度;检查 design 会话或日志 |
| 员工一直不上报 | 确认 cron 中 director-stuck-check 已启用,总监 SOUL 含定时检查与 state 读写逻辑 |
| Cron 不跑 | 确认 Gateway 在运行、cron 未禁用、时区正确 |
十、小结
- 安装:见《安装文档》,完成 openclaw-cn 安装、onboard、Gateway 启动。
- 多 Agent:在 openclaw.json 中配置 agents.list、tools.agentToAgent,并为每个 Agent 建好 workspace 与 agents 目录。
- 行为:通过各工作区 SOUL/AGENTS 约定派单、汇报、汇总、state 与定时检查逻辑。
- 使用:人类对 main 说「请把任务转给总监:…」,或 TUI 指定 agent:director:main 直接对总监发令;结果在 main 会话或 pipeline_log 中查看。
- 迁移:复制 .openclaw 后按新机路径替换 openclaw.json 中的绝对路径即可。
更多推荐



所有评论(0)