找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1850

积分

0

好友

242

主题
发表于 1 小时前 | 查看: 3| 回复: 0

假设你是一个独立开发者,正在开发一个新功能。传统流程往往需要你一个人分饰多个角色:先理解需求,然后设计架构,接着写代码,写完自测,最后发布。不仅效率低下,在多个角色间来回切换,思路也容易混乱。

试想一下,如果每个环节都有专人负责呢?比如需求分析师专门撰写需求文档,开发者专注编写实现,测试工程师负责验证,代码审查员把控质量。OpenClaw 的多 Agent 协作框架,正是让 AI 来扮演这些专业角色,实现从需求到代码的自动化工作流。

OpenClaw多Agent协作架构图

图 1:OpenClaw 多 Agent 协作核心架构

1. 核心概念

OpenClaw 是一个开源的 AI Agent 框架,其核心能力在于 多 Agent 协作。它允许你创建多个具有不同角色的 Agent,通过任务派发和结果回调,构建复杂的自动化流程。

理解以下几个关键概念至关重要:

  • Agent:一个完全独立的智能体,拥有自己的工作空间、记忆和配置。
  • Multi-Agent Routing:多个 Agent 并行存在,通过路由规则进行消息隔离。
  • Sub-Agents:一个 Agent 可以调用另一个 Agent,形成主从协作关系。
  • Skills:每个 Agent 可以配置专属技能,如执行特定脚本或调用 API。
  • Bindings:定义消息路由规则,决定哪个来源的消息由哪个 Agent 处理。

这套系统尤其适合需要多角色、流程化协作的场景,例如内容生产流水线、代码研发流程或数据分析管道。

2. 两种协作模式对比

OpenClaw 提供了两种主要的多 Agent 协作模式,适用于不同的场景。

模式一:Multi-Agent Routing(隔离路由)

  • 核心机制:消息路由
  • 工作方式:多个 Agent 完全独立运行,通过 Bindings 规则将消息路由到指定的 Agent。
  • 典型场景
    • 家庭 Agent 与工作 Agent(同一平台的不同账号)。
    • 不同客户的专属 Agent(同一平台的不同群组)。
  • 示例配置
    {
    agents: {
    list: [
      { id: "home", workspace: "~/.openclaw/workspace-home" },
      { id: "work", workspace: "~/.openclaw/workspace-work" }
    ]
    },
    bindings: [
    { agentId: "home", match: { channel: "feishu", accountId: "personal" } },
    { agentId: "work", match: { channel: "feishu", accountId: "company" } }
    ]
    }
  • 特点:Agent 之间完全隔离,互不调用。

模式二:Sub-Agents(协作调用)

  • 核心机制:任务派发和回调
  • 工作方式:一个主 Agent(Director)通过 sessions_spawn 工具调用其他 Agent,并等待结果返回。
  • 典型场景
    • Director(项目经理)+ 需求分析师 + 开发者(研发流程)。
    • 数据分析师 + 数据采集员(数据处理管道)。
  • 示例调用
    {
    "task": "分析这个需求并生成技术方案",
    "agentId": "analyst",
    "mode": "run",
    "runTimeoutSeconds": 600
    }
  • 特点:Agent 之间有明确的协作关系,支持嵌套调用(最多 2 层)。

如何选择?

场景 推荐模式 原因
多用户隔离 Multi-Agent Routing 每个用户需要独立的记忆和配置
多账号管理 Multi-Agent Routing 不同账号完全隔离,互不影响
任务流水线 Sub-Agents 需要上下游协作,结果传递
角色分工 Sub-Agents 不同角色完成不同环节,主 Agent 协调

对于本文重点介绍的研发流程自动化,Sub-Agents 模式 是更合适的选择,因为它天然支持角色间的协作与数据流转。

Multi-Agent Routing与Sub-Agents模式对比图

图 2:两种协作模式对比

3. 实战:搭建5角色研发协作系统

接下来,我们一步步搭建一个完整的研发协作系统,包含 5 个 Agent:

  1. Director:项目调度,负责任务分发与汇总。
  2. Requirement Analyst:需求分析师,生成 PRD 和 API 设计。
  3. Developer:开发者,根据文档编写代码。
  4. Code Reviewer:代码审查员,审查代码质量和安全性。
  5. Tester:测试工程师,编写并执行测试用例。

3.1 架构设计

我们采用 三层架构

  • 交互层:飞书群组,作为用户与系统交互的入口。
  • 调度层:Director Agent,负责任务的接收、拆解、分发和结果汇总。
  • 执行层:4 个专业 Agent,各司其职,专注完成单一任务。

工作流如下:

用户提出需求
  ↓
Director 接收并分析
  ↓
调用 Requirement Analyst → 生成需求文档
  ↓
调用 Developer → 生成代码
  ↓
调用 Code Reviewer → 审查代码
  ↓
调用 Tester → 执行测试
  ↓
Director 汇总结果 → 返回给用户

三层协作架构图:交互层、调度层、执行层

图 3:系统三层架构示意图

3.2 配置文件结构与初始化

步骤1:创建 Agent 工作空间
使用 OpenClaw 命令创建所需的 5 个 Agent。每个 Agent 会自动获得独立的工作空间、状态目录和会话存储。

openclaw agents add director
openclaw agents add analyst
openclaw agents add developer
openclaw agents add reviewer
openclaw agents add tester

步骤2:配置主配置文件 openclaw.json
这是系统的核心配置,定义了所有 Agent 及其协作规则。

// ~/.openclaw/openclaw.json
{
  agents: {
    list: [
      {
        id: "director",
        name: "项目调度",
        default: true,
        workspace: "~/.openclaw/workspace-director",
        agentDir: "~/.openclaw/agents/director/agent"
      },
      {
        id: "analyst",
        name: "需求分析师",
        workspace: "~/.openclaw/workspace-analyst",
        agentDir: "~/.openclaw/agents/analyst/agent"
      },
      {
        id: "developer",
        name: "开发者",
        workspace: "~/.openclaw/workspace-developer",
        agentDir: "~/.openclaw/agents/developer/agent"
      },
      {
        id: "reviewer",
        name: "代码审查员",
        workspace: "~/.openclaw/workspace-reviewer",
        agentDir: "~/.openclaw/agents/reviewer/agent"
      },
      {
        id: "tester",
        name: "测试工程师",
        workspace: "~/.openclaw/workspace-tester",
        agentDir: "~/.openclaw/agents/tester/agent"
      }
    ],
    defaults: {
      subagents: {
        maxSpawnDepth: 2,              // 允许嵌套调用(编排器模式)
        maxChildrenPerAgent: 5,        // 每个 Agent 最多并发5个子任务
        maxConcurrent: 8,              // 全局并发上限
        model: "anthropic/claude-sonnet-4-5",  // sub-agents 使用更经济的模型
        runTimeoutSeconds: 900         // 单个任务最多运行15分钟
      }
    }
  },

  bindings: [
    {
      agentId: "director",
      match: { channel: "feishu", accountId: "dev-team" }
    }
  ],

  channels: {
    feishu: {
      enabled: true,
      dmPolicy: "pairing",  // 私聊需要配对
      accounts: {
        "dev-team": {
          appId: "cli_xxx",
          appSecret: "xxx",
          botName: "AI 研发助手"
        }
      }
    }
  }
}

关键配置说明

  • maxSpawnDepth: 2:允许 Director 调用其他 Agent,实现 Sub-Agents 协作。
  • model: "anthropic/claude-sonnet-4-5":为 Sub-Agents 指定成本更低的模型,是成本优化的关键。
  • bindings:将飞书账号dev-team的所有消息绑定到director Agent,由它统一调度。

3.3 配置飞书集成

3.3.1 安装飞书插件

openclaw plugins install @openclaw/feishu

3.3.2 创建并配置飞书应用

  1. 访问飞书开放平台 (https://open.feishu.cn/app) 创建企业自建应用。
  2. 复制 App ID 和 App Secret。
  3. 配置应用权限(建议批量导入):
    {
    "scopes": {
    "tenant": [
      "aily:file:read",
      "aily:file:write",
      "im:message",
      "im:message.group_at_msg:readonly",
      "im:message.p2p_msg:readonly",
      "im:message:readonly",
      "im:message:send_as_bot"
    ]
    }
    }
  4. 启用机器人能力,并配置事件订阅,选择 「使用长连接接收事件」(WebSocket 模式,无需公网 URL),添加 im.message.receive_v1 事件。
  5. 发布应用。

3.3.3 配置环境变量

export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="xxx"

3.3.4 获取群组 ID
在飞书群组中 @你的机器人,然后查看 OpenClaw 日志,找到对应的群组 ID(格式如 oc_xxx),并确保其与 bindings 配置中的 accountId 匹配。

openclaw logs --follow

3.4 编写 Agent 的“灵魂”文件 (SOUL.md)

SOUL.md 文件定义了每个 Agent 的角色、职责和行为规范,是 Agent 的“大脑”。

Director 的 SOUL.md (~/.openclaw/workspace-director/SOUL.md) 核心部分示例:

# Director - 项目调度

你是项目调度专家,负责协调 Analyst、Developer、Reviewer、Tester 完成研发任务。

## 核心职责
1.  **接收需求**:理解用户的自然语言需求。
2.  **任务拆解**:将需求分解为可执行的子任务。
3.  **资源调度**:调用合适的 Agent 完成子任务。
4.  **结果汇总**:整合所有子任务结果,向用户汇报。

## 标准工作流程示例
**用户需求**:`开发一个用户登录功能,支持邮箱密码登录和 GitHub OAuth`

1.  **调用 Analyst**:
    ```json
    {
      "task": "分析用户登录功能需求(邮箱密码 + GitHub OAuth),生成 PRD 和 API 设计",
      "agentId": "analyst",
      "mode": "run",
      "runTimeoutSeconds": 600
    }
  1. 调用 Developer
    {
      "task": "根据 Analyst 的输出,实现用户登录功能代码",
      "agentId": "developer",
      "mode": "run",
      "runTimeoutSeconds": 900
    }
  2. 调用 Reviewer
    {
      "task": "审查 Developer 的代码,检查安全性和代码质量",
      "agentId": "reviewer",
      "mode": "run",
      "runTimeoutSeconds": 600
    }
  3. 调用 Tester
    {
      "task": "为登录功能编写测试用例并执行测试",
      "agentId": "tester",
      "mode": "run",
      "runTimeoutSeconds": 600
    }
  4. 汇总结果并汇报

汇报格式模板

任务完成
📋 需求分析:PRD 文档、API 设计已完成。
💻 代码开发:生成 X 个文件,共 Y 行代码。
🔍 代码审查:审查通过/发现问题,Z 条改进建议。
测试验证:执行 A 个测试用例,通过率 B%。
⏱️ 总耗时:C 分钟
💰 成本:$D

其他 Agent(Analyst, Developer, Reviewer, Tester)的 SOUL.md 也应参照此格式,明确其**核心职责**、**输出格式**、**技术栈/审查清单/测试类型**以及**关键要求**。例如,Reviewer 需关注安全性(SQL注入、XSS)、代码质量和性能;Tester 需定义单元测试、集成测试等类型。

### 3.5 启动系统
完成所有配置后,启动 OpenClaw 服务。
```bash
# 启动 OpenClaw Gateway
openclaw start

# 查看实时日志
openclaw logs --follow

# 检查系统状态
openclaw status

3.6 完整工作流演示

场景:用户在飞书群组中提出需求。

用户 @AI研发助手:开发一个用户登录功能,支持邮箱密码登录和 GitHub OAuth

系统执行流程

  1. Director 接收消息,识别为“新功能开发”任务。
  2. 调用 Analyst,生成包含3个API接口设计的PRD文档。
  3. 调用 Developer,根据PRD实现功能,生成5个代码文件。
  4. 调用 Reviewer,审查代码,发现2个安全问题并提供3条改进建议。
  5. 调用 Tester,编写12个测试用例,执行后通过率92%。
  6. Director 汇总所有结果,生成综合报告并返回飞书群组。

输出报告示例

✅ 任务完成

📋 需求分析:
- PRD 文档:已生成(3 个 API 接口)
- OAuth 流程:已设计

💻 代码开发:
- 文件数:5 个(auth.py, user.py, oauth.py, jwt.py, config.py)

🔍 代码审查:
- 审查结果:需要修改
- 🔴 严重问题:2 个(SQL注入风险、密码明文存储)
- 改进建议:3 条

✅ 测试验证:
- 测试用例:12 个
- 通过率:92%

⚠️ 需要修复的问题:
1. 修复 SQL 注入风险(使用参数化查询)
2. 密码加密存储(使用 bcrypt)
3. 修复失败的测试用例

⏱️ 总耗时:12 分钟
💰 成本:$0.22

从需求到代码的AI智能体工作流程图

图 4:完整的AI智能体工作流程

4. 关键技术细节与优化

4.1 工具策略与权限控制

Sub-Agents 默认无法使用会话管理工具(如 sessions_spawn)。当 maxSpawnDepth >= 2 时,作为编排器的 Agent(如 Director)才能获得 sessions_spawn 等工具权限。你还可以自定义策略,进一步限制 Sub-Agents 的工具访问。

{
  tools: {
    subagents: {
      tools: {
        deny: ["gateway", "cron", "write"] // 禁止子Agent使用某些工具
      }
    }
  }
}

4.2 结果回调 (Announce) 机制

Sub-Agent 完成任务后,通过 announce 步骤将结果层层回调:

  1. 执行层 Agent 完成 → 宣布给调度层 Director。
  2. Director 汇总 → (可选)宣布给更上层或直接响应给用户。
    Announce 载荷包含任务状态、结果内容、耗时和成本等关键信息。

4.3 成本优化策略

成本优化的核心是 为 Sub-Agents 使用性价比更高的模型。在主配置中指定 model 参数即可实现。

{
  agents: {
    defaults: {
      subagents: {
        model: "anthropic/claude-sonnet-4-5" // 相比Opus等顶级模型,成本大幅降低
      }
    }
  }
}
成本对比示例(生成5个代码文件): 模型 输入Token 输出Token 预估成本 节省
Claude Opus 50,000 10,000 ~$1.50 基准
Claude Sonnet 4.5 50,000 10,000 ~$0.30 约80%

5. 最佳实践

  1. Agent设计原则

    • 单一职责:每个Agent只做好一件事。
    • 明确边界:在SOUL.md中清晰定义职责和输出格式。
    • ❌ 避免一个Agent承担过多不相关职责。
  2. DevOps 式配置管理

    • ✅ 每个Agent使用独立的工作空间。
    • ✅ 使用版本控制管理SOUL.md等配置文件。
    • ✅ 为Sub-Agents配置低成本模型并设置合理的超时、并发限制。
  3. 错误处理

    • ✅ Director 应监控所有子任务,单个失败不应阻塞整个流程。
    • ✅ 记录详细日志,便于调试。
  4. 飞书集成

    • 推荐使用WebSocket长连接,无需公网IP和域名,简化部署。
    • ✅ 设置 dmPolicy: “pairing” 以控制私聊权限。

6. 总结

通过 OpenClaw 构建的多 Agent 研发协作系统,实现了将传统软件研发流程自动化、角色化的愿景。

核心价值

  1. 专业化分工:5个AI Agent各司其职,模拟真实研发团队。
  2. 流程自动化:从需求提出到代码交付,任务自动流转,无需人工干预。
  3. 质量可控:每个环节均有输出和质量检查(需求文档、代码审查、测试报告)。
  4. 成本效益:通过为子任务分配低成本模型,可节省高达80%的AI调用成本。

适用场景

  • 独立开发者/小微团队:弥补人力不足,自动化常规开发任务。
  • 教育/原型开发:快速将想法转化为可演示的代码原型。
  • 流程标准化:将团队的最佳实践固化为自动化工作流。

这套基于 OpenClaw Sub-Agents 模式的方案,已在实际场景中得到验证,能够将传统需要1-2天的需求到代码周期,缩短至15-30分钟内完成,极大提升了开发效率和响应速度。如果你对AI赋能研发流程感兴趣,不妨在 云栈社区 分享你的实践与想法。

相关资源




上一篇:UI设计案例解析:如何让邀请页面从“平平无奇”到“充满邀请感”
下一篇:Qt Creator 代码片段终极指南:告别重复编码,一键生成注释与模板
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-10 10:21 , Processed in 1.036223 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表