Install
openclaw skills install @thcjp/model-routing-tool-proopenclaw skills install @thcjp/model-routing-tool-pro核心功能: 本技能提供中文交互、规范流程和配置说明、化工作流场景等能力。
模型路由工具(专业版)面向团队与企业,在兼容免费版三层路由决策的基础上,扩展了成本分析仪表盘、批量任务分发、自定义路由规则、实时监控告警与团队策略治理能力.
当你在请求中提及 成本治理、批量路由、路由规则、预算告警、多供应商 等关键词时,本工具会自动激活,为团队提供结构化的模型路由治理方案.
本版本完全兼容 model-routing-tool-free 的三层路由决策(Flash → Standard → Plus / 32B),可平滑升级,已有路由逻辑无需改造.
| 能力模块 | 说明 | 与免费版差异 |
|---|---|---|
| 三层路由 | Flash → Standard → Plus / 32B 决策 | 与免费版一致 |
| 黄金规则 | 30秒思考阈值 | 与免费版一致 |
| 自定义规则 | 团队路由规则引擎(正则/关键词/任务类型) | 免费版无 |
| 成本仪表盘 | 按任务/项目/团队/模型追踪成本 | 免费版无 |
| 批量分发 | 批量任务并发路由与结果聚合 | 免费版仅单任务 |
| 实时监控 | 超预算告警、异常路由检测 | 免费版无 |
| 团队策略 | 白名单、降级策略、成本上限 | 免费版无 |
| 多供应商 | 多供应商路由与故障转移 | 免费版单供应商 |
| 报告导出 | 周/月成本与路由报告 | 免费版无 |
用input_params参数进行配置.
处理: 解析核心功能执行的输入参数,完成核心逻辑,输出标准化响应数据.
输出: 返回核心功能执行的响应数据,包含状态信息、结果数据和执行记录.
input_params进行配置,支持创建/查询/导出操作用config_options参数进行配置.
处理: 解析参数配置与调用的输入参数,完成核心逻辑,输出标准化响应数据.
输出: 返回参数配置与调用的响应数据,包含状态信息、结果数据和执行记录.
config_options参数,支持修改/重置/导入操作用output_format参数进行配置.
处理: 解析结果处理与输出的输入参数,完成核心逻辑,输出标准化响应数据.
输出: 返回结果处理与输出的响应数据,包含状态信息、结果数据和执行记录.
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本技能覆盖以下场景关键词:团队级模型路由套、含成本仪表盘、自定义规则与监控、模型路由工具、专业版、面向团队与企业、在三层路由决策基、扩展成本分析仪表、批量任务分发、自定义路由规则、实时监控告警与团、队策略治理能力、核心能力、自定义规则引擎、团队追踪成本、批量任务分发与并、路由白名单等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.团队希望追踪各项目的API成本,并在超预算时告警.
# 查看本月成本仪表盘
node (请参考skill目录中的脚本文件) --period month --group-by project
# ...
# 输出
# 项目成本仪表盘: 2026-07
#
# | 项目 | Flash | Standard | Plus | 总成本 | 预算 | 使用率 |
# | --- | --- | --- | --- | --- | --- | --- |
# | 客服机器人 | $12 | $45 | $8 | $65 | $100 | 65% |
# | 代码审查 | $3 | $28 | $15 | $46 | $80 | 57% |
# | 数据分析 | $5 | $12 | $22 | $39 | $50 | 78% |
# | 文档生成 | $8 | $6 | $0 | $14 | $30 | 47% |
# | 总计 | $28 | $91 | $45 | $164 | $260 | 63% |
设置预算告警:
# config/budget-alerts.yaml 预算告警配置
alerts:
- name: 项目级月度预算
threshold: 80%
action: notify
targets:
- slack: "#ai-cost-alerts"
- email: ["tech-lead@company.com"]
- name: 单任务成本异常
threshold: $5
action: notify_and_review
targets:
- webhook: "https://hooks.internal/ai-anomaly"
- name: 总预算硬上限
threshold: $500
action: degrade
degrade_to: flash
团队需要并发处理大量任务,按复杂度自动路由并聚合结果.
// batch-route.mjs 批量路由分发
import { routeBatch } from './lib/router.mjs';
// ...
const tasks = [
{ id: 't1', content: '翻译这段话', expectedComplexity: 'low' },
{ id: 't2', content: '实现用户认证模块', expectedComplexity: 'medium' },
{ id: 't3', content: '设计多区域部署架构', expectedComplexity: 'high' },
// ... 100个任务
];
// ...
const results = await routeBatch(tasks, {
concurrency: 10,
costCap: 50, // 单批成本上限$50
fallbackModel: 'GLM-4.5-Flash', // 超成本降级
onProgress: (done, total) => console.log(`${done}/${total}`),
});
// ...
// 输出
// {
// results: [...],
// summary: {
// total: 100,
// success: 97,
// failed: 3,
// cost: $42.5,
// routing: { flash: 45, standard: 48, plus: 7 },
// duration: '3m 22s'
// }
// }
团队希望根据任务特征自定义路由,而非完全依赖默认决策.
# config/routing-rules.yaml 自定义路由规则
rules:
- name: 含敏感关键词强制Plus
match:
anyOf:
- regex: "(安全|漏洞|审计|合规)"
- regex: "(架构|设计|重构)"
route: plus
reason: "敏感/架构类任务需要深度推理"
# ...
- name: 翻译任务用Flash
match:
allOf:
- keyword: "翻译"
- maxLength: 500
route: flash
reason: "短文本翻译用Flash足够"
# ...
- name: 代码审查用Standard
match:
anyOf:
- regex: "(审查|review|PR)"
- filePattern: "*.py"
route: standard
reason: "代码审查是Standard主力场景"
# ...
- name: 成本上限降级
condition:
monthlyBudgetUsed: ">80%"
route: flash
fallback: true
reason: "月度预算超80%,降级到Flash"
# ...
default: standard # 未匹配规则时的默认路由
以下场景模型路由工具(专业版)不适合处理:
需要项目管理、任务规划、进度跟踪、团队协作时使用。不适用于非本工具能力范围的需求.
| 错误场景 | 错误信息 | 原因分析 | 处理方式 |
|---|---|---|---|
| 认证失败 | 401 unauthorized | API Key格式错误或已失效 | 检查API Key配置,重新生成Key |
| 限流 | 429 rate_limited | 短时间内请求过多 | 等待2秒后重试,最多3次 |
| 超时 | Timeout | 网络延迟或服务端负载过高 | 检查网络连接,增加超时时间或稍后重试 |
| 参数错误 | 400 bad_request | 输入参数格式不正确 | 检查输入参数是否符合格式要求 |
| 服务异常 | 5xx server_error | 服务端内部错误 | 等待后重试,如持续失败联系服务提供方 |
详细的输入输出格式请参考下方章节说明。
# config/team-policy.yaml 团队策略
policy:
defaultTier: standard
cost:
monthlyBudget: 500
perTaskCap: 5
degradeAt: 80%
degradeTo: flash
routing:
allowForce: true # 允许任务强制指定层级
allowOverride: false # 禁止绕过规则
auditLog: true # 记录所有路由决策
fallback:
primaryProvider: provider-a
fallbackProvider: provider-b
healthCheck: 60s
compliance:
forbiddenModels: [] # 合规禁用的模型
requiredTierForPII: plus # 含PII数据强制用Plus
# config/providers.yaml 多供应商配置
providers:
- name: provider-a
enabled: true
priority: 1
models:
flash: "model-a-flash"
standard: "model-a-standard"
plus: "model-a-plus"
apiKey: "${PROVIDER_A_KEY}"
costMultiplier: 1.0
# ...
- name: provider-b
enabled: true
priority: 2
models:
flash: "model-b-flash"
standard: "model-b-standard"
plus: "model-b-plus"
apiKey: "${PROVIDER_B_KEY}"
costMultiplier: 0.85 # 便宜15%
# ...
- name: provider-c
enabled: false # 备用,默认禁用
priority: 3
models: { ... }
apiKey: "${PROVIDER_C_KEY}"
| 阶段 | 动作 | 验收标准 |
|---|---|---|
| 1. 透明化 | 接入仪表盘,统计现状 | 各项目成本可见 |
| 2. 优化 | 应用规则,降级冗余任务 | 月成本下降20%+ |
| 3. 治理 | 预算告警与降级策略 | 超预算自动降级 |
| 参数 | 推荐值 | 说明 |
|---|---|---|
| concurrency | 10 | 平衡速度与API限流 |
| costCap | 单批$50 | 控制单批成本 |
| fallbackModel | Flash | 超成本降级 |
| retry | 2 | 失败重试次数 |
| timeout | 60s | 单任务超时 |
| 告警级别 | 触发条件 | 动作 |
|---|---|---|
| 提示 | 预算使用50% | 仅记录仪表盘 |
| 警告 | 预算使用80% | 通知团队,准备降级 |
| 严重 | 预算使用95% | 自动降级到Flash |
| 紧急 | 单任务成本>$5 | 暂停并人工审查 |
# 健康检查
node (请参考skill目录中的脚本文件) --all-providers
# ...
# 手动切换主供应商
node (请参考skill目录中的脚本文件) --primary provider-b
# ...
# 成本对比报告
node (请参考skill目录中的脚本文件) --period month
# 查询路由审计日志
node (请参考skill目录中的脚本文件) --task-id t-2026-07-18-001
# ...
# 导出合规报告
node (请参考skill目录中的脚本文件) \
--since 2026-07-01 \
--format csv \
--output reports/compliance-july.csv
A: 确认已重启终端或会话。检查变量名拼写是否正确,使用 echo $变量名 验证是否生效。
A: 内置重试机制最多3次。如持续失败,检查网络代理设置,确认API端点可达性。
A: 支持通过输入参数自定义行为。参考参数说明表格中的可选参数项进行配置。
A: 建议并发不超过3个请求。高并发场景需配置请求间隔,避免触发平台限流策略。
A: Agent平台会记录执行过程。检查输出格式章节的execution_log字段了解执行步骤详情。
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| 模型API供应商 | API | 必需 | 自行选择并申请API Key |
| Node.js | 运行时 | 必需 | nodejs.org 下载 |
| jq | JSON处理 | 推荐 | 系统包管理器安装 |
| 通知渠道 | webhook | 可选 | Slack/飞书/企业微信等 |
PROVIDER_A_KEY、PROVIDER_B_KEY)注入,不入库.| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "模型路由工具(专业版)处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "model routing pro"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}
| 风险类型 | 防范措施 |
|---|---|
| API密钥泄露 | 通过环境变量传入,不在代码中硬编码 |
| 命令执行风险 | 命令执行受白名单约束,避免注入用户输入 |
| 网络通信安全 | 通过HTTPS安全通信,验证证书有效性 |
| 敏感数据暴露 | 输出不含敏感凭据 |
| 使用前请确认已阅读依赖说明章节,确保运行环境满足安全要求。 |
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
| 对比维度 | 模型路由工具(专业版) | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | 团队级模型路由套件,含成本仪表盘、批量分发、自定义规则与监控告警。。模型路由工具 | 通用场景 | 通用场景 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 使用环境变量,禁止硬编码 | 定期审计环境变量配置 |
| 输入注入攻击 | 中 | 对输入参数进行验证和转义 | 进行注入测试验证 |
| 输出内容异常 | 中 | 对输出结果进行校验 | 建立内容审核流程 |
| 依赖漏洞 | 低 | 定期更新依赖版本 | 使用工具扫描已知漏洞 |
A1: 团队级模型路由套件,含成本仪表盘、批量分发、自定义规则与监控告警。。模型路由工具(专业版)面向团队与企业,在三层路由决策基础上,扩展成本分析仪表盘、批量任务分发。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。
针对模型路由工具(专业版)使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |