OpenClaw 多 Agent 实战指南

深入讲解如何在 OpenClaw 中创建和管理多个 AI Agent,打造你的智能助手团队

OpenClaw 多 Agent 实战指南

在上一篇文章中,我们介绍了 OpenClaw 的基础用法。但真正的强大之处在于它的多 Agent 系统——你可以创建多个具有不同性格、技能和职责的 AI 助手,协同工作。本文将详细介绍如何构建和管理多 Agent 系统。

为什么需要多 Agent?

单一 Agent 往往面临「全能但不精」的问题。多 Agent 架构让你可以:

  • 专业化分工 - 每个 Agent 专注于特定领域
  • 角色扮演 - 不同 Agent 有不同性格和语气
  • 协同工作 - Agent 之间可以相互调用
  • 场景隔离 - 不同场景使用不同 Agent

Agent 配置基础

2.1 默认 Agent 配置

查看当前配置:

openclaw config get agents

默认配置示例:

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "minimax-cn/MiniMax-M2.5"
      }
    },
    "list": [
      {
        "id": "main",
        "identity": {
          "name": "小光",
          "emoji": "✨"
        }
      }
    ]
  }
}

创建多个 Agent

3.1 在配置文件中定义

编辑 ~/.openclaw/openclaw.json

{
  "agents": {
    "list": [
      {
        "id": "main",
        "identity": {
          "name": "小光",
          "emoji": "✨"
        },
        "systemPrompt": "你是一个友善的 AI 助手,帮助用户解决日常问题。"
      },
      {
        "id": "coder",
        "identity": {
          "name": "码农",
          "emoji": "👨‍💻"
        },
        "systemPrompt": "你是一个资深程序员,专精于代码编写和调试。"
      },
      {
        "id": "writer",
        "identity": {
          "name": "写作助手",
          "emoji": "✍️"
        },
        "systemPrompt": "你是一个专业作家,擅长各种文风的写作。"
      }
    ]
  }
}

3.2 Agent 详细配置

每个 Agent 可以配置以下属性:

属性说明示例
id唯一标识符coder, writer
name显示名称码农
emoji头像 emoji👨‍💻
systemPrompt系统提示词定义 Agent 行为
model使用的模型可覆盖默认模型
skills绑定的技能["code", "debug"]

3.3 完整的 Agent 配置示例

{
  "id": "coder",
  "name": "专业程序员",
  "emoji": "👨‍💻",
  "model": {
    "primary": "minimax-cn/MiniMax-M2.5"
  },
  "systemPrompt": "你叫码农,是一个拥有 10 年开发经验的资深程序员。你擅长:\n\n1. 前端开发(React, Vue, TypeScript)\n2. 后端开发(Node.js, Python, Go)\n3. 数据库设计\n4. 代码优化\n\n回答问题时,要简洁清晰,代码要规范易懂。",
  "skills": [
    "web-search",
    "code-executor"
  ],
  "tools": {
    "allow": ["exec", "read", "browser"],
    "deny": ["delete", "write"]
  }
}

Agent 路由规则

4.1 按消息前缀切换

在对话中可以使用前缀切换 Agent:

@coder 帮我写一个 React 组件
@writer 帮我写一篇散文

4.2 按场景自动路由

配置自动路由规则:

{
  "agents": {
    "routing": {
      "rules": [
        {
          "pattern": ".*编程.*|.*代码.*|.*bug.*",
          "agent": "coder"
        },
        {
          "pattern": ".*写作.*|.*文章.*|.*文案.*",
          "agent": "writer"
        }
      ]
    }
  }
}

4.3 按群聊隔离

{
  "channels": {
    "telegram": {
      "groups": {
        "-1001234567890": {
          "agent": "coder"
        },
        "-1009876543210": {
          "agent": "writer"
        }
      }
    }
  }
}

Agent 间的协作

5.1 子 Agent 调用

在提示词中可以让主 Agent 调用其他 Agent:

当你遇到复杂的编程问题时,可以调用 @coder Agent 帮助解答。
当你需要写作帮助时,可以调用 @writer Agent。

5.2 任务分发

使用工具让 Agent 协同工作:

# 示例:创建任务分发 Agent
{
  "systemPrompt": "你是一个项目经理,根据用户需求分配任务给合适的 Agent:\n\n- 编程问题 → @coder\n- 写作需求 → @writer\n- 其他问题 → @main\n\n先理解用户需求,然后决定使用哪个 Agent。"
}

高级特性

6.1 Agent 记忆隔离

每个 Agent 可以有独立的记忆:

{
  "agents": {
    "list": [
      {
        "id": "coder",
        "memory": {
          "enabled": true,
          "scope": "agent"
        }
      }
    ]
  }
}

6.2 Agent 技能绑定

{
  "agents": {
    "list": [
      {
        "id": "coder",
        "skills": {
          "enabled": true,
          "list": [
            "code-analysis",
            "debug-helper",
            "code-review"
          ]
        }
      }
    ]
  }
}

6.3 Agent 限流

{
  "agents": {
    "list": [
      {
        "id": "coder",
        "rateLimit": {
          "messages": 10,
          "window": "1m"
        }
      }
    ]
  }
}

实用场景示例

7.1 客服团队

┌─────────────────┐
│   客服助手      │ ← 主 Agent
│   (接待分流)    │
└────────┬────────┘

    ┌────┴────┐
    ▼         ▼
┌───────┐ ┌───────┐
│ 技术  │ │ 业务  │
│ 支持  │ │ 咨询  │
└───────┘ └───────┘

配置:

{
  "agents": {
    "list": [
      {
        "id": "support",
        "name": "客服小助手",
        "systemPrompt": "你负责接待用户,根据问题类型分流:\n- 技术问题 → @tech_support\n- 业务问题 → @biz_support\n- 其他 → 自己回答"
      },
      {
        "id": "tech_support",
        "name": "技术支持",
        "systemPrompt": "你是技术专家,帮助用户解决技术问题。"
      },
      {
        "id": "biz_support",
        "name": "业务顾问",
        "systemPrompt": "你是业务顾问,回答用户的业务相关问题。"
      }
    ]
  }
}

7.2 学习助手

┌─────────────────┐
│   学习导师      │
│   (主 Agent)   │
└────────┬────────┘

    ┌────┴────┐
    ▼         ▼
┌───────┐ ┌───────┐
│ 英语  │ │ 数学  │
│ 老师  │ │ 老师  │
└───────┘ └───────┘

管理与监控

8.1 查看 Agent 状态

openclaw agents list

8.2 切换当前 Agent

在对话中:

/agent coder

8.3 监控 Agent 使用

openclaw status

最佳实践

  1. Agent 数量适中 - 建议 3-5 个,过多会增加复杂度
  2. 职责单一 - 每个 Agent 专注一件事
  3. 清晰的命名 - 让人一眼看出 Agent 用途
  4. 充分的提示词 - 这是 Agent 性格的关键
  5. 测试后再上线 - 先在私聊中测试完善

常见问题

Q: Agent 数量有上限吗?

A: 没有硬性上限,但建议控制在 10 个以内。

Q: 不同 Agent 可以用不同模型吗?

A: 可以,每个 Agent 都可以单独配置模型。

Q: Agent 之间可以共享记忆吗?

A: 可以,通过配置 memory.scopeshared

Q: 如何调试 Agent?

A: 使用 /debug 命令查看推理过程。

总结

多 Agent 系统是 OpenClaw 的强大特性,通过本文你应该已经掌握:

  • 创建多个 Agent
  • 配置 Agent 属性
  • 设置路由规则
  • 实现 Agent 协作
  • 高级特性使用

合理运用多 Agent 系统,可以让你的 AI 助手更智能、更专业!

有问题欢迎在评论区交流!🦞


相关阅读: