🧠 Agent 编排 · 🔄 多模型路由 · ⚡ 故障转移 · 💰 成本优化

OpenClaw 高级编程
Agent 编排与多模型适配

Advanced Orchestration & Multi-Model Adaptation

🎭 多 Agent 通信
📋 任务分解
🔀 模型路由
🔄 故障转移
⚖️ 负载均衡
💲 成本优化

GitHub 27.8k⭐ · 生产级架构 · 企业实战 · 性能调优

📖 4 大部分 | 18 章精讲 | 🧠 编排架构 | 🔀 多模型适配

⚡ 高级策略 | 🏭 生产实践 | 📊 监控告警 | 🔐 安全加固

🔥 2026 年 3 月第一版 · 从零到构建企业级 AI 系统

献给想构建高可用、高性能、低成本 AI 系统的架构师

开始阅读 →

📑 全书结构

本书共 18 章,分为 4 大部分,全面讲解 OpenClaw 高级编程技术。第一部分深入 Agent 编排架构,包括多 Agent 通信协议、任务分解策略、状态同步机制;第二部分详解多模型适配,涵盖提供商抽象层、认证管理、动态切换策略;第三部分探讨高级策略,如故障转移、负载均衡、成本优化和缓存机制;第四部分聚焦生产实践,包括监控告警、性能调优、安全加固和灾难恢复。

PART 1 · 编排架构
多 Agent 通信、任务分解、状态同步
第 1 章
多 Agent 系统架构
智能体隔离、工作区设计、认证配置文件、会话存储
第 2 章
Agent 路由机制
bindings 配置、确定性路由、优先级规则、对等方匹配
第 3 章
子智能体调度
sessions_spawn、sessions_send、文件共享、结果回传
第 4 章
任务分解策略
线性流程、DAG 依赖、辩论模式、并行执行
第 5 章
状态同步与一致性
分布式锁、乐观更新、冲突解决、最终一致性
第 6 章
A2A 协议集成
Agent-to-Agent 通信、能力发现、JSON-RPC、跨平台协作
PART 2 · 多模型适配
提供商抽象、认证管理、动态切换
第 7 章
模型提供商抽象层
统一接口、Anthropic/OpenAI/MiniMax/Gemini 适配
第 8 章
认证配置文件管理
OAuth/API Key、setup-token、凭证轮换、安全存储
第 9 章
动态模型切换
/model 命令、按会话切换、认证配置文件固定、热更新
第 10 章
模型别名与快捷方式
内置简写、自定义别名、版本管理、兼容性处理
第 11 章
本地模型集成
Ollama、LM Studio、vLLM、隐私保护、离线运行
第 12 章
多模态模型支持
图像理解、PDF 解析、语音识别、视频分析
PART 3 · 高级策略
故障转移、负载均衡、成本优化
第 13 章
故障转移策略
认证配置文件轮换、模型回退、冷却期、指数退避
第 14 章
负载均衡与限流
请求分发、速率限制、并发控制、队列管理
第 15 章
成本优化实践
模型分级、Token 预算、缓存策略、用量监控
第 16 章
缓存与性能加速
响应缓存、语义缓存、TTL 策略、失效更新
PART 4 · 生产实践
监控告警、性能调优、安全加固
第 17 章
监控与告警系统
指标采集、日志聚合、告警规则、可视化仪表板
第 18 章
安全加固与灾难恢复
沙箱隔离、权限最小化、备份策略、应急响应
Part 1 · Chapter 1
CHAPTER 1

多 Agent 系统架构

智能体隔离 · 工作区设计 · 认证配置文件 · 会话存储 · 路由绑定

1.1 什么是"一个智能体"

📋 本章要点:理解 Agent 的完整作用域;掌握工作区、agentDir、会话存储的物理隔离;学习认证配置文件的每智能体管理;明确 bindings 路由规则;避免常见配置陷阱。

在 OpenClaw 中,一个智能体(Agent)是一个完全独立作用域的"大脑",拥有自己的工作区、认证、会话历史和人格设定。多 Agent 系统允许在单个 Gateway 网关实例中并行运行多个隔离的智能体。

智能体的四大核心组件

  • 工作区(Workspace):包含 AGENTS.md、SOUL.md、USER.md、MEMORY.md 等人格文件和技能库
  • 状态目录(agentDir):存储认证配置文件 auth-profiles.json、模型注册表、每智能体配置
  • 会话存储(Sessions):聊天历史、路由状态、上下文压缩记录
  • 绑定规则(Bindings):定义入站消息如何路由到该智能体
