use-other-model
Installation
SKILL.md
Use Other Model
目标
通过把合适的任务委托给成本更低的模型,在不牺牲质量的前提下节省 50-80% token。
这项技能的重点不是“多开一个聊天窗口”,而是让主代理有能力安全地驱动一个独立的执行代理。
核心立场
-
Token 优化不是目的,质量和确定性才是目的
- 只有在收益明确、任务边界清楚时才委托
- 如果协调成本高于收益,直接自己做
-
方案 B 是无人值守编码代理,不是问答会话
- 子会话必须能读文件、改文件、跑命令、做验证、写日志、完成后退出
- 子会话不应把任务理解成普通聊天
-
主代理永远保留复核责任
- 即便子会话报告成功,主代理仍必须重新看
git diff - 仍必须重新跑关键验证命令
- 前端任务仍必须重新做浏览器验收或确认子会话的浏览器证据
- 即便子会话报告成功,主代理仍必须重新看
-
复杂前端任务默认带浏览器验收
- 只要任务涉及页面、组件、样式、交互、可视化,就不能只看
build/test - 浏览器不可用时必须记录原因,不能静默跳过
- 只要任务涉及页面、组件、样式、交互、可视化,就不能只看
何时使用其他模型
✅ 适合委托的场景
-
复杂多文件操作
- 需要修改 10+ 个文件
- 需要多个相互独立的提交
- 预计执行时间超过 5 分钟
-
批量重复任务
- 批量文本转换
- 批量代码生成
- 批量文档处理
-
可并行的独立任务
- 多个相互独立的模块
- 多个相互独立的测试或文档任务
-
简单但耗时的执行型任务
- 大量格式化和 lint 修复
- 按模板生成多份内容
❌ 不适合委托的场景
-
简单快速任务
- 单文件编辑
- 执行时间小于 1 分钟
- 一眼能做完的查询
-
高度依赖对话上下文的任务
- 需要频繁和用户来回确认
- 任务边界还没澄清
- 需求本身还在变化
-
高风险高质量要求任务
- 核心业务逻辑
- 安全相关代码
- 需要深度架构判断的设计问题
决策流程
开始前按下面顺序判断:
-
先判断任务复杂度
- 简单任务:5 分钟以内
- 中等任务:10-20 分钟
- 复杂任务:20-45 分钟
-
再判断上下文压缩成本
- 能否用一份清晰的任务封包交给外部代理
- 如果连主代理都说不清任务边界,不要委托
-
最后判断验收方式
- 只靠命令行就能证明完成:可委托
- 必须看页面、交互、布局:可委托,但必须附带浏览器验收模板
两种实现方案
| 方案 | 适用场景 | Token 节省 | 实现复杂度 |
|---|---|---|---|
| 方案 A:MCP 工具 | 简单任务、单次调用 | 20-40% | 低 |
| 方案 B:独立 Claude Code 会话 | 多步骤、批量操作、执行时间 > 5 分钟 | 50-80% | 中 |
方案 A:使用 MCP 工具
- 适合单次调用和轻量任务
- 参见
references/method-a-mcp-tools.md
方案 B:启动独立 Claude Code 会话
- 适合复杂任务和长任务
- 默认按 unattended coding agent 设计
- 参见
references/method-b-independent-session.md
方案 B 的硬约束
只要选择方案 B,就必须同时满足以下要求:
-
先写任务封包,再启动子会话
- 必须提供工作目录、分支、先读文件、允许修改范围、禁止事项、验证命令、完成规则
- 模板参见
references/context-packet-template.md
-
默认使用标准启动参数
claude -p--permission-mode bypassPermissions--tools default--output-format json--append-system-prompt "<无人值守硬约束提示>"- 模板参见
references/claude-code-launch-templates.md
-
把系统提示当成硬模板,不是临场发挥
- 系统提示必须声明:这是独立编码代理、不要反问、先读文件再执行、必须验证、完成后退出
- 不要每次临时手写一段松散提示
-
前端任务必须写浏览器验收要求
- 必须指定 URL、页面目标、关键交互、视觉对比点、日志格式
- 模板参见
references/frontend-browser-verification-template.md
-
必须给足执行预算和超时
- 不要用 2-5 分钟的短超时去跑一个本来就要 20 分钟的任务
- 预算指引见下文,启动模板见
references/claude-code-launch-templates.md
-
执行失败时必须走分流,不能盲补
- 启动失败
- 执行失败
- 浏览器验收失败
- 连续两轮失败后主代理接管
- 详见
references/failure-routing.md
-
子会话完成不等于任务完成
- 主代理还要重新读输出
- 重新看改动
- 重新跑关键命令
- 前端任务重新做验收或确认浏览器证据
方案 B 标准流程
-
向用户索要或确认模型配置
- 只索要必要的 provider 信息
- 环境变量格式识别参见
references/environment-variables.md
-
主代理先完成任务拆解
- 确认任务边界、可改文件、不可做事项、验收口径
- 如果这些内容仍然模糊,不要启动外部代理
-
写任务封包
- 使用
references/context-packet-template.md - 让子会话先读任务封包,而不是先读一大段 prompt
- 使用
-
如果是前端任务,补浏览器验收模板
- 使用
references/frontend-browser-verification-template.md - 把 URL、视觉目标、交互步骤写清楚
- 使用
-
生成无人值守系统提示和标准启动命令
- 使用
references/claude-code-launch-templates.md - 默认使用
--permission-mode bypassPermissions - 默认使用
--tools default - 默认使用
--output-format json
- 使用
-
启动独立 Claude Code 会话
- 子会话必须自己读文件、自己改代码、自己运行验证、自己写
execution log - 不要让子会话把结果写成模糊总结
- 子会话必须自己读文件、自己改代码、自己运行验证、自己写
-
主代理读取结果并做失败分流
- 先看
stdout/stderr或 JSON 输出 - 再看执行日志
- 再根据
references/failure-routing.md决定继续委托还是接管
- 先看
-
主代理重新验证
- 重新查看改动
- 重新运行关键命令
- 前端任务重新确认浏览器结果
默认预算与超时指引
任务级别
- 简单任务:5 分钟以内
- 中等任务:10-20 分钟
- 复杂任务:20-45 分钟
方案 B 的默认时间预算
| 阶段 | 建议预算 |
|---|---|
| 启动会话 | 2 分钟 |
| 编码执行 | 30 分钟 |
| 构建/测试 | 5 分钟 |
| 浏览器验收 | 5 分钟 |
超时使用原则
-
主代理的 shell/Bash 超时必须覆盖真实任务时长
- 复杂任务建议至少 15 分钟
- 长任务建议按 30 分钟起配
-
不要把 CLI 启动耗时和任务执行耗时混在一起
- 启动失败是启动问题
- 执行超时是预算配置问题
-
如果预计超过 45 分钟
- 说明任务已经过大
- 先拆任务,再决定是否继续委托
失败与回退规则
-
启动失败
- 先跑
claude --help - 检查参数是否存在
- 检查 provider 环境变量
- 检查权限模式和工具模式
- 先跑
-
执行失败
- 看 JSON 结果
- 看执行日志
- 判断是编译、测试、运行、还是任务理解错误
-
浏览器验收失败
- 记录具体视觉或交互问题
- 再决定让子会话继续迭代,还是主代理直接补刀
-
连续两轮失败
- 停止继续使用外部模型
- 主代理直接接管
详见 references/failure-routing.md。
成本收益分析
| 场景类型 | 直接执行 | 委托执行 | 节省比例 |
|---|---|---|---|
| 简单单文件 | 2,000 | 2,100 | -5% ❌ |
| 中等多文件 | 11,500 | 5,000 + 6,500 | ~51% ✅ |
| 复杂批量 | 40,000 | 10,000 + 30,000 | ~68% ✅ |
实际案例
批量 Git 提交案例参见 references/case-study-git-commits.md。
注意事项
安全性
-
敏感信息保护
- 不要把 API 密钥直接写进用户可见 prompt
- 用环境变量或临时配置文件承载敏感信息
- 执行后及时删除含密钥的临时脚本
-
输出验证
- 不要盲信子会话成功消息
- 所有“完成”“通过”“已修复”都要有主代理验证证据
-
权限控制
- 方案 B 默认使用
bypassPermissions,因为目标就是无人值守执行 - 只有在高风险场景下才主动降权
- 方案 B 默认使用
用户体验
-
透明说明
- 告诉用户为什么委托
- 告诉用户预期收益和回退方式
-
失败可解释
- 如果失败,明确说明失败层级
- 不要用“模型不工作”这种笼统结论
-
进度可追踪
- 子会话应写 execution log
- 长任务要能看出进行到哪一步
参考资料
技能内部参考文档
references/method-a-mcp-tools.md- 方案 A 的详细实现references/method-b-independent-session.md- 方案 B 的执行契约和工作流references/claude-code-launch-templates.md- PowerShell / Bash 标准启动模板references/context-packet-template.md- 任务封包模板references/frontend-browser-verification-template.md- 前端任务专用浏览器验收模板references/failure-routing.md- 启动失败/执行失败/浏览器失败/回退分流references/environment-variables.md- 环境变量识别与提取规则references/case-study-git-commits.md- 批量 Git 提交案例references/faq.md- 常见问题解答references/code-templates.md- 兼容保留的旧模板入口,优先级低于新模板
官方文档
技术报告
相关技能
git-commit:高质量 git 提交技能gemini:Gemini 大上下文处理技能