<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>成本 on 姚玉亮的网络日志</title><link>https://yusanwen-code.github.io/tags/%E6%88%90%E6%9C%AC/</link><description>Recent content in 成本 on 姚玉亮的网络日志</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Sun, 30 Aug 2026 18:00:00 +0800</lastBuildDate><atom:link href="https://yusanwen-code.github.io/tags/%E6%88%90%E6%9C%AC/index.xml" rel="self" type="application/rss+xml"/><item><title>高低模型分工：用最少的 token 做最难的任务</title><link>https://yusanwen-code.github.io/posts/post-74/</link><pubDate>Sun, 30 Aug 2026 18:00:00 +0800</pubDate><guid>https://yusanwen-code.github.io/posts/post-74/</guid><description>&lt;img src="https://yusanwen-code.github.io/images/post-74-cover.jpg" alt="Featured image of post 高低模型分工：用最少的 token 做最难的任务" /&gt;&lt;h2 id="我最初的做法高模型出计划低模型执行"&gt;我最初的做法：高模型出计划，低模型执行&#10;&lt;/h2&gt;&lt;p&gt;在炼丹炉（&lt;a class="link" href="https://github.com/yusanwen-code/alchemy-furnace" target="_blank" rel="noopener"&#10; &gt;Alchemy Furnace&lt;/a&gt;，我的开源项目）上开发大功能时，我的模型分工一开始是这样的：高模型出计划，低模型去试执行。逻辑听起来无懈可击：计划是最费脑子的活，给最强模型；执行是照着做，给便宜模型省 token。&lt;/p&gt;&#10;&lt;p&gt;跑了几轮之后我意识到，这不是最佳实践：省下的 token 在别的地方加倍还了回去。坑在哪、后来怎么分，一条条说。&lt;/p&gt;&#10;&lt;h2 id="三个坑为什么计划高执行低不够"&gt;三个坑：为什么&amp;quot;计划高、执行低&amp;quot;不够&#10;&lt;/h2&gt;&lt;p&gt;坑一：计划里的任务难度不均。&lt;/p&gt;&#10;&lt;p&gt;一个实施计划拆出来的任务，难度天差地别。同一个计划里，既有&amp;quot;写一个纯函数渲染器&amp;quot;这种机械活，也有&amp;quot;设计 SSRF 校验 + 提供者熔断 + 证据等级判定&amp;quot;这种高难活。一刀切全丢给低模型，难任务在低模型手里反复试错，每次失败都是一轮&amp;quot;试错 + 看错误 + 再试&amp;quot;，token 没省多少，时间翻倍，最后往往还是得升级。&lt;/p&gt;&#10;&lt;p&gt;坑二：低模型失败没有出口。&lt;/p&gt;&#10;&lt;p&gt;低模型试了，失败了，然后呢？如果升级路径不存在，低模型只有两个选项：硬编一个成功（最危险，测试都可能一起编出来），或者卡死空转。我早期踩过前者，代价是返工整个文件。&lt;/p&gt;&#10;&lt;p&gt;坑三：验证被一起降级了。&lt;/p&gt;&#10;&lt;p&gt;执行降级了，自测也跟着降级：低模型自己测自己，绿灯也不能全信。判断性工作（&amp;ldquo;这样测算不算数&amp;rdquo;）和机械性工作（&amp;ldquo;跑一遍测试&amp;rdquo;）不是一回事，不能一起降级。&lt;/p&gt;&#10;&lt;p&gt;模型分级的问题不在&amp;quot;分级&amp;quot;本身，而在分级的依据：按角色分（计划/执行）是错的，按难度分（任务）才对。&lt;/p&gt;&#10;&lt;h2 id="正确框架按难度分级--三个旋钮"&gt;正确框架：按难度分级 + 三个旋钮&#10;&lt;/h2&gt;&lt;p&gt;Claude Code 的 Workflow 里每个子 Agent 可以独立指定模型档位和努力度，这就是三个旋钮：&lt;/p&gt;&#10;&lt;p&gt;旋钮一：模型档位。高（Opus）/ 中（Sonnet）/ 低（Haiku）。&lt;/p&gt;&#10;&lt;p&gt;旋钮二：努力度（effort）。从 low 到 max。很多任务根本不用换模型：同一个模型把 reasoning 预算拧低，就是廉价版本。换模型是换&amp;quot;能力上限&amp;quot;，调 effort 是调&amp;quot;用力程度&amp;quot;，两回事。&lt;/p&gt;&#10;&lt;p&gt;旋钮三：任务边界清晰度。这是最便宜的杠杆：spec 拆得越细、验收标准写得越死，任务越接近&amp;quot;机械执行&amp;quot;，能用的模型档位就越低。&lt;/p&gt;&#10;&lt;p&gt;我的任务分配表：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;难度&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;模型&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;例子&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;判断型&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;高模型 + 高 effort&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;需求探索与脑暴、接口契约设计、代码评审、根因定位、安全核对&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;常规型&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;中模型 + 中 effort&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;常规功能实现、测试编写、中等重构、普通调试&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;机械型&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;低模型 + low effort&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;模板化改动、纯函数实现、i18n 文案、跑测试与验证&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&lt;img alt="按难度分级的三个模型档位与三个旋钮" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://yusanwen-code.github.io/images/post-74-tiers.svg"&gt;&lt;/p&gt;&#10;&lt;h2 id="用最少的-token-做最难的任务"&gt;用最少的 token 做最难的任务&#10;&lt;/h2&gt;&lt;p&gt;说白了就一条：把大部分任务变简单，让高模型 token 只花在&amp;quot;决定&amp;quot;上，不花在&amp;quot;执行&amp;quot;上。&lt;/p&gt;&#10;&lt;p&gt;几个真实管用的杠杆：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;计划是高模型性价比最高的投资。计划阶段多花的高模型 token，换来的是执行阶段任务边界清晰、可降级给便宜模型。这是&amp;quot;1 单位的贵，换 100 单位的省&amp;quot;。不是精确数字，是量级感受。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;低模型任务必须满足三个条件，缺一不可：&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;边界明确：任务描述到文件级，依赖关系写清&lt;/li&gt;&#10;&lt;li&gt;测试兜底：TDD 红→绿，失败能被测试抓住&lt;/li&gt;&#10;&lt;li&gt;终止条件：做不了就停，明确写&amp;quot;连续失败就停止报告，不许编成功&amp;quot;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;第三条最重要。我在炼丹炉的 Workflow 脚本里给每个子 Agent 都注入了终止条件段（A3：文件不存在、依赖无法确认、连续 3 次修复失败，立即停止报告）。允许低模型说&amp;quot;我卡住了&amp;quot;，比让它硬编一个成功安全一个量级。&lt;/p&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;升级路径要显式。低模型失败不是终点：带着&amp;quot;红测试 + 尝试过程 + 卡点描述&amp;quot;升级给高模型。高模型拿到的是完整上下文，一次到位给解法或改计划，而不是重新摸底。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;评审和验证分开降级。跑回归（机械）可以低模型；安全核对、代码评审（判断）留给高模型。炼丹炉的验收任务里，回归和&amp;quot;ZIP 解压检查有没有泄露 key&amp;quot;是两件事：前者低模型跑，后者高模型过。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="炼丹炉实例一个计划怎么分"&gt;炼丹炉实例：一个计划怎么分&#10;&lt;/h2&gt;&lt;p&gt;以女娲蒸馏 + Skill 导出的开发为例（6 个任务、4 个波次）：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;计划本身（文件级任务清单）：高模型出。这是唯一一个&amp;quot;必须先花&amp;quot;的成本。&lt;/li&gt;&#10;&lt;li&gt;Task3 Skill 渲染器：纯函数、格式明确（slug 规则、SKILL.md 结构、ZIP 命名全写死）、测试完备，典型的机械型任务，低模型 + low effort 就能扛。&lt;/li&gt;&#10;&lt;li&gt;Task2 Python 蒸馏链路：SSRF 校验、来源熔断、证据等级判定，属于判断与工程混合，配中模型 + 中高 effort，比低模型反复试错便宜得多。&lt;/li&gt;&#10;&lt;li&gt;Task6 端到端验收：回归跑测低模型，产物安全核对（解压查 sk-、token、内部日志）高模型。&lt;/li&gt;&#10;&lt;li&gt;A3 终止条件：给每个&amp;quot;低模型试&amp;quot;的任务一个明确出口，试不动就停，升级。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="收尾"&gt;收尾&#10;&lt;/h2&gt;&lt;p&gt;用下来我的感觉是：判断性的活给最贵的模型，机械的活给最便宜的；任务写得清就可以降档，失败超过两次就升级，别耗着。&lt;/p&gt;&#10;&lt;p&gt;模型分级省的不是高模型的钱，是浪费在错模型上的钱。最难的活依然要最贵的模型，但反过来也成立：大部分活之所以难，是因为你没把它写清楚。把任务写清楚，是高模型 token 花得最值的地方。&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;封面图：&lt;a class="link" href="https://commons.wikimedia.org/wiki/File:Clock_gears_in_the_St_Maximus_church_in_Magnac-Laval_02.jpg" target="_blank" rel="noopener"&#10; &gt;Krzysztof Golik / Wikimedia Commons&lt;/a&gt; · CC BY-SA 4.0&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;</description></item></channel></rss>