~/.openclaw/openclaw.json · 多 Agent 配置示例
{
  // 定义所有智能体
  agents: {
    list: [
      {
        id: "main",
        name: "主智能体",
        workspace: "~/.openclaw/workspace-main",
        agentDir: "~/.openclaw/agents/main/agent",
        model: "anthropic/claude-opus-4-5",
        subagents: {
          allowAgents: ["researcher", "writer"]
        }
      },
      {
        id: "researcher",
        name: "调研员",
        workspace: "~/.openclaw/workspace-researcher",
        agentDir: "~/.openclaw/agents/researcher/agent",
        model: "anthropic/claude-haiku-4-5"
      },
      {
        id: "writer",
        name: "写作助手",
        workspace: "~/.openclaw/workspace-writer",
        agentDir: "~/.openclaw/agents/writer/agent",
        model: "openai/gpt-5.2"
      }
    ]
  },
  
  // 入站消息路由规则
  bindings: [
    {
      agentId: "main",
      match: { channel: "feishu", accountId: "default" }
    },
    {
      agentId: "researcher",
      match: { channel: "telegram" }
    }
  ]
}
⚠️ 关键警告:切勿在智能体之间重用 agentDir!这会导致认证/会话冲突。每个智能体必须有独立的 workspace 和 agentDir。

1.2 物理存储结构

文件系统映射

组件默认路径可配置项用途
配置文件 ~/.openclaw/openclaw.json OPENCLAW_CONFIG_PATH 全局配置、agents.list、bindings
状态目录 ~/.openclaw OPENCLAW_STATE_DIR 所有运行时数据根目录
工作区 ~/.openclaw/workspace agents.list[].workspace AGENTS.md、SOUL.md、Skills、记忆文件
智能体目录 ~/.openclaw/agents/<agentId>/agent agents.list[].agentDir auth-profiles.json、模型注册表
会话存储 ~/.openclaw/agents/<agentId>/sessions 自动派生 聊天历史、路由状态、压缩记录
🗂️ 多 Agent 文件系统结构
~/.openclaw/
├── openclaw.json(全局配置)
├── agents/
│ ├── main/agent/auth-profiles.json
│ ├── main/sessions/sessions.json
│ ├── researcher/agent/auth-profiles.json
│ └── writer/agent/auth-profiles.json
└── workspace-main/, workspace-researcher/, workspace-writer/

1.3 认证配置文件隔离

每智能体独立的凭证管理

认证配置文件(auth-profiles.json)存储 OAuth 令牌和 API 密钥,每个智能体从自己的位置读取:

~/.openclaw/agents/<agentId>/agent/auth-profiles.json
{
  profiles: {
    anthropic:default: {
      provider: "anthropic",
      type: "setup-token",
      token: "sk-ant-...",
      createdAt: "2026-03-10T08:30:00Z"
    },
    openai:default: {
      provider: "openai",
      type: "oauth",
      accessToken: "eyJhbGc...",
      expiresAt: "2026-04-10T08:30:00Z"
    }
  }
}
✅ 凭证共享策略:如果需要在智能体间共享凭证,手动复制 auth-profiles.json 到目标智能体的 agentDir。不要共用同一个文件,避免写入冲突。

1.4 添加新智能体

使用 CLI 向导

🛠️ 命令行操作
# 添加新智能体(自动创建 workspace 和 agentDir)
openclaw agents add researcher --workspace ~/.openclaw/workspace-researcher

# 验证添加成功
openclaw agents list

# 查看绑定状态
openclaw agents list --bindings

# 删除智能体(强制模式)
openclaw agents delete researcher --force
⚠️ 关键教训:绝对不能复制主 Agent 的 AGENTS.md 给子 Agent!这会导致子 Agent 误认为自己是主 Agent,产生行为错乱。必须为每个子 Agent 编写专属的人设文件。

1.5 人设文件编写规范

SOUL.md 示例(调研员)

~/.openclaw/workspace-researcher/SOUL.md
# SOUL.md - 调研员

## 角色
我是调研助手,专注信息搜索、网页查询和内容整理。

## 职责
- 根据任务搜索和整理相关信息
- 输出结构清晰、有据可查的调研报告
- 不确定信息注明来源,不编造

## 风格
- 简洁客观,结论在前
- 数据来源标注清晰
- 避免主观臆断

AGENTS.md 示例(调研员)

~/.openclaw/workspace-researcher/AGENTS.md
# AGENTS.md - 调研员

## 我是谁
我是主 Agent 的调研助手,不是主 Agent。

## 行为规范
### ✅ 收到任务直接执行
- 不反问,不问确认,直接干
- 模糊需求先做,做完再补充说明

### ✅ 输出格式
- 结论在前,细节在后
- 标注信息来源

### ❌ 禁止
- 不说"我是主 Agent"
- 不问"需要我创建子 Agent 吗"
- 不模仿主 Agent 的交互风格

