Administrator
发布于 2026-03-12 / 29 阅读
0
0

OpenClaw Agent to Agent 完全指南

从单兵作战到团队协作,打造你的 AI 虚拟团队


一、什么是 Agent to Agent?

核心概念

传统模式:用户 → 单个 AI → 用户

Agent to Agent 模式:
用户 → 主Agent → 专家Agent A
              → 专家Agent B
              → 专家Agent C
              ← 协作结果 ← 用户

OpenClaw 支持的两种模式

模式说明适用场景
子代理 (Sub-agent)临时创建,任务完成后销毁简单任务拆分
多 Agent 团队独立运行的多个 Agent 实例长期协作、角色分工

二、A2A 协议(Agent2Agent)

什么是 A2A?

A2A(Agent2Agent)是 OpenClaw 支持的开放协议,让不同 AI Agent 可以:

  • 相互通信:Agent 间发送消息
  • 交换信息:共享上下文和数据
  • 协调任务:分工协作完成复杂任务

A2A 协议已被 Linux Foundation 接纳,150+ 组织支持

架构图

┌─────────────────────────────────────────────────────────────────┐
│                      A2A Protocol Layer                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   ┌─────────┐     ┌─────────┐     ┌─────────┐                  │
│   │ Agent A │ ←→  │ Agent B │ ←→  │ Agent C │                  │
│   │ (主控)   │     │ (写作)   │     │ (编码)   │                  │
│   └────┬────┘     └────┬────┘     └────┬────┘                  │
│        │               │               │                        │
│        └───────────────┼───────────────┘                        │
│                        ▼                                        │
│   ┌─────────────────────────────────────────────────────────┐  │
│   │              Shared Context (共享上下文)                 │  │
│   │  • 任务队列    • 结果共享    • 状态同步                  │  │
│   └─────────────────────────────────────────────────────────┘  │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

三、多 Agent 架构方案

方案对比

方案隔离级别配置复杂度成本适用场景
A. 单 Agent 多 Session💰个人使用
B. 多 Agent 软隔离⭐⭐💰💰团队使用(推荐)
C. Docker Sandbox⭐⭐⭐💰💰💰企业级安全
D. 多 Gateway 硬隔离最高⭐⭐⭐⭐💰💰💰💰金融/医疗

四、方案 B:多 Agent 软隔离(推荐)

架构图

┌─────────────────────────────────────────────────────────────────┐
│                    单一 Gateway 实例                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   Telegram/Discord/飞书                                          │
│         │                                                        │
│         ▼                                                        │
│   ┌─────────────┐                                                │
│   │   Router    │  根据 channel/peer 路由到不同 Agent            │
│   └──────┬──────┘                                                │
│          │                                                       │
│    ┌─────┴─────┬─────────────┬─────────────┐                    │
│    ▼           ▼             ▼             ▼                    │
│ ┌──────┐  ┌──────┐      ┌──────┐      ┌──────┐                 │
│ │main  │  │writer│      │coder │      │brain │                 │
│ │主控  │  │写作   │      │编码   │      │头脑  │                 │
│ │Agent │  │Agent │      │Agent │      │Agent │                 │
│ └──────┘  └──────┘      └──────┘      └──────┘                 │
│    │           │             │             │                    │
│    │    独立 workspace  独立 workspace  独立 workspace            │
│    │    独立 memory     独立 memory     独立 memory              │
│    │                                                        │
│    └─────────────────────────────────────────────────────────┘  │
│                       sessions_send 互通                        │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

具体配置步骤

步骤 1:创建多个 Agent

# 创建主控 Agent
openclaw agents add main \
  --model anthropic/claude-sonnet-4-6 \
  --workspace ~/.openclaw/workspace-main

# 创建写作 Agent(使用 DeepSeek 省钱)
openclaw agents add writer \
  --model deepseek/deepseek-chat \
  --workspace ~/.openclaw/workspace-writer

# 创建头脑风暴 Agent
openclaw agents add brainstorm \
  --model zhipu/glm-4-flash \
  --workspace ~/.openclaw/workspace-brainstorm

# 创建编码 Agent
openclaw agents add coder \
  --model anthropic/claude-sonnet-4-6 \
  --workspace ~/.openclaw/workspace-coder

# 查看所有 Agent
openclaw agents list

步骤 2:配置路由规则

// ~/.openclaw/openclaw.json
{
  "agents": {
    "main": {
      "model": "anthropic/claude-sonnet-4-6",
      "workspace": "~/.openclaw/workspace-main"
    },
    "writer": {
      "model": "deepseek/deepseek-chat",
      "workspace": "~/.openclaw/workspace-writer"
    },
    "brainstorm": {
      "model": "zhipu/glm-4-flash",
      "workspace": "~/.openclaw/workspace-brainstorm"
    },
    "coder": {
      "model": "anthropic/claude-sonnet-4-6",
      "workspace": "~/.openclaw/workspace-coder"
    }
  },
  "routing": {
    "rules": [
      {
        "agentId": "main",
        "match": {
          "channel": "telegram",
          "peer": { "kind": "user", "id": "your-user-id" }
        }
      },
      {
        "agentId": "writer",
        "match": {
          "channel": "telegram",
          "peer": { "kind": "group", "id": "writer-group-id" }
        }
      },
      {
        "agentId": "coder",
        "match": {
          "channel": "discord",
          "peer": { "kind": "channel", "id": "dev-channel-id" }
        }
      }
    ],
    "default": "main"
  }
}

步骤 3:配置 SOUL.md(角色定义)

main Agent 的 SOUL.md

# 主控 Agent

## 身份
你是团队的协调者,负责分配任务和整合结果。

## 团队成员
- **writer**: 擅长内容创作、文案撰写
- **coder**: 擅长代码编写、技术问题
- **brainstorm**: 擅长头脑风暴、创意生成

## 工作流程
当收到复杂任务时:
1. 分析任务类型
2. 调用对应的专家 Agent
3. 整合结果返回给用户

## 调用示例
使用 sessions_send 工具:

sessions_send(
agentId: "writer",
message: "请写一篇关于 AI Agent 的文章"
)

writer Agent 的 SOUL.md

# 写作 Agent

## 身份
你是一名专业的内容创作者,擅长各类文案写作。

## 专长
- 技术文章
- 营销文案
- 产品描述
- 邮件撰写

## 输出格式
- 结构清晰
- 语言精炼
- 适合目标受众

五、Agent 间通信

使用 sessions_send

# 主 Agent 调用专家 Agent

# 1. 发送任务给写作 Agent
result = sessions_send(
    agentId="writer",
    message="请帮我写一段 OpenClaw 多 Agent 功能介绍,100字左右"
)

# 2. 发送任务给编码 Agent
code_result = sessions_send(
    agentId="coder",
    message="请写一个 Python 函数,实现 sessions_send 功能"
)

# 3. 汇总结果返回用户
final_response = f"""
写作 Agent 的输出:
{result}

编码 Agent 的输出:
{code_result}
"""

使用 sessions_spawn(创建临时子代理)

# 创建临时子代理处理特定任务
sub_agent = sessions_spawn(
    model="deepseek/deepseek-chat",
    task="分析这段代码的性能瓶颈",
    context=current_code
)

# 子代理完成后自动销毁

六、实战案例

案例 1:内容生产流水线

用户:帮我写一篇关于 AI Agent 的技术博客

main Agent:
  ↓ 调用 brainstorm
brainstorm:生成 5 个选题角度
  ↓ 返回 main
main Agent:选择最佳角度
  ↓ 调用 writer
writer:撰写完整文章
  ↓ 调用 coder(如需代码示例)
coder:生成代码示例
  ↓ 返回 main
main Agent:整合输出给用户

案例 2:代码审查团队

用户:帮我审查这个 PR

main Agent:
  ↓ 调用 coder
coder:分析代码逻辑
  ↓ 调用 writer
writer:生成审查报告
  ↓ 返回 main
main Agent:输出审查意见

案例 3:多渠道客服

# 配置示例
agents:
  sales:
    match:
      channel: telegram
      peer: sales_group
    role: 销售咨询
    
  support:
    match:
      channel: discord
      peer: support_channel
    role: 技术支持
    
  main:
    default: true
    role: 总控路由

七、进阶技巧

1. 动态 Agent 选择

在 main Agent 的 SOUL.md 中配置:

## 任务路由规则

根据用户意图自动选择专家:

| 关键词 | 路由到 | 示例 |
|--------|--------|------|
| 写、文章、文案 | writer | "帮我写一篇..." |
| 代码、bug、API | coder | "帮我写代码..." |
| 想法、创意、头脑风暴 | brainstorm | "帮我想想..." |
| 其他 | main 自己处理 | - |

2. 记忆隔离与共享

# 记忆配置
memory:
  isolation: true  # 每个 Agent 独立记忆
  
  # 可选:共享某些记忆
  shared:
    - project_context.md  # 项目背景共享
    - user_preferences.md # 用户偏好共享

3. 成本优化

# 模型选择策略
agents:
  main:
    model: anthropic/claude-sonnet-4-6  # 主控用强模型
    
  writer:
    model: deepseek/deepseek-chat  # 写作用便宜模型
    
  coder:
    model: anthropic/claude-sonnet-4-6  # 编码需要强模型
    
  brainstorm:
    model: zhipu/glm-4-flash  # 头脑风暴用快速模型

4. Token 消耗减半技巧

## 主 Agent 的省 Token 策略

1. 简单任务:直接回答,不调用专家
2. 复杂任务:只传递关键信息给专家
3. 结果整合:只返回用户关心的部分
4. 使用 sessions_spawn:临时子代理不保留记忆

示例:
用户问"今天天气"→ main 直接回答
用户问"写一篇深度文章"→ 调用 writer

八、配置速查表

常用命令

# 创建 Agent
openclaw agents add <name> --model <model> --workspace <path>

# 列出所有 Agent
openclaw agents list

# 删除 Agent
openclaw agents remove <name>

# 切换当前 Agent
openclaw agents use <name>

# 查看 Agent 状态
openclaw agents status <name>

# 重启所有 Agent
openclaw gateway restart

工具权限配置

{
  "tools": {
    "allow": [
      "sessions_send",      // 允许 Agent 间通信
      "sessions_spawn",     // 允许创建子代理
      "agents_list",        // 允许查看 Agent 列表
      "memory_search",      // 允许搜索记忆
      "memory_get"          // 允许获取记忆
    ]
  }
}

九、常见问题

Q: Agent 之间如何共享上下文?

# 方式 1:通过 message 传递
sessions_send(
    agentId="writer",
    message=f"基于以下内容继续写作:{current_context}"
)

# 方式 2:使用共享文件
write("~/.openclaw/workspace-shared/context.md", shared_context)
# 然后 writer Agent 可以读取该文件

Q: 多 Agent 会增加 Token 消耗吗?

会,但可以通过策略优化:

1. 选择合适的模型(便宜模型处理简单任务)
2. 只传递必要信息
3. 使用临时子代理(不保留记忆)
4. 设置 Agent 超时自动终止

实测:优化后 Token 消耗可减少 30-50%

Q: 如何让不同群的 Agent 协作?

// Telegram 群 A 的 Agent 可以调用 Discord 频道 B 的 Agent
{
  "crossChannel": {
    "enabled": true,
    "allowList": ["telegram:group-a", "discord:channel-b"]
  }
}

Q: 子代理和独立 Agent 有什么区别?

特性子代理 (Sub-agent)独立 Agent
生命周期临时,任务完成销毁持久运行
记忆无独立记忆独立 workspace
成本按任务计费持续运行成本
适用场景一次性任务长期角色分工

十、参考资源

官方文档

社区资源

视频教程

  • "我的龙虾小队学会了合作" - YouTube
  • "9分钟OpenClaw Telegram多智能体配置保姆级教程"

快速开始

# 1. 创建你的第一个多 Agent 团队
openclaw agents add main --model claude-sonnet-4-6
openclaw agents add writer --model deepseek/deepseek-chat

# 2. 配置路由
# 编辑 ~/.openclaw/openclaw.json

# 3. 重启服务
openclaw gateway restart

# 4. 在 Telegram/Discord 测试
# 不同群消息会路由到不同 Agent

你的 AI 团队就这么简单! 🦞🦞🦞


评论