乐于分享
好东西不私藏

OpenClaw多Agent实战指南:从踩坑到7*24自动运行,7小时的经验值

OpenClaw多Agent实战指南:从踩坑到7*24自动运行,7小时的经验值

朋友问我能不能帮他配置5个OpenClaw机器人协同工作。我说这有啥难的,不就是改配置文件吗?结果花了7小时,踩了9个坑。这篇文章把所有实战经验整理出来,帮你省掉排错时间。

用AI工具用多了,你一定踩过这个坑:让单个Agent去做复杂任务,它要么思路乱,要么做到一半"忘了"前面说的话,要么输出质量参差不齐。

解法是什么?Multi-Agent。把大任务拆给多个专门的Agent,各司其职,像一个小团队。

对比一下

模式流程优势
单Agent你 → 一个AI → 输出简单,适合小任务
Multi-Agent你 → 调度Agent → 多个专项Agent → 汇总上下文聚焦、专业度高、并行更快

先搞清楚:什么情况该拆?

社区最常见的求助帖:「我的五只龙虾在群里互相抢消息,怎么办?」

问题不在数量,在拆分逻辑。

最常见的错误:按职责拆

直觉告诉你:前端一个、后端一个、内容一个、运营一个。

这个直觉是错的。

实战总结的判断标准:按上下文拆,不按职责拆。

该拆的三种情况

  1. 1. 上下文持续积累且互不干扰
    • • 调研Agent积累行业知识,写作Agent积累个人风格——两套记忆混在一起会互相污染
  2. 2. 工作流程完全独立
    • • 内容创作流程和代码开发流程没有共享信息的需要
  3. 3. 需要不同的"记忆"
    • • 技术调研Agent和市场调研Agent看的世界不一样

不该拆的情况

  • • 只是工具不同(都是编程)
  • • 只是输出格式不同(都是写作)
  • • 任务之间需要频繁共享信息——拆了反而更糟

实际案例:内容创作不要拆成选题、大纲、写作、配图、发布五个Agent。两个就够:一个负责选题到成稿(上下文连贯),一个负责多平台发布(需要记住各平台规则)。

踩坑实录:9个坑帮你避掉

坑1:API Key裸奔

离谱程度:⭐⭐⭐⭐⭐

朋友发给我的openclaw.json里,API Key、appid、appsecret全在里面,明文。

如果是别人拿到这份配置,跟把家门钥匙扔小区业主群里没区别。

解决方案

  • • 敏感凭证绝不在非加密渠道明文传输
  • • 必须发的话,至少打个码
  • • 如果已经发了,立刻去后台重新生成Secret轮换掉

坑2:AI生成的配置信不得

离谱程度:⭐⭐⭐⭐⭐

朋友说配置文件是让AI写的。

写得挺像那么回事,语法也对,结构也对,但配置字段名是错的。

OpenClaw还太新了,AI在这方面幻觉比较严重,会出现把全局配置放在局部这种问题。

解决方案:不要让AI帮你写OpenClaw配置文件。用官方模板改。

坑3:A2A插件投毒

离谱程度:⭐⭐⭐⭐⭐

朋友想让本地OpenClaw控制远程OpenClaw(A2A,Agent To Agent)。官方不支持,只有插件支持。

去调研时发现,A2A插件在官网标记为有风险插件。

解决方案

  • • 装一个Skill Vetter审查插件:https://clawhub.ai/spclaudehome/skill-vetter
  • • 只装大厂或可信来源的插件

坑4-9:配置文件的各种坑

问题解决方案
4bindings写错了用openclaw agents bind命令,别手写JSON
5飞书事件没订阅添加im.message.receive_v1事件 + 发布新版本
6权限漏加添加权限后必须发布版本才生效
7accounts.json没同步openclaw.json和accounts.json两个文件都要改
8session损坏清session + 重启Gateway
9API限流降低maxConcurrent或等待

五步配置Multi-Agent

Step 1:打开配置文件

所有配置集中在一个文件:

~/.openclaw/openclaw.json

用VS Code或Cursor打开,接下来所有配置都在这个文件里。

Step 2:在agents.list里定义多个Agent

