AI创想

标题: OpenClaw 多智能体配置指南:多个 AI 助手协同工作 [打印本页]

作者: 创想小编    时间: 12 小时前
标题: OpenClaw 多智能体配置指南:多个 AI 助手协同工作
作者:陈振阳
原文: OpenClaw multi-agent setup with multiple AI assistants
翻译: 适用于 OpenClaw 用户的多智能体实战指南

OpenClaw 支持在一个 Gateway 进程中运行多个智能体,每个智能体都可以像独立的助手一样运行,拥有自己的文件、内存、认证和工具。
本指南从实践角度讲解多智能体配置。你会看到两种容易混淆的模式:
你可以同时使用这两种模式。常见的配置是一个主"协调器"智能体处理主要聊天,同时为并行任务生成子智能体。同时,你可以让其他持久化智能体绑定到独立的频道,各自独立运行。

OpenClaw 中"多智能体"的含义

OpenClaw 可以在一个 Gateway 进程中运行多个完全隔离的智能体。这里的"隔离"不是营销术语。每个智能体可以拥有自己的:
它们仍然共享同一个服务器进程和主配置文件,所以你不需要运行十个网关。只需运行一个网关,里面运行多个"大脑"。
如果你当前只是在几个频道上运行单个助手,可能不需要多智能体。一个配置良好的单智能体可以很好地处理 Slack、Telegram 和 Discord,并保持上下文清晰。当你需要真正的隔离、不同的工具策略或永远不应混合的独立内存时,多智能体才开始发挥作用。

解决不同问题的两种多智能体模式

持久化智能体 (Persistent Agents)

持久化智能体是长期运行的。你可以在配置中定义它们,或使用智能体向导创建。这些是你绑定到频道和聊天的智能体。
合理的示例:
子智能体 (Sub-agents)

子智能体是从运行中的对话生成的后台工作者。它们在自己的会话中运行,完成任务后发布结果。OpenClaw 在两个地方记录了这一点,值得一读:
子智能体非常适合并行研究和慢速工具任务。如果你的主智能体使用昂贵的模型,而子智能体使用更便宜或本地模型,子智能体还能帮助控制成本。

什么时候真正需要多个智能体

多智能体不是你必须勾选的复选框。它增加了复杂性。关键是要有明确的理由才添加智能体。
1. 不同的工具策略(安全性)

这是最重要的原因。例如,你希望个人助手拥有 exec 和文件系统访问权限,但不希望公共 Discord 机器人有 exec。使用独立的智能体,你可以通过每个智能体的工具允许和拒绝列表来强制执行这一点。
如果需要 OpenClaw 部署的安全上下文,请参考 OpenClaw 安全最佳实践。
2. 独立的内存和语气

内存很有用,但也会造成"泄露"。如果你的工作助手学习了一组偏好,而个人助手学习了另一组,最终会在语气、提醒或细节上出现奇怪的交叉。独立的智能体可以防止这种情况。
如果你还没有深入了解内存,请阅读 OpenClaw 内存详解。
3. 不同的模型和成本配置

有些人希望休闲聊天使用快速模型,深度工作使用较慢但更强的模型。多智能体让这变得清晰,因为每个智能体可以有自己的默认模型。子智能体也可以使用单独的默认模型,这是一个简单的成本优势。
如果需要在 OpenClaw 中选择 Claude 和 OpenAI 模型的帮助,我们有指南:Claude vs OpenAI 模型选择。

持久化智能体配置

"一个智能体"在磁盘上的组成

OpenClaw 分别存储特定于智能体的状态。即使你今天只运行一个智能体,了解布局也有助于调试。
大多数时候你只与工作区交互。那是你调整 SOUL.md 和 AGENTS.md 以及保存小型辅助文件的地方。
单智能体模式(适合大多数人)

在单智能体模式下,OpenClaw 默认使用主智能体和默认工作区。这对很多配置来说已经足够了。你可以将多个频道连接到同一个智能体,它会保持一致的行为。
在构建"团队"智能体之前,我建议先让一个智能体在所有频道上稳定运行。如果你在 WhatsApp 上运行 OpenClaw,请阅读 OpenClaw WhatsApp 生产配置。如果你使用多个频道,这很有帮助:OpenClaw 多频道配置。
使用向导创建智能体

智能体向导是最简单的路径,因为它搭建工作区并创建干净的智能体目录。它还降低了"两个智能体意外共享目录"的风险,这可能会破坏身份验证和会话历史。
  1. openclaw agents add work
  2. openclaw agents add coding
  3. openclaw agents add alerts
