Agents 与路由
这一课你将能做到
- 理解 OpenClaw 的 agent 循环(agent loop)与主动核心(proactive core)
- 配置多 agent 并设置路由规则
- 为「评审 bot + 值班 bot + 日报 bot」设计多 agent 架构
为什么要学
一个 bot 什么都会等于什么都不精。评审 bot 需要冷静严谨,值班 bot 需要紧急响应,日报 bot 需要活泼亲切——用一个 agent 硬撑三种人格,结果往往是人格分裂。OpenClaw 的多 agent 路由让不同渠道、不同场景、不同用户群走不同的 agent,各有人设、各有记忆、各有权限。
人话:多 agent 就是给团队招不同性格的「虚拟员工」,而不是逼一个员工八面玲珑。
先建立图像
消息进入 Gateway
│
▼
路由层(Routing)
├── 按渠道:Slack #code-review → 评审 agent
├── 按关键词:含「告警」「紧急」→ 值班 agent
├── 按用户:管理员 DM → 高权限 agent
└── 默认:其他 → 通用 agent
│
▼
Agent 循环(Agent Loop)
├── 接收消息 + 上下文
├── 调用模型推理
├── 可能调用工具(skills / MCP)
├── 生成回复
└── 写记忆、写日志
│
▼
主动核心(Proactive Core)
├── 定时任务触发(cron)
├── 事件触发(webhook / hook)
└── 心跳检查(heartbeat)
每个 agent 是独立的:独立 workspace、独立记忆、独立模型配置、独立权限。
跟着做
步骤 1:查看当前 agent 配置
openclaw config get agents
openclaw agents list
步骤 2:配置多 agent
编辑 ~/.openclaw/openclaw.json:
{
"agents": {
"defaults": {
"systemAgent": {
"agentId": "assistant",
"model": "claude-sonnet-4-20250514"
}
},
"entries": {
"reviewer": {
"workspace": "~/.openclaw/workspaces/reviewer",
"systemAgent": {
"model": "claude-sonnet-4-20250514"
},
"description": "代码评审 bot,严谨、直接、引用规范"
},
"oncall": {
"workspace": "~/.openclaw/workspaces/oncall",
"systemAgent": {
"model": "claude-sonnet-4-20250514"
},
"description": "值班问答 bot,紧急优先、步骤导向"
},
"standup": {
"workspace": "~/.openclaw/workspaces/standup",
"systemAgent": {
"model": "claude-3-haiku"
},
"description": "日报 bot,轻量、活泼、定时触发"
}
}
}
}
步骤 3:为每个 agent 准备 workspace
mkdir -p ~/.openclaw/workspaces/reviewer
mkdir -p ~/.openclaw/workspaces/oncall
mkdir -p ~/.openclaw/workspaces/standup
每个目录下放独立的 SOUL.md、AGENTS.md、USER.md(见第 3 课)。
步骤 4:配置路由规则
路由可以通过渠道配置绑定到特定 agent:
{
"channels": {
"slack": {
"accounts": {
"default": {
"agentId": "assistant"
}
},
"channels": {
"C01234567": {
"agentId": "reviewer"
}
}
}
}
}
步骤 5:验证路由
openclaw gateway restart
openclaw agents list
openclaw channels status --probe
在 Slack 的 #code-review 频道发消息,确认走 reviewer agent;在 DM 发消息,确认走默认 assistant。
讲清楚要点
- agent 是配置单元,不是进程:所有 agent 共享同一个 Gateway 进程,但各自有独立的 workspace、记忆、模型配置和权限边界。开销极小,隔离有效。
- 路由规则按优先级匹配:精确渠道/群组 > 渠道默认 > 全局默认。匹配不到时落到
agents.defaults.systemAgent.agentId。 - 主动核心让 agent 「自己动起来」:cron 定时触发、webhook 事件触发、心跳检查——bot 不再只是被动响应,而是主动发起动作。
- agent 间可以委托(delegate):主 agent 可以把子任务委派给专家 agent 执行,结果汇总后回复。这是「并行专家通道」的基础。
- 每个 agent 的记忆独立:reviewer 不知道 oncall 的记忆,反之亦然。这是特性不是 bug——避免信息串扰和权限泄露。
你可能会懵的地方
-
多 agent 和多渠道什么关系? 渠道是「消息从哪来」,agent 是「谁来处理」。一个渠道可以路由到不同 agent(按群组/用户),一个 agent 也可以服务多个渠道。两者正交。
-
agent 切换会影响已有会话吗? 不会。已有会话的 agent 绑定在会话创建时确定,中途改路由只影响新会话。
-
怎么让 reviewer agent 也能被 DM 咨询? 配置 DM 路由规则:
channels.slack.accounts.default.dms."U123456".agentId = "reviewer"。特定用户私聊时走特定 agent。 -
agent 数量有上限吗? 技术上没有硬上限,但每个 agent 的 workspace 注入消耗 token,agent 越多配置越复杂。经验值:一个团队 3-5 个 agent 足够覆盖场景。
-
proactive core 和 cron 什么关系? proactive core 是概念层(agent 主动行动的能力),cron 是实现手段之一(定时触发)。webhook、hook、heartbeat 也是 proactive core 的触发源。
错法对照
| 错法 | 问题 | 正解 |
|---|---|---|
| 一个 agent 包打天下 | 人格分裂,规则冲突 | 按场景拆 agent,各有人设和权限 |
| 路由规则写得太笼统 | 消息走错 agent,答非所问 | 精确到渠道/群组/用户三级 |
| 所有 agent 用同一个 workspace | 人设和规则互相污染 | 每个 agent 独立 workspace 目录 |
| 给 standup bot 配最贵模型 | 日报不需要深度推理,浪费钱 | 轻量任务用轻量模型 |
| 忽略 agent 记忆隔离 | 敏感信息跨 agent 泄露 | 默认隔离是保护,不强行打通 |
卡点急救
- 消息没走预期的 agent:
openclaw agents list确认 agent 存在;检查路由规则的渠道 ID/群组 ID 是否准确;openclaw gateway restart确保配置加载。 - agent 响应风格不对:确认该 agent 的 workspace 路径正确;确认 SOUL.md/AGENTS.md 已写入;开新会话测试(旧会话上下文冻结)。
- 多 agent 记忆串了:检查是否误配了共享 workspace 或共享记忆目录;每个 agent 应完全独立。
面试常问
-
OpenClaw 的多 agent 架构如何实现? 在
agents.entries中定义多个 agent,每个有独立 id、workspace、模型配置、描述。Gateway 路由层按渠道、群组、用户三级规则匹配,将消息路由到对应 agent。各 agent 共享进程但隔离状态(workspace、记忆、会话),支持按需委托(delegate)实现并行专家协作。 -
agent 路由的设计原则? 最小惊讶原则:用户预期哪个 bot 响应,就走哪个 agent;最小权限原则:高权限 agent 只暴露给可信渠道;成本最优原则:轻量任务路由到轻量模型 agent;可观测原则:路由决策写日志,异常路由可告警。
-
proactive core 与被动响应的区别? 被动响应是「用户问→bot 答」;proactive core 是「条件满足→bot 主动行动」。后者由 cron(定时)、webhook(外部事件)、hook(内部事件)、heartbeat(周期检查)触发,让 bot 从「问答机器」变成「主动同事」——比如每天早上主动发昨日部署汇总,而不是等有人问。
自测三问
- 多 agent 与多渠道的关系是什么?
- 为什么每个 agent 需要独立的 workspace?
- proactive core 的四种触发方式是什么?
小结一句话
多 agent 路由让 bot 团队化:不同渠道、不同场景走不同人格的 agent,各有人设、记忆、权限,主动核心让 bot 从被动响应变成主动协作。
延伸
- 多 agent 路由
- Agent 配置参考
- 下一课:自动化——cron、hooks、webhooks,让 bot 按时间表和事件驱动工作。