{
  "agents"
: {
    "defaults"
: {
      "model"
: { "primary": "zai/glm-4.7" },
      "compaction"
: { "mode": "safeguard" },
      "maxConcurrent"
: 4
    }
,
    "list"
: [
      {

        "id"
: "main",
        "name"
: "调度中枢",
        "default"
: true,
        "workspace"
: "~/.openclaw/workspace",
        "subagents"
: { "allowAgents": ["*"] },
        "heartbeat"
: {
          "every"
: "6h",
          "activeHours"
: { "start": "09:00", "end": "22:00" }
        }

      }
,
      {

        "id"
: "research",
        "name"
: "调研Agent",
        "workspace"
: "~/.openclaw/workspace-research",
        "subagents"
: { "allowAgents": ["*"] }
      }
,
      {

        "id"
: "writer",
        "name"
: "写作Agent",
        "workspace"
: "~/.openclaw/workspace-writer",
        "subagents"
: { "allowAgents": ["*"] }
      }

    ]

  }

}

关键点:

  • default: true:只有main设为true,其他都是false
  • workspace:每个Agent独立目录
  • subagents.allowAgents:跨Agent调用权限

Step 3:给每个Agent写SOUL.md

SOUL.md是Agent最重要的文件,身份、角色、原则、关系,全在这40-60行里。

调研Agent(Dwight)的SOUL.md示例

# SOUL.md (Dwight)

## Core Identity

**Dwight**
 — the research brain. 彻底到极致,知道领域内所有事。

## Your Role

你是团队的情报骨干。调研、验证、组织、交付情报给其他Agent使用。

## Your Principles

### 1. NEVER Make Things Up

-
 每个声明都有来源链接
-
 每个指标都来自原始数据,不估算
-
 不确定就标记[UNVERIFIED]
-
 "我不知道"比错的更好

### 2. Signal Over Noise

-
 不是所有热门都重要
-
 优先:AI/agents相关性、互动速度、来源可信度

## Output Files

intel/
├── data/YYYY-MM-DD.json    ← 结构化数据
└── DAILY-INTEL.md          ← 生成的情报汇总

主Agent(Monica)的SOUL.md侧重调度

# SOUL.md (Monica)

## Core Identity

**Monica**
 — 有组织、有动力、略竞争。

## Your Role

-
 战略监督 — 看大局,推动进程
-
 委派 — 把任务分给合适的Agent
-
 直接支持 — 处理不属于专家的内容

## 调度方式

**实时调度(默认)**
:直接spawn对应Agent,等待返回结果后汇总。
**异步任务**
:仅当明确说"不急""下周做"时,写入work/inbox/文件。

⚠️ 如果SOUL.md不显式写明"直接spawn",Agent会默认用异步模式。

Step 4:配置bindings和飞书

飞书接入必需权限

  • • im:message
  • • im:message:send_as_bot
  • • im:message.group_at_msg:readonly
  • • im:message.p2p_msg:readonly
  • • contact:contact.base:readonly

三个最容易漏的

  1. 1. 忘了添加im.message.receive_v1事件 → 机器人收不到消息
  2. 2. 添加权限/事件后忘了发布新版本 → 不会生效
  3. 3. 缺少contact:contact.base:readonly → 日志报99991672错误

注册脚本

AGENT_ID="research"
APP_ID="cli_xxxxxx"
APP_SECRET="xxxxxx"

# 1. 更新openclaw.json

node -e "
const fs = require('fs');
const config = JSON.parse(fs.readFileSync(process.env.HOME+'/.openclaw/openclaw.json','utf8'));
config.channels.feishu.accounts['$AGENT_ID'] = { appId: '$APP_ID', appSecret: '$APP_SECRET' };
fs.writeFileSync(process.env.HOME+'/.openclaw/openclaw.json', JSON.stringify(config,null,2));
"


# 2. 更新accounts.json(关键!)

node -e "
const fs = require('fs');
const acc = JSON.parse(fs.readFileSync(process.env.HOME+'/.openclaw/channels/feishu/accounts.json','utf8'));
acc.accounts['$AGENT_ID'] = { appId: '$APP_ID', appSecret: '$APP_SECRET' };
fs.writeFileSync(process.env.HOME+'/.openclaw/channels/feishu/accounts.json', JSON.stringify(acc,null,2));
"


# 3. 绑定路由

openclaw agents bind --agent $AGENT_ID --bind feishu:$AGENT_ID

# 4. 重启

openclaw gateway restart

⚠️ openclaw.json和accounts.json两个文件都必须更新。只改一个飞书连不上。

Step 5:防抢消息的铁律

多Agent同群最常见的坑:所有龙虾抢着回复同一条消息。

解决方案:只让一个Agent设为requireMention: false(默认响应者),其他所有Agent必须设为true(必须@才响应)。

