Intelligent Model Router技能使用说明
智能路由器——核心技能
核心技能:此技能是基础设施,而非指导。安装即强制执行。 运行
bash skills/intelligent-router/install.sh以激活。
功能说明
自动将任何任务分类为不同层级(简单/中等/复杂/推理/关键),并推荐能够妥善处理该任务的最经济模型。

它解决的问题:在没有路由的情况下,每个定时任务和子代理默认使用Sonnet模型(昂贵)。启用路由后,监控任务使用免费的本地模型,可节省80-95%的成本。
强制协议(通过AGENTS.md强制执行)
在生成任何子代理之前:
python3 skills/intelligent-router/scripts/router.py classify "task description"
在创建任何定时任务之前:
python3 skills/intelligent-router/scripts/spawn_helper.py "task description"
# Outputs the exact model ID and payload snippet to use
验证定时任务负载是否已设置模型:
python3 skills/intelligent-router/scripts/spawn_helper.py --validate '{"kind":"agentTurn","message":"..."}'
❌ 违规行为(切勿如此操作):
# Cron job without model = Sonnet default = expensive waste
{"kind": "agentTurn", "message": "check server..."} # ← WRONG
✅ 正确做法:
# Always specify model from router recommendation
{"kind": "agentTurn", "message": "check server...", "model": "ollama/glm-4.7-flash"}
层级系统
| 层级 | 用途 | 主要模型 | 成本 |
|---|---|---|---|
| 🟢 简单型 | 监控、心跳检测、检查、摘要 | anthropic-proxy-6/glm-4.7(备选:proxy-4) | $0.50/M |
| 🟡 中等型 | 代码修复、补丁、研究、数据分析 | nvidia-nim/meta/llama-3.3-70b-instruct | $0.40/M |
| 🟠 复杂型 | 功能、架构、多文件、调试 | anthropic/claude-sonnet-4-6 | $3/M |
| 🔵 推理型 | 证明、形式逻辑、深度分析 | nvidia-nim/moonshotai/kimi-k2-thinking | $1/M |
| 🔴 关键型 | 安全、生产、高风险 | anthropic/claude-opus-4-6 | $5/M |
简单型备用链: anthropic-proxy-4/glm-4.7→nvidia-nim/qwen/qwen2.5-7b-instruct($0.15/M)
⚠️
ollama-gpu-server被阻止用于cron/spawn用途。Ollama默认绑定到127.0.0.1——从OpenClaw主机无法通过局域网访问。router_policy.py执行器将拒绝任何引用它的有效载荷。
层级分类使用4个能力信号(不仅仅是成本):
effective_params(50%) —— 从模型ID或known-model-params.json中提取(针对闭源模型)context_window(20%) —— 越大表示能力越强cost_input(20%) —— 价格作为质量代理(弱信号,用于未知大小时的最后手段)reasoning_flag(10%) —— 专为思维专家(如R1、QwQ、Kimi-K2)提供的额外加分
策略执行器(v3.2.0 新增功能)
router_policy.py在不良模型分配创建之前捕获,而非在它们失败之后。
提交前验证定时任务载荷
python3 skills/intelligent-router/scripts/router_policy.py check \
'{"kind":"agentTurn","model":"ollama-gpu-server/glm-4.7-flash","message":"check server"}'
# Output: VIOLATION: Blocked model 'ollama-gpu-server/glm-4.7-flash'. Recommended: anthropic-proxy-6/glm-4.7
获取任务的强制模型推荐
python3 skills/intelligent-router/scripts/router_policy.py recommend "monitor alphastrike service"
# Output: Tier: SIMPLE Model: anthropic-proxy-6/glm-4.7
python3 skills/intelligent-router/scripts/router_policy.py recommend "monitor alphastrike service" --alt
# Output: Tier: SIMPLE Model: anthropic-proxy-4/glm-4.7 ← alternate key for load distribution
审计所有现有定时任务
python3 skills/intelligent-router/scripts/router_policy.py audit
# Scans all crons, reports any with blocked or missing models
显示阻止列表
python3 skills/intelligent-router/scripts/router_policy.py blocklist
已强制执行的策略规则
- 必须设置模型— 无模型字段 = Sonnet 默认 = 昂贵浪费
- 无被阻止的模型—
ollama-gpu-server/*以及裸ollama/*被拒绝用于定时任务 - 关键任务— 若对分类为关键的工作使用非 Opus 模型,则发出警告
安装(核心技能设置)
运行一次以自动集成到 AGENTS.md 中:
bash skills/intelligent-router/install.sh
此补丁将强制协议应用于AGENTS.md文件,使其始终处于上下文中。
命令行参考
# ── Policy enforcer (run before creating any cron/spawn) ──
python3 skills/intelligent-router/scripts/router_policy.py check '{"kind":"agentTurn","model":"...","message":"..."}'
python3 skills/intelligent-router/scripts/router_policy.py recommend "task description"
python3 skills/intelligent-router/scripts/router_policy.py recommend "task" --alt # alternate proxy key
python3 skills/intelligent-router/scripts/router_policy.py audit # scan all crons
python3 skills/intelligent-router/scripts/router_policy.py blocklist
# ── Core router ──
# Classify + recommend model
python3 skills/intelligent-router/scripts/router.py classify "task"
# Get model id only (for scripting)
python3 skills/intelligent-router/scripts/spawn_helper.py --model-only "task"
# Show spawn command
python3 skills/intelligent-router/scripts/spawn_helper.py "task"
# Validate cron payload has model set
python3 skills/intelligent-router/scripts/spawn_helper.py --validate '{"kind":"agentTurn","message":"..."}'
# List all models by tier
python3 skills/intelligent-router/scripts/router.py models
# Detailed scoring breakdown
python3 skills/intelligent-router/scripts/router.py score "task"
# Config health check
python3 skills/intelligent-router/scripts/router.py health
# Auto-discover working models (NEW)
python3 skills/intelligent-router/scripts/discover_models.py
# Auto-discover + update config
python3 skills/intelligent-router/scripts/discover_models.py --auto-update
# Test specific tier only
python3 skills/intelligent-router/scripts/discover_models.py --tier COMPLEX
评分系统
15维加权评分(不仅限于关键词):
- 推理标记(0.18) — 证明、定理、推导
- 代码存在(0.15) — 代码块、文件扩展名
- 多步骤模式(0.12) — 首先…然后、编号列表
- 代理任务(0.10) — 运行、修复、部署、构建
- 技术术语(0.10) — 架构、安全、协议
- 令牌计数(0.08) — 基于长度的复杂度
- 创意标记(0.05) — 故事、创作、头脑风暴
- 问题复杂度(0.05) — 多个谁/什么/如何
- 约束条件计数(0.04) — 必须、要求、精确
- 祈使动词(0.03) — 分析、评估、审计
- 输出格式(0.03) — json、表格、markdown
- 简单指示词(0.02) — 检查、获取、显示(反转)
- 领域特定性(0.02) — 缩写、点号表示法
- 引用复杂性(0.02) — "上文提到"
- 否定复杂性(0.01) — 不、从不、除了
置信度:1 / (1 + exp(-8 × (得分 - 0.5)))
配置
模型定义于config.json。在那里添加新模型,路由器会自动识别它们。
本地 Ollama 模型零成本 — 对于简单任务应始终优先使用。
自动发现(自我修复)
智能路由器可以自动发现可用的模型从所有已配置的提供商处通过真实的实时推理测试(而非配置存在性检查)。
工作原理
- 提供商扫描:读取
~/.openclaw/openclaw.json→ 查找所有模型 - 实时推理测试:向每个模型发送
"hi",检查其是否实际响应(捕获认证失败、配额耗尽、404错误、超时等情况) - OAuth 绕过:对于使用
sk-ant-oat01-*令牌(Anthropic OAuth)的提供商,在原始 HTTP 测试中会被跳过 — OpenClaw 会自动透明地刷新这些令牌,因此它们始终被标记为可用 - 思维模型支持:能够返回
content=None+reasoning_content的模型(例如 GLM-4.7、Kimi-K2、Qwen3-thinking)会被正确检测为可用 - 自动分类:通过
tier_classifier.py使用4个能力信号进行分配 - 配置更新:移除不可用模型,从工作集中重建主要层级
- 定时任务:每小时刷新(定时任务ID:
a8992c1f)保持模型列表最新,若可用性变化超过2个则发出警报
使用
# One-time discovery
python3 skills/intelligent-router/scripts/discover_models.py
# Auto-update config with working models only
python3 skills/intelligent-router/scripts/discover_models.py --auto-update
# Set up hourly refresh cron
openclaw cron add --job '{
"name": "Model Discovery Refresh",
"schedule": {"kind": "every", "everyMs": 3600000},
"payload": {
"kind": "systemEvent",
"text": "Run: bash skills/intelligent-router/scripts/auto_refresh_models.sh",
"model": "ollama/glm-4.7-flash"
}
}'
优势
✅自我修复:自动移除故障模型(例如,过期的OAuth) ✅零维护:无需手动更新模型列表 ✅新模型:自动添加新发布的模型 ✅成本优化:始终使用每层中最便宜的有效模型
发现输出
结果保存至skills/intelligent-router/discovered-models.json:
{
"scan_timestamp": "2026-02-19T21:00:00",
"total_models": 25,
"available_models": 23,
"unavailable_models": 2,
"providers": {
"anthropic": {
"available": 2,
"unavailable": 0,
"models": [...]
}
}
}
固定模型
即使模型发现失败,也将其保留:
{
"id": "special-model",
"tier": "COMPLEX",
"pinned": true // Never remove during auto-update
}
⚠️ 已知差距 — 基于健康状态的主动路由 (2026-03-04)
当前路由器是被动式而非主动式:
- 仅在收到 429 错误后触发回退
- 无法感知同一代理上的并发会话
- 限流事件后无冷却跟踪机制
需要改进之处:
- 跟踪每个供应商的最后 429 时间戳 → 若在冷却窗口内则跳过
- 跟踪每个供应商的活跃并发生成数 → 若 >1 活跃,则路由至 OAuth
- 在生成 N 个并行代理前,检查单一供应商能否处理 N 个并发请求
- 公开
router.get_best_available(n_concurrent=2)API


微信扫一扫,打赏作者吧~