复制代码
然后列出它们:
  1. openclaw agents list --bindings
复制代码
--bindings 标志很有用,因为路由问题通常是绑定问题。
手动配置智能体示例

如果你更喜欢直接编写配置,一个最小示例如下。保持简单和明确,以后会省去麻烦。
  1. agents:list:-id:"main"default:truename:"Personal Assistant"workspace:"~/.openclaw/workspace"-id:"coding"name:"Coding Agent"workspace:"~/.openclaw/workspace-coding"model:primary:"anthropic/claude-sonnet-4-5"-id:"alerts"name:"Alerts"workspace:"~/.openclaw/workspace-alerts"model:primary:"openai/gpt-5.2-mini"
复制代码
编辑配置后,重启网关,然后再次运行 openclaw agents list --bindings。

绑定和路由:将消息路由到智能体

绑定是确定性的路由规则,告诉 OpenClaw 哪个智能体应该处理传入消息。绑定匹配规则很严格,通常遵循"最具体优先"的原则,这正是你想要的。
你关心的常见绑定字段:
避免意外的一般规则是:将最具体的绑定放在前面。如果你定义"所有 WhatsApp 都去 main",同时又定义"这个特定群组去 work",那么将群组绑定放在频道范围绑定之上。
WhatsApp 两个账号绑定到两个智能体

如果你有个人号码和商务号码,这是一个干净的模式。
  1. openclaw channels login --channel whatsapp --account personal
  2. openclaw channels login --channel whatsapp --account biz
复制代码
  1. agents:list:-id:"home"default:truename:"Home"workspace:"~/.openclaw/workspace-home"-id:"work"name:"Work"workspace:"~/.openclaw/workspace-work"bindings:-agentId:"home"match:channel:"whatsapp"accountId:"personal"-agentId:"work"match:channel:"whatsapp"accountId:"biz"
复制代码
如果你想让个人账号上的一个特殊群组路由到 work,在频道范围绑定之上添加 peer 绑定。
WhatsApp 一个号码,多人通过私聊分开

这是一个 surprisingly common 的家庭配置。你将每个私聊 peer ID 绑定到单独的智能体,这样每个人都获得隔离的内存。
  1. agents:list:-id:"alex"workspace:"~/.openclaw/workspace-alex"-id:"mia"workspace:"~/.openclaw/workspace-mia"bindings:-agentId:"alex"match:channel:"whatsapp"peer:kind:"direct"id:"+15551230001"-agentId:"mia"match:channel:"whatsapp"peer:kind:"direct"id:"+15551230002"channels:whatsapp:dmPolicy:"allowlist"allowFrom:["+15551230001","+15551230002"]
复制代码
allowlist 很重要。没有它,你基本上是在个人号码上运行公共机器人。很快就会变得奇怪。
Telegram 两个机器人和两个智能体

Telegram 非常适合在"聊天"和"警报"之间拆分,因为机器人令牌便宜且路由简单。
  1. channels:telegram:accounts:default:botToken:"123456:ABC..."dmPolicy:"pairing"alerts:botToken:"987654:XYZ..."dmPolicy:"allowlist"allowFrom:["tg:123456789"]bindings:-agentId:"main"match:channel:"telegram"accountId:"default"-agentId:"alerts"match:channel:"telegram"accountId:"alerts"
复制代码
如果需要设置 Telegram 本身的帮助,这两个很有用:连接 OpenClaw 到 Telegram BotFather 和 BotFather 命令优化。
Discord 每个智能体独立的机器人账号

Discord 多智能体通常意味着多个机器人令牌。这比试图在一个机器人中路由所有内容更干净,因为你在频道账号级别获得分离。
如果你想要 Discord 频道基础知识,这个指南是个好的开始:连接 OpenClaw 到 Discord。
概念上配置如下:
  1. agents:list:-id:"main"workspace:"~/.openclaw/workspace-main"-id:"coding"workspace:"~/.openclaw/workspace-coding"bindings:-agentId:"main"match:channel:"discord"accountId:"default"-agentId:"coding"match:channel:"discord"accountId:"coding"channels:discord:accounts:default:token:"DISCORD_BOT_TOKEN_MAIN"coding:token:"DISCORD_BOT_TOKEN_CODING"
复制代码
然后为每个机器人账号限定允许的服务器和频道。这样你的编码机器人只看到编码房间。这是一个简单的安全优势。
Slack 作为"工作智能体"边界

Slack 是绑定仅限工作智能体的自然场所,因为你可以保持专业、保持内存严格与工作相关,并锁定其工具。如果之前没有连接过 Slack,请使用 OpenClaw Slack 集成。

每个智能体的工具和沙箱设置

每个智能体的工具限制是让多智能体对很多人来说值得的功能。它让你可以说"这个智能体可以阅读和总结"和"这个智能体可以运行命令",而不混合它们。
每个智能体配置通常如下:
  1. agents:list:-id:"personal"workspace:"~/.openclaw/workspace-personal"sandbox:mode:"off"-id:"family"name:"Family Bot"workspace:"~/.openclaw/workspace-family"sandbox:mode:"all"scope:"agent"docker:setupCommand:"apt-get update && apt-get install -y git curl"tools:allow:["read","exec"]deny:["write","edit","apply_patch","browser","cron"]
复制代码
三个实用说明:

智能体间通信

如果你启用了智能体间工具,持久化智能体可以相互通信。默认情况下这不是"多智能体"。这是可选的。这是一个好的设计选择,否则智能体可能成为意外的数据桥梁。
启用后,主要构建块是 sessions_send 用于乒乓通信,以及允许列表,这样你可以限制哪些智能体 ID 可以被定位。社区关于智能体消息的讨论提到,智能体间默认被限制为少量回合,并由允许列表控制。社区讨论。
示例:
  1. tools:agentToAgent:enabled:trueallow:["home","work","coding"]
复制代码
我的建议很简单。只有当你有明确的工作流需要时才启用这个。对于大多数配置,子智能体就足够了。

子智能体和并行工作

子智能体是从持久化智能体生成的后台运行。它们在隔离的会话中运行,完成后将结果发布回来。该行为在会话工具页面的 sessions_spawn 中有记录。OpenClaw 会话工具。
OpenClaw 还将用户命令记录为 /subagents spawn,并澄清它启动后台子智能体并向请求者发送最终完成更新。OpenClaw 子智能体。
适合子智能体的用例

我喜欢子智能体的一点是,它们保持主会话干净。如果子智能体产生噪音,该噪音会保留在其自己的转录中。
生成子智能体
  1. /subagents spawn task="研究最新 AI 新闻"model="openai/gpt-4o-mini"
复制代码
或者在代码中:
  1. # 使用 sessions_spawn
  2. result = sessions_spawn(
  3.     task="分析这个 GitHub 仓库",
  4.     mode="run",# 一次性运行
  5.     model="cheaper-model")
复制代码

实际部署建议

推荐配置
  1. # 生产环境推荐agents:list:# 主智能体 - 处理日常聊天-id:"main"default:trueworkspace:"~/.openclaw/workspace-main"model:primary:"anthropic/claude-sonnet-4"# 编码智能体 - 专门处理编程任务-id:"coding"workspace:"~/.openclaw/workspace-coding"model:primary:"anthropic/claude-sonnet-4-5"tools:allow:["read","write","exec","browser"]# 警报智能体 - 只发送通知-id:"alerts"workspace:"~/.openclaw/workspace-alerts"model:primary:"openai/gpt-4o-mini"tools:allow:["read"]deny:["exec","write","edit"]bindings:# 最具体的绑定放在前面-agentId:"coding"match:channel:"discord"guildId:"123456789"-agentId:"alerts"match:channel:"telegram"accountId:"alerts"-agentId:"main"match:channel:"whatsapp"
复制代码
安全最佳实践


常见问题

Q: 我需要多智能体吗?

A: 如果你只是个人使用,单个智能体可能就够了。考虑多智能体的情况:
Q: 子智能体和持久化智能体有什么区别?

A:
Q: 智能体间通信安全吗?

A: 默认禁用,需要明确启用。启用时使用允许列表限制可以通信的智能体 ID。建议只有在有明确工作流需要时才启用。
Q: 如何调试路由问题?

A:

总结

OpenClaw 的多智能体系统提供了灵活的架构,可以根据你的需求进行定制:
关键原则:

相关资源

翻译于 2026-02-26 | 原文作者:LumaDock | 翻译仅供参考,请以官方文档为准

原文地址:https://blog.csdn.net/chen517611641/article/details/158431213




欢迎光临 AI创想 (http://llms-ai.com/) Powered by Discuz! X3.4