{
  "channels"
: {
    "telegram"
: {
      "accounts"
: {
        "default"
: {
          "botToken"
: "YOUR_BOT_TOKEN",
          "groups"
: {
            "-100GROUP_ID"
: {
              "allow"
: true,
              "requireMention"
: false
            }

          }

        }

      }

    }

  }

}

只有requireMention: false的群会让Agent主动响应所有消息,其他群必须@Bot名称才触发。

7×24自动运行:Cron和自愈

Cron调度顺序

上游Agent必须先跑:

08:01  Dwight(调研)    → 产出DAILY-INTEL.md
09:01  Kelly(Twitter)  → 读取情报,写推文草稿
09:01  Rachel(LinkedIn)→ 读取情报,写职场内容
10:01  Ross(工程)      → 代码审查
16:01  Dwight(下午)    → 第二次调研
17:01  Kelly + Rachel   → 基于下午情报二次创作

配置方式:直接告诉主Agent「每天早上8点执行调研任务」,Agent会自动创建cron job。

openclaw cron list查看所有定时任务。

Heartbeat自愈机制

Cron job会失败——机器重启、网络抖动、API限流。

解决方案是HEARTBEAT.md:让主Agent在每次心跳时自动检查所有cron job状态。

## Cron Health Check (run on each heartbeat)

Check if any daily cron jobs have stale lastRunAtMs (>26 hours).
If stale, trigger them via CLI:
`openclaw cron run <jobId> --force`


Jobs to monitor:
-
 Dwight Morning (8:01 AM): 01f2e5c5-...
-
 Kelly Viral (9:01 AM): c9458766-...

如果某个job超过26小时没执行,Monica会自动触发--force重跑。

没有自愈机制,你最终会变成Agent的运维工程师。

协作靠文件,不靠框架

多个Agent之间怎么协作?最稳的方案反而最笨:文件系统

实战案例:6人Agent团队运行几个月。协作机制极其简单:

  • • Dwight每天三次把情报写入intel/DAILY-INTEL.md
  • • Kelly醒来后读这个文件写推文
  • • Rachel读同一个文件写职场内容
  • • Pam读同一个文件写周报

没有API调用,没有消息队列,没有编排框架。交接就是一份Markdown文档。

文件不会崩溃,不会有认证问题,不需要处理速率限制。

协调铁律

一个文件只有一个写入者,可以有多个读取者。两个Agent同时写同一个文件,迟早出事。

渐进扩展:四周路线图

第一周:一只Agent,一个任务。写SOUL.md,跑一个cron job,观察一周。

第二周:加记忆,调人格。给反馈,看记忆文件增长,修正SOUL.md。

第三周:加第二只。设好文件共享模式,配置bindings和cron顺序。

第四周及以后:按需扩展。每新增一只都应该解决一个真实存在的问题。

像招人一样对待Agent扩编。没有创始人在第一天就招六个员工。先把一只龙虾养明白,再考虑扩军。

运维速查表

日常命令

命令用途
openclaw agents list查看所有Agent
openclaw agents list --bindings查看路由绑定
openclaw channels status --probe查看通道健康
openclaw logs --follow实时日志
openclaw gateway restart重启Gateway

问题速查

现象原因解决方案
群消息不回复未@机器人群里必须@
新机器人完全无反应未订阅事件飞书添加事件+发布
收到消息但不回复session损坏清session+重启
权限错误99991672缺少飞书权限添加权限+发布
API限流429并发过多降低maxConcurrent
bindings报错手写格式错误用bind命令

清session重启

# 清单个Agent
find ~/.openclaw/agents/<agent-id>/sessions/ -type f -delete

# 清全部

find ~/.openclaw/agents/*/sessions/ -type f -delete

# 重启

openclaw gateway restart

成本参考

6个Agent 7×24运行的月度开销:

项目费用
Claude API(或Max Plan)~$200/月
Gemini API~$50-70/月
TinyFish(浏览器Agent)~$50/月
Eleven Labs(语音)~$50/月
Telegram/飞书免费
OpenClaw开源免费
合计< $400/月

个人起步:一只Agent + 一个模型API,月成本可控制在$20-50以内。


想装5个机器人协同工作?这篇文章帮你省掉7小时的排错时间。

核心记住三件事

  1. 1. 按上下文拆,不按职责拆
  2. 2. 配置文件用官方模板改,不让AI写
  3. 3. 只让一个Agent主动响应,其他必须@

关键词:OpenClaw, Multi-Agent, 多Agent配置, OpenClaw踩坑, 龙虾, Agent协作, 飞书接入