📝 第 1 章小结

  1. 智能体定义:完全独立作用域的"大脑",包含工作区、agentDir、会话存储、绑定规则
  2. 物理隔离:每个智能体必须有独立的 workspace 和 agentDir,严禁共用
  3. 认证管理:auth-profiles.json 每智能体独立,共享需手动复制
  4. CLI 工具openclaw agents add 自动创建目录结构
  5. 人设文件:SOUL.md 定义角色,AGENTS.md 规范行为,严禁复制主 Agent 文件

💡 思考题

  • □ 如果您的企业需要 10 个不同角色的 Agent,您会如何设计工作区结构?
  • □ 在多 Agent 系统中,如何平衡隔离性和资源共享的需求?
  • □ 如果一个子 Agent 需要访问主 Agent 的记忆文件,您会采用什么机制?
APPENDIX

附录:配置模板与故障排查清单

A. 多 Agent 完整配置模板

~/.openclaw/openclaw.json · 企业级多 Agent 配置
{
  // ========== 智能体定义 ==========
  agents: {
    list: [
      {
        id: "main",
        name: "主智能体",
        default: true,
        workspace: "~/.openclaw/workspace-main",
        agentDir: "~/.openclaw/agents/main/agent",
        model: "anthropic/claude-opus-4-5",
        subagents: {
          allowAgents: ["researcher", "writer", "coder"]
        },
        sandbox: {
          mode: "off"
        }
      },
      {
        id: "researcher",
        name: "调研员",
        workspace: "~/.openclaw/workspace-researcher",
        agentDir: "~/.openclaw/agents/researcher/agent",
        model: "anthropic/claude-haiku-4-5",
        sandbox: {
          mode: "all",
          scope: "agent"
        },
        tools: {
          allow: ["web_search", "web_fetch", "read"],
          deny: ["exec", "write", "browser"]
        }
      },
      {
        id: "writer",
        name: "写作助手",
        workspace: "~/.openclaw/workspace-writer",
        agentDir: "~/.openclaw/agents/writer/agent",
        model: "openai/gpt-5.2",
        sandbox: {
          mode: "non-main"
        }
      },
      {
        id: "coder",
        name: "代码助手",
        workspace: "~/.openclaw/workspace-coder",
        agentDir: "~/.openclaw/agents/coder/agent",
        model: "openai-codex/gpt-5.2-codex",
        sandbox: {
          mode: "off"
        }
      }
    ]
  },
  
  // ========== 路由绑定 ==========
  bindings: [
    {
      agentId: "main",
      match: { channel: "feishu", accountId: "default" }
    },
    {
      agentId: "researcher",
      match: { channel: "telegram" }
    },
    {
      agentId: "writer",
      match: {
        channel: "whatsapp",
        peer: { kind: "dm", id: "+8613800138000" }
      }
    },
    {
      agentId: "main",
      match: { channel: "whatsapp" }
    }
  ],
  
  // ========== 渠道配置 ==========
  channels: {
    feishu: {
      defaultAccount: "default",
      accounts: {
        default: {
          appId: "cli_xxx",
          appSecret: "xxx",
          botName: "大橘"
        }
      }
    },
    whatsapp: {
      dmPolicy: "allowlist",
      allowFrom: ["+8613800138000", "+8613900139000"]
    }
  },
  
  // ========== 工具权限 ==========
  tools: {
    agentToAgent: {
      enabled: true,
      allow: ["main", "researcher", "writer", "coder"]
    }
  }
}

B. 故障排查清单

问题现象可能原因诊断命令解决方案
子 Agent 自称"我是主 Agent" 复制了主 Agent 的 AGENTS.md cat workspace-researcher/AGENTS.md 重写专属 AGENTS.md,明确"不是主 Agent"
openclaw agents bind报错 此命令不存在 - 手动编辑bindings字段,不支持 CLI 绑定
config get agents.list报 path not found 还未执行agents add openclaw agents list 先执行agents add生成列表
飞书 Bot 响应"terminated" 迁移时误删allowFrom等字段 python3 -c "import json; print(json.load(open('~/.openclaw/openclaw.json'))['channels']['feishu'])" 从备份恢复,补回缺失字段
主 Agent 无法 spawn 子 Agent 未配置subagents.allowAgents openclaw config get agents.list[0].subagents openclaw config set agents.list[0].subagents.allowAgents '["researcher"]' --json
Gateway 重启后无回复 不必要地执行了gateway restart openclaw gateway status 配置支持热重载,无需重启 Gateway

C. 参考资源

  • 官方文档:docs.openclaw.ai/zh-CN/concepts/multi-agent
  • 多 Agent 配置指南:cmcm.bot/multi-agent.html
  • GitHub 仓库:github.com/openclaw/openclaw
  • A2A 协议提案:github.com/openclaw/openclaw/issues/6842
  • EasyClaw 文档:cmcm.bot/
  • 中文社区:open-claw.org.cn/dev
  • 故障排查论坛:discord.gg/openclaw-dev