乐于分享
好东西不私藏

OpenClaw 多 Agent 架构实践:从“全能助手”到“分职分权”

OpenClaw 多 Agent 架构实践:从“全能助手”到“分职分权”

在初期使用 OpenClaw 时,我习惯将所有任务塞进同一个 Agent。但随着使用深入,问题接踵而至:聊天记录混杂、任务上下文互相污染、长对话冲掉关键记忆。

后来我意识到:不要让一个 Agent 干所有事,而应按任务类型进行职能拆分。

为什么选择多 Agent 架构?

  • • 上下文隔离:不同任务各走各的路径,彻底告别“串台”。
  • • 差异化配置:每个 Agent 可绑定独立的人格(SOUL)和最适合的模型。
  • • 安全隔离:共享公共知识的同时,敏感数据(如健康、财务)可独立存储。
  • • 成本精算:轻任务用 Haiku/Gemini,重决策用 Opus/Sonnet。

一、 我的“六部”分工架构

我通过任务类型定义了 6 个 Agent,底层共享同一个 OpenClaw 实例,前台通过 6 个不同的 Telegram Bot 接入:

Agent
职能描述
选用模型建议
内务府
全能管家,处理日常事务与综合调度
Opus
御花园
纯闲聊,不执行复杂操作
Haiku
文渊阁
资料库,处理知识性问题与长文档检索
Sonnet
观星台
盯数据:价格、新闻、服务状态监控
Sonnet
军机处
投资决策与深度分析,拒绝低智
Opus
太医院
健康管理,独立工作区,数据物理隔离
Sonnet

核心思路:底层一套系统,前台六个角色。

二、 新增 Agent 的三段式映射

在 ~/.openclaw/openclaw.json 中,新增 Agent 遵循:Bot 入口 → Agent 大脑 → 路由绑定

1. 注册通道 (Channel)

在 channels.telegram.accounts 中让系统识别 Bot 入口:

"wenyuange":{"name":"文渊阁","enabled":true,"botToken":"从_BotFather_获取的_Token","dmPolicy":"pairing",// 需 /pair 配对,防止陌生人骚扰"streamMode":"partial"// 流式输出,体验更丝滑}

2. 定义 Agent 属性

在 agents.list 中定义该 Agent 的大脑属性及存储路径:

{"id":"wenyuange","name":"文渊阁","workspace":"/Users/path/to/.openclaw/workspace",// 共享知识库"agentDir":"/Users/path/to/.openclaw/agents/wenyuange/agent",// 私有人格"model":"sub2api/claude-sonnet-4-6"// 默认模型}

3. 绑定路由 (Binding)

在 bindings 中完成对接,确保消息投递正确:

{"agentId":"wenyuange","match":{"channel":"telegram","accountId":"wenyuange"}}

三、 模型管理

OpenClaw 支持通过 provider/model 格式管理多个 API 源。

1. 多 Provider 配置

即使通过同一个本地中转(如 localhost:8080),也可以配置多个 Provider 来区分订阅:

"providers":{"source-a":{"baseUrl":"http://localhost:8080","apiKey":"KEY_A","api":"anthropic-messages","models":[{"id":"claude-opus-4-6","contextWindow":200000}]},"source-b":{"baseUrl":"http://localhost:8080","apiKey":"KEY_B","api":"anthropic-messages","models":[{"id":"gemini-3.1-pro-high","contextWindow":200000}]}}

2. 模型白名单

如果配置了 agents.defaults.models不在列表里的模型即便 Provider 里有,也无法通过 /model 切换

四、 共享工作区设计

我让 5 个 Agent 共享主工作区,仅“太医院”隔离。这种设计实现了:知识共享,人格隔离,隐私独立。

1. 目录结构直观图

这是目前稳定运行的目录布局,清晰展示了全局文件与 Agent 私有文件的关系:

~/.openclaw/├── openclaw.json           # 全局核心配置文件├── agents/                 # 【私有目录】存放各个 Agent 的人格│   ├── wenyuange/agent/│   │   └── SOUL.md         # 文渊阁特有人格(覆盖全局)│   ├── junjichu/agent/│   │   └── SOUL.md         # 军机处特有人格│   └── ...├── workspace/              # 【共享工作区】5 个 Agent 公用│   ├── SOUL.md             # 通用人格底稿│   ├── AGENTS.md           # 行为准则与操作红线(全量注入)│   ├── USER.md             # 用户个人偏好、习惯与信息│   ├── MEMORY.md           # 长期记忆:重要事实、项目进度│   └── knowledge/          # 静态知识库(PDF、Markdown 资料)└── workspace-taiyiyuan/    # 【隔离工作区】仅太医院访问    ├── MEDICAL_HISTORY.md  # 个人健康数据    └── HEALTH_PLAN.md      # 专项健康方案

2. 工作区优化建议

这些文件在每轮对话中都会全量注入上下文,必须遵循极简原则:

  • • SOUL.md:抓住性格核心,不写废话。
  • • AGENTS.md最烧 Token 的地方。只留真正重要的操作红线,建议控制在 2KB 以内。
  • • MEMORY.md:定期整理。将过期或琐碎的信息移出,或归档到 knowledge/ 中,防止 Token 爆炸。
  • • 人格覆盖机制:OpenClaw 会优先读取 agentDir 里的文件。如果该目录下存在 SOUL.md,Agent 会忽略共享工作区里的版本,从而实现角色差异。

五、 自动化备份方案

我使用 Git 将配置镜像到私有仓库,通过 OpenClaw 内置的 cron 实现自动备份。

备份策略

  1. 1. 脱敏处理:通过脚本将 openclaw.json 中的 Key/Token 替换为 [REDACTED]
  2. 2. 动态扫描:递归发现 agents/ 下的新 Agent,无需硬编码。
  3. 3. 排除干扰:不备份 .jsonl 原始对话流和运行时生成的缓存 models.json
  4. 4. 定时任务
openclaw cron add --name "backup" --every 1h --agent main --message "bash backup.sh"

结语

拆分 Agent 后的系统不再是一个笨拙的对话框,而是一支训练有素的团队。这种架构既能共享知识,又能保留职能分工,是目前最顺手的 AI 管理方案。