应启用基于任务难度的自动路由机制:一、在agents.md中定义agent角色与difficulty_level映射;二、在soul.md中启用intent_classifier等三项配置;三、通过routing_rules.json设置难度阈值分发规则;四、在openclaw.json中配置providers优先级与fallback链;五、部署pre-task.js钩子实现动态难度校准。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用OpenClaw时发现简单任务与复杂任务均调用同一高成本大模型,导致响应延迟增加、Token浪费严重、本地资源占用过高,则可能是由于未启用基于任务难度的自动路由机制。以下是实现该机制的具体配置路径:
一、配置AGENTS.md定义Agent角色与难度映射关系
该步骤用于为每个Agent绑定其适配的任务难度等级及默认模型,为主控网关提供路由依据。Agent需明确标注其能力覆盖范围,避免模型误分配。
1、进入OpenClaw项目根目录下的agents子目录,打开或新建AGENTS.md文件。
2、按以下格式逐条声明Agent,其中difficulty_level字段为必填项,取值为low、medium或high:
```markdown
- name: formatter
role: 执行文本清洗、格式标准化、OCR后处理等确定性操作
model: qwen3-4b-instruct
difficulty_level: low
- name: analyst
role: 进行多源信息比对、趋势归纳、因果推理
model: qwen3-32b-chat
difficulty_level: high
```
3、保存后执行openclaw agent reload命令使新配置生效。
二、修改SOUL.md启用难度感知意图分类器
该步骤激活主控Agent对输入指令的语义解析能力,使其能识别任务隐含的推理深度、不确定性程度与上下文依赖强度,并据此判定难度等级。
1、定位至对应Agent工作区(如agents/analyzer),编辑SOUL.md文件。
2、确保以下三行配置处于启用状态且未被注释:
intent_classifier: enabled
difficulty_estimator: enabled
auto_route_by_difficulty: true
3、可选:添加难度增强关键词白名单,提升低资源场景下判断精度,例如:difficulty_keywords: ["为什么", "如何推导", "是否存在矛盾", "综合评估"]。
三、编写ROUTING_RULES.json设置难度阈值分发逻辑
该配置文件定义了从难度判定结果到具体模型节点的映射规则,支持数值阈值、关键词触发、上下文长度加权等多种判定维度,确保路由决策可解释、可调试。
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
1、在OpenClaw根目录下创建config/ROUTING_RULES.json(若不存在)。
2、写入如下JSON结构,每条规则包含condition(布尔表达式)与target(目标模型标识):
```json
{
"rules": [
{ "condition": "task.difficulty_score { "condition": "task.difficulty_score >= 3.0 && task.difficulty_score { "condition": "task.difficulty_score >= 7.5", "target": "qwen3-32b-chat" }
]
}
```
3、difficulty_score由SOUL.md中启用的估算器动态生成,综合考量输入token数、嵌套疑问句数量、专业术语密度、引用文献要求等12项指标。
四、配置providers优先级与fallback链保障高可用
该步骤防止因单一模型不可用导致路由中断,通过显式声明各模型提供方的优先级与降级路径,确保不同难度任务在异常状态下仍能获得最低限度响应能力。
1、编辑~/.openclaw/openclaw.json,在models.providers节内为每个provider添加priority与fallbacks字段:
```json
"local-4b": {
"baseUrl": "http://localhost:5000/v1",
"priority": 3,
"fallbacks": ["cloud-7b"]
,
"cloud-7b": {
"baseUrl": "https://api.example.com/v1",
"apiKey": "sk-***",
"priority": 2,
"fallbacks": ["local-4b"]
,
"cloud-32b": {
"baseUrl": "https://gpu-cluster.example.net/v1",
"apiKey": "sk-***",
"priority": 1,
"fallbacks": ["cloud-7b"]
}
```
2、注意priority值越小表示该provider在同难度层级中越优先被选用;fallbacks数组定义了当该provider完全不可达时的逐级回退顺序。
五、部署pre-task钩子注入动态难度校准逻辑
该步骤允许在任务正式分发前插入自定义计算,对SOUL.md生成的初始难度评分进行上下文感知修正,适用于存在领域强约束或用户显式声明难度的场景。
1、在~/.openclaw/hooks/目录下新建pre-task.js文件。
2、写入如下JavaScript逻辑,利用用户消息中的显式标记覆盖自动估算值:
```js
module.exports = async (task) => {
if (task.instructions.includes("[难度:低]")) {
task.difficulty_score = 1.5;
} else if (task.instructions.includes("[难度:高]")) {
task.difficulty_score = 8.9;
}
return task;
};
```
3、确保该钩子文件具有可执行权限,并重启网关服务:chmod +x ~/.openclaw/hooks/pre-task.js && openclaw gateway restart。









