| name | task-router |
| description | 任务路由系统 — 将大任务拆解为子任务,简单子任务走本地免费模型(Qwen2.5 1.5B),复杂子任务走云端API(DeepSeek/Claude/OpenAI)。 支持场景:(1) 文件整理/分类/重命名 (2) 文本格式化/转换 (3) 翻译/提取关键词 (4) 数据排序/过滤/去重 (5) 简单的判断/检查。遇到复杂任务请先 decompose 拆解再做路由判断。 调用方式:使用 Bash 执行 sma 命令。 核心特性:大任务拆解(--decompose)、逐子任务路由(--plan)、蒸馏学习(--distill)、12种优化模板、少样本示例、前后处理清洗。 |
TaskRouter
自动判断任务复杂度,路由到本地 Ollama 或云端 API。
核心能力:大任务拆解 + 逐子任务路由
这是本系统的核心价值:一个大任务整体可能很复杂,但拆开后部分子任务可以免费走本地。
拆解决策流程
收到复杂用户请求后,先拆解为独立子任务,再逐判断:
1. 分析任务包含哪些操作步骤
2. 拆解为独立的子任务
3. 调用 sma --decompose 获取路由计划
4. 本地子任务 → 调用 sma --task 执行
5. 云端子任务 → 自己处理
6. 汇总结果回复用户
sma --decompose 自动拆解
sma --decompose "帮我分析电商销售数据"
sma --decompose "整理桌面文件"
sma --plan 按计划执行
sma --decompose "分析电商数据" --json > plan.json
sma --plan plan.json
性能优化手段
| 手段 | 说明 | 效果 |
|---|
| 分类型提示词模板 | 13 种任务类型各自专用 prompt,含 2-3 个少样本示例 | 准确率提升 20-40% |
| 复合任务拆解 | "分类并统计" → 分类子任务 + 规则计数 | 支持多步骤任务 |
| A3M 多信号路由 | 动词强度 + 多步检测 + 领域复杂度 + 文本长度等多信号综合评分 | 更精准区分简单/复杂任务 |
| 自适应阈值 | 按能力类型追踪历史成功率,动态调整路由阈值 | 高成功率→更多本地,低成功率→更多云端 |
| 输出验证+云端降级 | 本地输出质量差(空/道歉/重复)时自动回退到云端 | 保证输出质量 |
| 云端重试+熔断 | 失败自动重试2次,连续3次失败触发120秒熔断 | 提高可靠性,避免无效调用 |
| 语义缓存 | trigram Jaccard 相似度匹配,三级命中 + TTL 分级过期 | 重复任务 0 token 成本 |
| 提示压缩 | 长 prompt 自动压缩(去冗余、截断示例) | 减少本地模型 token 消耗 |
| 动态 few-shot | 从蒸馏池精选高质量示例注入 prompt(按能力+多样性选择) | 持续提升准确率 |
| 预处理 | 逗号列表→换行分隔、截断、编码统一 | 减少模型解析错误 |
| 后处理 | 去 markdown 包裹、情感分析只保留"正面/负面" | 输出更干净 |
| 规则兜底 | 排序/去重/计数用规则而非模型 | 100% 准确且更快 |
Qwen2.5 1.5B 能力边界
✅ 可以委托(准确率 85-95%)
| 类型 | 示例 | 优化后准确率 |
|---|
| 文本分类/打标签 | 情感正负面、文件类型 | ~95% |
| 文件分类整理 | 按扩展名归类 | ~90% |
| 格式化 | CSV→JSON、大小写转换 | ~95% |
| 关键词提取 | 抽人名、地名、日期 | ~90% |
| 基础翻译 | 中英短句互译 | ~90% |
| 信息提取 | 邮箱、电话、URL | ~85% |
| 排序/去重 | 列表操作 | ~95% |
| 简短总结 | < 200 字概括 | ~85% |
❌ 不要委托(准确率 < 50%)
代码生成/调试、多步骤推理、数学计算、专业领域建议、创意写作、严格格式输出
蒸馏系统 — 从云端响应中持续学习
每次云端调用自动采集训练对。运行蒸馏评判质量,优质样本自动提升为 few-shot 候选。
sma --distill
sma --distill-stats
sma --distill-export
自动触发条件
- 文件操作类 — 包含「分类」「整理」「排序」「重命名」「移动」「归类」
- 文本处理类 — 包含「格式化」「转换」「提取」「摘录」「概括」「总结」
- 翻译类 — 包含「翻译」「译成」
- 数据类 — 包含「排序」「过滤」「去重」「统计」「计数」「关键词」
- 判断类 — 包含「属于哪」「是什么类型」「检查」「判定」「验证」
- 批量类 — 包含「批量」「所有文件」「全部」「遍历」
不触发: 含「代码」「编程」「debug」「调试」「重构」或涉及项目级理解、安全敏感操作。
安装使用
ollama pull qwen2.5:1.5b
pip3 install requests
alias sma="python3 /path/to/task-router/scripts/task_router.py"
sma --task "分类并统计这些文件" --text "a.pdf, b.jpg, c.txt"
sma --task "判断情感" --text "产品质量很好"
sma --stats