OpenClaw(龙虾) 进阶:AI Agent团队协同的原理与使用

在构建复杂的 AI Workflow 时,依赖单一的大模型或单一的 Agent,通常难以兼顾不同领域的专业性。上下文一长,AI 就容易“失忆”或“越界”。

趋势必然是多 Agent 协同作业(Multi-Agent)——让负责调度的“老板”、负责写代码的“技术专家”和负责搜集信息的“情报员”各司其职,通过标准的协议进行串联、并联。

1.png

上篇文章我们介绍了多Agent的配置与接入,这里将拆解 OpenClaw 的多 Agent 协作机制,将上篇文章所创建的三个Agent,组建成为一支“数字”团队。

注意,这里使用的是点对点平级的Agent,不是主从/派生Agent。不适合真实公司一个Gateway多用户共用的情况,可能会有数据泄露的情况。

01 | 核心协作机制:Agent 们是如何沟通的?

在 OpenClaw 中,Agent 之间的通讯并非黑盒,而是建立在极其严谨的会话隔离(Session Isolation)与分发机制之上,从根本上杜绝了信息串扰。

  • 唯一标识符(agentId):定义 Agent 时,必须确保所有的 agentId 都是小写(例如:code-agent, news-agent, main),这是系统精准路由请求、建立独立上下文队列的基础。
  • 指令流转路径:当你向 Agent X 下达复杂任务时,X 会通过内置工具 sessions_send 唤起专业的 Agent T 协助。Agent T 在自己的“独立沙箱”中完成工作流后将结果返回,最后由 Agent X 汇总交付。
  • 会话隔离与穿透:默认情况下,每个 Agent 处于绝对的上下文隔离中,只关注自己的目标。如果调度者需要跨 Agent 查看历史会话,必须通过 sessions_spawnsessions_history 工具显式调用。

02 | 权限边界与安全隔离

在多 Agent 协作的架构中,越权调用(比如让新闻助理拥有执行 Shell 脚本的权限)可能会带来灾难性的安全风险。OpenClaw 提供了细粒度的能力控制方案(Capability-based permissions): 2.png

1. 开启点对点通讯白名单 我们需要明确告知系统,哪些 Agent 允许直接对话。在配置中定义通讯白名单:

"tools": {
  "agentToAgent": {
    "enabled": true,
    "allow": ["code-agent", "news-agent", "main"]
  }
}

2. 设定会话可见度(Session Visibility) 为了防止非必要的信息干扰,可以控制 Agent 是否能“偷听”全局对话:

"tools": {
  "sessions": {
    "visibility": "all"  // agent仅可见自身会话,设置为 "all" 则全局可见
  }
}

3. 严格的工具权限控制(Deny 优先原则) 根据岗位职责限制 Agent 能使用的工具。注意:在 OpenClaw 中,deny 的优先级永远高于 allow 例如,“新闻资讯助理”只需要查阅和发送消息,必须明确禁用其系统操作权限:

{
  "id": "news-agent",
  "name": "新闻资讯助理",
  "tools": {
    "allow": ["sessions_list", "sessions_send", "read"],
    "deny": ["write", "edit", "exec", "apply_patch", "bash"] 
  }
}

03 | 内外兼修的解耦架构:身体 与 大脑

OpenClaw 将 Agent 的“物理运行环境”与“灵魂认知记忆”做了彻底的解耦。这种计算与状态分离的设计,使动态扩展多 Agent 变得非常轻量。每个 Agent 实体由两部分核心目录构成:

🛠 一、 agentDir (物理配置层 - Body)

默认路径: ~/.openclaw/agents/<agentId>/agent/ 这里是 Agent 的“躯壳”,负责最基础的工程接入与鉴权。

  • auth-profiles.json:存放各类 API Keys、数据库密码等敏感认证凭证。
  • models.json:定义该 Agent 调用的基座大模型(例如:主节点用复杂推理模型,子节点用低延迟的快模型)。

🧠 二、 Workspace (认知记忆层 - Brain)

默认路径: ~/.openclaw/workspace-<name>/ 这是 Agent 的核心“大脑”。在这个目录中,通过一系列纯文本的 .md 文件定义了 Agent 的运行时状态:

  • 身份设定SOUL.md (系统提示词、人格特性)、IDENTITY.md (名称、头像)
  • 行为规范AGENTS.md (行为规则、工作流、具体职责、擅长什么)、USER.md (主人的偏好)
  • 知识与生命周期MEMORY.md (长期记忆区)、HEARTBEAT.md (定时主动任务清单)

关注点: agentDir 决定了“用什么算力和密钥”,而 Workspace 决定了“它是谁、它懂什么、它该和谁协同”。不要在不同的 Agent 之间复用同一个 agentDir,这会导致 Auth 和 Session 严重冲突!

文件作用
AGENTS.mdagent 的行为规则、工作流、具体职责、擅长什么
SOUL.mdagent 的身份人格、性格
USER.md用户偏好、上下文
IDENTITY.mdagent 名称、emoji、头像
TOOLS.md本地工具配置(相机、SSH 等)
HEARTBEAT.md定时检查任务清单
MEMORY.md长期记忆
memory/每日笔记文件夹
skills/技能文件夹
BOOTSTRAP.md首次运行引导(执行后删除)

04 | 实战演练:组建你的三剑客团队

让团队无缝协同,最关键的是为每个 Agent 注入专属的灵魂(SOUL.md),并在 AGENTS.md 中写明团队的“路由表”和“协作边界”。

下面配置一个由“老板、技术专家、情报助理”组成的三人微型团队。

权限配置

修改openclaw.json文件,定义允许相互通讯的Agent,设置sessions对话全局可见。 visibility:agent 仅可见自身会话,设置为 "all" 则全局可见,可选值:self、tree、agent、all

"tools": {
 "agentToAgent": {
   "enabled": true,
   "allow": ["code-agent", "news-agent", "main"]
 },
 "sessions": {
   "visibility": "all"
 }
}

角色一:main(老板 / 任务调度中枢)

Workspace 路径: /root/.openclaw/workspace-main/

作为整个工作流的控制节点,main 负责接收你的自然语言需求,并将其拆解分发。

【注入灵魂:SOUL.md】

# SOUL.md - main
我是小飞本,团队领导,负责协调团队任务分发。
我的性格:高效、冷静。
负责团队协调、任务调度和进度追踪。遇到需要具体执行的任务,请毫不犹豫地分配给对应的专业 Agent。
团队通讯录在 AGENTS.md 中。

【团队通讯录与路由:AGENTS.md】

# AGENTS.md - 团队通讯录与任务调度规则

## 团队成员
- **newsAgent** (agentId: news-agent) - 职责:行业资讯抓取、信息总结。
- **main** (你-agentId: main) - 职责:团队管理、任务分发。
- **codeAgent** (agentId: code-agent) - 职责:代码编写与审查、系统架构设计。

## 任务调度规则
| 任务类型 | 目标 Agent | 调用语法示例 |
|---------|----------|---------|
| 资讯抓取/总结 | news-agent | `sessions_send(agentId="news-agent", task="...")` |
| 代码/技术支持 | code-agent | `sessions_send(agentId="code-agent", task="...")` |

## 工作流约束
不要自己写代码或抓取网页!必须通过 `sessions_send` 将专业任务委派给对应的 Agent,并等待其返回结果后再汇报给用户。


角色二:codeAgent(底层技术专家)

Workspace 路径: /root/.openclaw/workspace-code/

【注入灵魂:SOUL.md】

# SOUL.md - code-agent
你是团队的首席技术专家。
性格:严谨、极客、专注于最佳实践。
职责:代码编写、审查、技术方案设计及 Bug 修复。当你收到代码需求时,必须提供可直接运行、包含清晰注释的代码片段。必要时允许使用本地工具链进行测试。

【团队通讯录与协作边界:AGENTS.md】

# AGENTS.md - 团队成员与协作边界

- **main** (调度中枢/老板) - 你的直接汇报对象。当你完成脚本编写、组件开发或底层架构设计后,请将代码结果、测试覆盖情况和运行日志准确无误地汇报给它。
- **codeAgent** (你 - 技术专家) - 负责底层代码实现与 Review。
- **newsAgent** (情报助理) - 你不需要主动联系它,除非涉及资讯抓取爬虫的代码维护,或者它主动向你报告工具运行报错。


角色三:newsAgent(外部信息触角)

Workspace 路径: /root/.openclaw/workspace-news/

【注入灵魂:SOUL.md】

# SOUL.md - news-agent
你是团队的情报助理。
性格:敏锐、客观、信息处理速度极快。
职责:只负责全网行业资讯的抓取、清洗与聚合。你需要过滤噪音,并将冗长的网页文本转化为结构化的简报返回给调度者。

【团队通讯录与协作边界:AGENTS.md】

# AGENTS.md - 团队成员与协作边界

- **main** (调度中枢/老板) - 你的唯一业务汇报对象。请将抓取、清洗并结构化处理好的行业资讯简报(去除广告和冗余噪音)直接发送给它。
- **codeAgent** (技术专家) - 你的技术后盾。如果你的资讯抓取脚本失效,或遭遇反爬虫策略导致工具报错,可以通过 `sessions_send` 向它求助,要求它提供修复方案或更新代码。
- **newsAgent** (你 - 情报助理) - 专注全网资讯处理与降噪,不参与任何系统级别的代码修改。

4.png

结语

** 为不同 Agent 绑定不同的通讯渠道 (Channel Binding)** OpenClaw 支持将不同的 Agent 绑定到不同的通讯软件账号上。例如:你可以将 main 调度者绑定到你的个人 QQ 账号,而将 codeAgent 作为一个专门的机器人绑定到你们团队的 飞书 频道中。通过同一个 Gateway 服务,实现多渠道、多身份的无缝切换。

多 Agent 的魅力就在于此:将复杂的长逻辑链条,拆解为多个高内聚、低耦合的专业节点异步协作。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×