OpenClaw多Agent配置与消息通信
让你的 AI 从”单打独斗”进化到”团队作战”
OpenClaw 原生支持多 Agent 架构,不仅能让多个 Agent 并存,各自拥有独立的工作区、人格、模型、数据和授权,还提供了灵活的路由分发和子代理协作机制。今天我们就来完整拆解这套系统的配置方法。
不是所有的任务都用同一个 Agent 解决。单 Agent 模式下,一切请求都由同一个”大脑”处理,它会面临:
-
角色混乱——工作群和家庭群都用同一套人格 -
上下文膨胀——各种任务挤在同一会话中 -
权限混用——个人和公司的数据访问混在一起
在动手配置前,先理清几个核心概念:
Agent(代理):一个完整的”AI大脑”,包含独立的工作区文件(AGENTS.md/SOUL.md/USER.md)、会话历史、认证配置、模型设置和授权信息。每个 Agent 就是”一个人”。
Bindings(路由绑定):决定哪个渠道的消息发送给哪个 Agent。可以按渠道、账号、甚至按联系人精确匹配。
Sub-agents(子代理):由主 Agent 按需临时派生的背景运行代理,用于并行执行、任务分解和异步编排。
Workspace(工作区):每个 Agent 的独立文件根目录,存放其人格文件、记忆文件和技能文件。
~/.openclaw/├── agents/│ ├── main/ ← 主 Agent 状态目录│ │ ├── agent/ ← 认证配置、模型注册表│ │ └── sessions/ ← 会话历史│ ├── work/ ← 工作 Agent│ └── home/ ← 生活 Agent├── workspace/ ← 主工作区├── workspace-work/ ← 工作 Agent 工作区└── workspace-home/ ← 生活 Agent 工作区
OpenClaw 安装完成后,默认只有一个 main Agent。要添加更多 Agent 非常简单:
通过 CLI 交互式添加
openclaw agents add codingopenclaw agents add socialopenclaw agents add ops --workspace ~/.openclaw/workspace-ops --bind telegram:ops
命令执行后,系统会自动:
-
创建独立的 Agent 状态目录 ~/.openclaw/agents/<id>/agent -
初始化独立工作区,包含 AGENTS.md、SOUL.md、USER.md等文件 -
如果指定了 --bind,自动生成绑定配置
查看已创建的 Agent
openclaw agents listopenclaw agents list --bindings # 查看完整的路由规则
删除 Agent
openclaw agents delete coding # 文件移动到回收站,非永久删除openclaw agents delete coding --force # 跳过确认
每个 Agent 都有自己的”灵魂”。在其工作区的 SOUL.md 中定义人格,在 openclaw.json 中分配模型。
设置工作 Agent(严肃高效):
~/.openclaw/workspace-work/SOUL.md:
# SOUL.md - 职场精英- 风格:专业、高效、简洁- 原则:先确认需求再执行- 边界:不涉及个人话题
设置生活 Agent(风趣幽默):
~/.openclaw/workspace-home/SOUL.md:
# SOUL.md - 贴心伙伴- 风格:活泼、有趣、友好- 特长:闲聊、推荐、生活建议- 不代劳工作事宜
在配置文件中分配不同模型:
{ agents: { list: [ { id: "main", workspace:"~/.openclaw/workspace",
//日常使用性价比模型 model: "anthropic/claude-sonnet-4-6", }, { id: "work", workspace:"~/.openclaw/workspace-work",
//工作用顶级模型 model: "anthropic/claude-opus-4-6", thinkingDefault: "high", }, { id: "home", workspace: "~/.openclaw/workspace-home", //简单任务用小模型节省成本 model: "google/gemini-3-flash-preview", }, ], },}
设置 Agent 的显示身份
# 配置名称、主题、表情和头像openclaw agents set-identity --agent work --name "WorkBot" --emoji "💼"openclaw agents set-identity --agent home --name "小助手" --theme "暖心伙伴" --emoji "🤗"
这是多 Agent 配置中最关键的一环——如何将不同渠道的请求分发到正确的 Agent。
基础路由:按渠道绑定
{ bindings: [ { agentId: "work", match: { channel: "whatsapp", accountId: "biz" } }, { agentId: "home", match: { channel: "whatsapp", accountId: "personal" } }, ],}
高级路由:按人和群组精确匹配
{ bindings: [ // 精确到个人:对某个联系人使用深度思考Agent { agentId: "work", match: { channel: "whatsapp", peer: { kind: "direct", id: "+8613800138000" }, }, }, // 群组绑定:家庭群绑定到家庭 Agent { agentId: "home", match: { channel: "whatsapp", peer: { kind: "group", id: "120363099999@g.us" }, }, }, // 渠道回退:该渠道其他请求走默认 { agentId: "main", match: { channel: "whatsapp" } }, ],}
跨渠道共享:在不同平台绑定同一个 Agent
{ bindings: [ // WhatsApp + Telegram 都走同一个工作 Agent { agentId: "work", match: { channel: "whatsapp", accountId: "biz" } }, { agentId: "work", match: { channel: "telegram", accountId: "work-bot" } }, // Discord 走开发 Agent { agentId: "coding", match: { channel: "discord", accountId: "coding-bot" } }, ],}
绑定匹配优先级(从高到低)
-
peer 匹配——精确到个人/群组 -
guildId 匹配——Discord 服务器级别 -
accountId 精确匹配——按账号 -
accountId: “*” ——渠道级回退 -
默认 Agent——兜底
通过 CLI 管理绑定
# 查看所有绑定openclaw agents bindings# 添加绑定openclaw agents bind --agent work --bind telegram:ops --bind discord:guild-a# 移除绑定openclaw agents unbind --agent work --bind telegram:ops
不同 Agent 的安全级别也可以分别设置。比如家庭 Agent 限制高权限操作,工作 Agent 开放更多工具。
限制工具权限
{ agents: { list: [ { id: "family", workspace: "~/.openclaw/workspace-family", // 仅允许只读操作 tools: { allow: ["read", "web_search", "web_fetch"], deny: ["exec", "write", "edit", "browser", "cron"], }, }, { id: "coding", workspace: "~/.openclaw/workspace-coding", // 开发 Agent 放开所有工具 tools: { profile: "coding" }, }, ], },}
启用沙箱隔离
{ agents: { list: [ { id: "family", sandbox: { mode: "all", // 始终在沙箱中执行 scope: "agent", // 每个 Agent 独立容器 workspaceAccess: "ro", // 工作区只读挂载 }, }, ], },}
沙箱模式还支持 Docker 和 SSH 后端,可以实现完整的容器化隔离,适合在外放给家庭成员或公开群组的 Agent。
多 Agent 不仅能独立运行,还能协同工作。OpenClaw 提供了多种协作方式。
方式一:子代理(Sub-agents)——最常用的协作模式
主 Agent 在运行中可以按需派生子代理,子代理由主 Agent 分配任务并等待结果汇报。
在代码层面,这就是 sessions_spawn 工具的调用,可直接在对话框发送下面指令启动子Agent:
//主Agent内部自动执行(无需手动操作)sessions_spawn( task="搜索2026年AI agent领域的最新趋势,输出要点列表", taskName="research_agent", model="google/gemini-3-flash-preview" // 子任务用便宜模型)sessions_spawn( task="分析过去30天的性能数据,找出异常点", taskName="data_analysis", model="google/gemini-3-flash-preview")// 等待两个子任务完成sessions_yield()
真正的效率提升在于:主 Agent 负责统筹和判断,子 Agent 负责执行和收集。每个子 Agent 有独立会话,不会污染主会话的上下文。
配置子代理行为
{ agents: { defaults: { subagents: { delegationMode: "prefer", //鼓励主 Agent 多使用子代理 maxConcurrent: 4, // 最多并行4个子代理 maxSpawnDepth: 2, // 子代理还可以再派生子代理 maxChildrenPerAgent: 5, // 每个会话最多5个活跃子代理 runTimeoutSeconds: 600, // 子代理超时时间 announceTimeoutMs: 120000, // 结果汇报超时 archiveAfterMinutes: 60, // 60分钟后自动归档 }, }, },}
方式二:Agent 间消息传递(A2A)
OpenClaw 还支持 Agent 之间直接发送消息。这是更灵活但需要显式开启的协作模式,需在openclaw.json中进行配置,或者直接对话,让OpenClaw自己完成配置,省得配错。
{ tools: { agentToAgent: { enabled: true, allow: ["main", "work", "coding"], }, }, session: { agentToAgent: { maxPingPongTurns: 5 }, // 最多来回5次 },}
开启后,Agent 可以通过 sessions_send 向其他 Agent 发送消息并发起对话。不知道怎么写sessions_send,可以让Openclaw自己写。
方式三:跨 Agent 记忆搜索
一个 Agent 可以搜索另一个 Agent 的会话记录,适合需要全局视角的场景。
{ agents: { list: [ { id: "main", memorySearch: { qmd: { extraCollections: [ { path: "~/.openclaw/agents/work/sessions", name: "work-sessions" }, { path: "~/.openclaw/agents/home/sessions", name: "home-sessions" }, ], }, }, }, ], },}
案例一:职场全能——渠道分流
场景:日常处理工作群、技术讨论群和个人消息。
配置方案:WhatsApp 商业号 → 工作 Agent(Opus+深度思考) ├─ 日常工作咨询、会议安排 └─ 远程运维指令Telegram 技术群 → 开发 Agent(Codex 模式) ├─ 代码审查 ├─ 故障排查 └─ 架构讨论个人 WhatsApp → 生活 Agent(轻量模型) ├─ 日程提醒 ├─ 生活推荐 └─ 休闲闲聊
配置如下:
{ agents: { list: [ { id: "work", workspace: "~/.openclaw/workspace-work", model: "anthropic/claude-opus-4-6", thinkingDefault: "high", }, { id: "coding", workspace: "~/.openclaw/workspace-coding", model: "openai/gpt-5.5", tools: { profile: "coding" }, }, { id: "home", workspace: "~/.openclaw/workspace-home", model: "google/gemini-3-flash-preview", }, ], }, bindings: [ { agentId: "work", match: { channel: "whatsapp", accountId: "biz" } }, { agentId: "coding", match: { channel: "telegram", accountId: "dev-bot" } }, { agentId: "home", match: { channel: "whatsapp", accountId: "personal" } }, ],}
案例二:深度研究中台——子代理编排
场景:需要快速产出一份行业分析报告。
工作流:
-
主 Agent 收到任务 → 分解为多个子任务 -
派生 3~5 个子 Agent 并发搜索不同方向 -
子 Agent 各自汇报搜索结果 -
主 Agent 汇总、分析、撰写最终报告
这个场景在代码层面就是 sessions_spawn + sessions_yield 的典型应用,完全由主 Agent 自动完成,用户只需下达一次指令。
案例三:家庭共享助手
场景:家里有多个成员,都想用 AI 助手但不想看到彼此的数据。
配置方案:同一个 WhatsApp 号,不同联系人路由到不同 Agent:+86 138xxxx0001(爸爸)→ 工作 Agent+86 139xxxx0002(妈妈)→ 生活 Agent +86 136xxxx0003(孩子)→ 学习 Agent(限制工具+沙箱)同一个号码,不同"人",不同"大脑",互不干扰。
{ bindings: [ { agentId: "work", match: { channel: "whatsapp", peer: { kind: "direct", id: "+86138xxxx0001" } }, }, { agentId: "home", match: { channel: "whatsapp", peer: { kind: "direct", id: "+86139xxxx0002" } }, }, { agentId: "study", match: { channel: "whatsapp", peer: { kind: "direct", id: "+86136xxxx0003" } }, }, ],}
查看 Agent 运行状态
openclaw agents list --bindingsopenclaw channels status --probeopenclaw status
管理子代理
/subagents list # 查看所有活跃子代理/subagents kill 1 # 杀掉编号为1的子代理/subagents log 1 # 查看子代理的输出日志/subagents steer 1 "调整方向" # 引导子代理改变策略
会话管理
# 配置自动重置策略session: { reset: { mode: "daily", // 每天凌晨4点自动重置 atHour: 4, }, maintenance: { pruneAfter: "30d", // 超过30天的会话归档 maxEntries: 500, // 最多保留500条会话 },}
安全注意事项
底层逻辑是:不要让不同 Agent 共用 agentDir,否则会导致认证和会话冲突。
-
每个 Agent 应该有独立的工作区和状态目录 -
高危操作(exec/write/edit)应为特定 Agent 专门放行 -
开放给多人的 Agent 务必开启沙箱或限制工具集 -
把子代理的模型设置为较低成本的型号节省开销
OpenClaw 的多 Agent 体系,本质上是一套”AI 团队管理平台”:
-
通过多 Agent 实现分工——不同职责用不同的”大脑” -
通过路由绑定实现分发——消息自动找到对的人 -
通过子代理实现协作——主管统筹,专员执行 -
通过沙箱实现安全——该隔离的隔离,该开放的开放
从一个人对着一个 AI 发号施令,到拥有一支 AI 团队各司其职——这大概就是 OpenClaw 的核心魅力所在。
补充说明:
上面这些配置,如果你不想手工配的话,可以直接与OpenClaw进行自然语言对话,让OpenClaw自己配。
国内主要使用微信、钉钉、飞书、QQ等渠道,配置时相应修改即可。
钉钉官方文档:
https://docs.dingtalk.com/i/nodes/GZLxjv9VGGDA9Ro2uYjPbE4wV6EDybno?iframeQuery=view_mode%3Dnotable-record&belongNodeId=np9zOoBVBy2AdzEjunMbKdabW1DK0g6l&doc_type=wiki_doc
微信参考:
夜雨聆风