Skip to content
广告 · 本站推荐广告

多 Agent 路由

Multi-Agent(多 Agent)允许在单个 Gateway 上运行多个专业化 Agent,根据路由规则将消息分发到最合适的 Agent 处理。

基本概念

核心思想

每个 Agent 专注于特定领域。通过路由规则,用户的消息自动到达最合适的 Agent,无需手动切换。

用户消息


┌──────────────┐
│ Agent Router │
│  路由器      │
└──────┬───────┘

  ┌────┼────┬────────┐
  │    │    │        │
  ▼    ▼    ▼        ▼
┌────┐┌────┐┌──────┐┌────────┐
│通用││编程││写作  ││数据分析│
│助手││专家││助手  ││专家    │
└────┘└────┘└──────┘└────────┘

Agent 定义

在配置中声明多个 Agent:

yaml
agents:
  - name: general
    description: 通用助手,处理日常对话
    model: openai/gpt-4o
    workspace: ~/.openclaw/agents/general/
    
  - name: coder
    description: 编程专家,处理代码相关问题
    model: anthropic/claude-3-5-sonnet
    workspace: ~/.openclaw/agents/coder/
    
  - name: writer
    description: 写作助手,处理文案和内容创作
    model: deepseek/deepseek-chat
    workspace: ~/.openclaw/agents/writer/
    
  - name: analyst
    description: 数据分析专家
    model: openai/gpt-4o
    workspace: ~/.openclaw/agents/analyst/

路由规则

按渠道路由

yaml
routing:
  rules:
    - channel: telegram
      agent: general           # Telegram 消息发给通用助手
      
    - channel: discord
      server: "dev-server"
      agent: coder             # Discord 开发服务器发给编程专家
      
    - channel: whatsapp
      agent: writer            # WhatsApp 消息发给写作助手

按用户路由

yaml
routing:
  rules:
    - user: admin_user
      agent: coder             # 管理员的消息发给编程专家
      
    - user: marketing_team
      agent: writer            # 营销团队发给写作助手

按群组路由

yaml
routing:
  rules:
    - group: "dev-team"
      agent: coder             # 开发群组使用编程专家
      
    - group: "content-team"
      agent: writer            # 内容团队使用写作助手

默认路由

yaml
routing:
  default: general             # 无匹配规则时使用通用助手
  rules:
    - channel: discord
      agent: coder
    # 其他消息 → general

规则优先级

当多条规则匹配时,按以下优先级决定:

1. 用户 + 渠道 + 群组  (最具体)
2. 用户 + 渠道
3. 群组 + 渠道
4. 用户
5. 群组
6. 渠道
7. 默认路由              (最宽泛)

Agent 专业化

每个 Agent 通过工作区文件实现专业化:

markdown
# Coder Agent

You are an expert programmer.

## Specializations
- Code review and debugging
- Architecture design
- Performance optimization

## Rules
- Always provide executable code examples
- Include error handling
- Follow best practices for the language
markdown
# Writer Agent

You are a professional content writer.

## Specializations
- Blog posts and articles
- Marketing copy
- Technical documentation

## Rules
- Use clear, engaging language
- Maintain consistent tone
- Optimize for readability

会话隔离

完全隔离

不同 Agent 的会话完全隔离。用户与 coder Agent 的对话不会影响与 writer Agent 的对话。

用户 user_12345 的会话:
├── general::user_12345     → 通用助手会话
├── coder::user_12345       → 编程专家会话
└── writer::user_12345      → 写作助手会话

隔离范围:

资源是否隔离
对话历史✅ 完全隔离
工作区文件✅ 完全隔离
每日记忆✅ 完全隔离
长期记忆✅ 完全隔离
模型配置✅ 各自独立
技能加载✅ 各自独立

Agent 间通信

虽然会话隔离,但 Agent 之间可以通过消息转发进行协作:

yaml
# 允许 Agent 间转发消息
interAgentCommunication:
  enabled: true
  allowedPairs:
    - from: general
      to: coder              # 通用助手可以转发给编程专家
    - from: general
      to: writer             # 通用助手可以转发给写作助手

智能转发

通用助手可以识别用户意图,自动将编程问题转发给 coder Agent,将写作需求转发给 writer Agent。

用户切换 Agent

用户可以手动切换 Agent:

bash
# 切换到编程专家
/agent coder

# 切换到写作助手
/agent writer

# 查看可用 Agent
/agents

# 输出:
# AGENT     DESCRIPTION           MODEL
# general   通用助手 (当前)       openai/gpt-4o
# coder     编程专家              anthropic/claude-3-5-sonnet
# writer    写作助手              deepseek/deepseek-chat

🇨🇳 中国用户须知

  • 建议为不同 Agent 配置不同的模型以优化成本
  • 通用助手可使用国产模型(如 DeepSeek),编程助手使用 Claude
  • Agent 的 SOUL.md 可以使用中文定义,提升中文场景下的专业度

下一步

基于MIT协议开源 | 内容翻译自 官方文档,同步更新