需配置routing_rules.json、agents.md和soul.md三文件:①在根目录config下建routing_rules.json,写入regex匹配importerror等规则并设priority;②在agents/下agents.md中声明coder角色及capabilities;③在agents/coder/soul.md启用intent_classifier等开关;最后用openclaw命令重载配置并查日志验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果你已部署OpenClaw但发现用户提问“怎么修复Python的ImportError”时仍调用通用问答模型,而非自动切到代码专用模型,说明多模型路由规则尚未正确配置。这会导致任务匹配失准、响应质量下降、Token浪费增加。
在ROUTING_RULES.json中定义条件式分发逻辑
该文件是OpenClaw执行智能路由的最终决策依据,系统在完成意图识别与难度评估后,会逐条匹配此文件中的condition并跳转至target_agent。必须放在项目根目录,命名与路径不可更改。
① 在OpenClaw项目根目录创建config/ROUTING_RULES.json文件(若不存在)。
② 写入至少两条规则:一条高优先级精准匹配规则,一条兜底通配规则。示例如下:
```json
{"condition": {"regex": "(?i)debug|stack trace|line \d+|syntaxerror|importerror"}, "target_agent": "coder", "priority": 95}
{"condition": {"length_gt": 100}, "target_agent": "researcher", "priority": 80}
{"condition": {"regex": ".*"}, "target_agent": "default-assistant", "priority": 10}
```
注意:regex字段必须使用双反斜杠转义正则特殊字符,如\d+;length_gt表示输入消息字符数超过阈值才触发;priority数值越大越先匹配,相同优先级时按文件中顺序执行。
③ 执行openclaw skill reload routing命令重载规则。不重启服务即可生效,但若此前未启用routing技能,则需先运行openclaw skill enable routing。
通过AGENTS.md绑定角色与能力标签
ROUTING_RULES.json只决定“去哪”,而AGENTS.md定义“谁在那里”。缺少后者,路由将因目标agent不存在而失败回落至defaultModel。
方法一:声明角色基础信息
进入agents/子目录,打开或新建AGENTS.md文件,按Markdown列表格式添加Agent定义:
- name: coder
role: 专注Python/JS调试、单元测试生成、错误堆栈分析
model: deepseek-coder-v2-236b
capabilities: ["coding", "debug", "test_generation"]
方法二:补充难度等级(可选但推荐)
为coder追加difficulty_level字段,便于后续扩展难度感知路由:
difficulty_level: medium
【name字段必须与ROUTING_RULES.json中target_agent完全一致,大小写敏感,且不能含空格或特殊符号】
保存后执行openclaw agent reload使新Agent注册进路由映射表。
启用SOUL.md中的意图识别开关
没有意图识别,ROUTING_RULES.json里的regex就只是静态字符串匹配,无法理解“帮我看看这个报错”背后的调试意图。SOUL.md控制每个Agent的行为中枢是否激活语义解析能力。
定位到agents/coder/SOUL.md文件(路径必须与AGENTS.md中name字段对应),确认以下三行未被注释且值为true:
intent_classifier: enabled
auto_route: true
enable_contextual_routing: true
若文件中存在# intent_classifier: disabled这类注释行,需删除#并确保冒号后有空格。修改后无需重启,下次请求到达该Agent时即生效。
验证路由是否命中
直接查看日志是最可靠的验证方式,避免依赖前端UI反馈延迟或缓存误导。
执行openclaw logs --tail 50 --follow启动实时日志流。
在Web界面发起一次明确触发规则的请求,例如输入:“Python报错ImportError: No module named 'requests',怎么解决?”
观察日志中是否出现类似[ROUTER] matched rule #1 → target_agent: coder的记录。若显示fallback to default-assistant,说明前三个步骤中至少有一处配置不匹配。









