Skip to content
imshengli blog
Go back

组合不同 LLM 完成任务,会成为必备技能之一

用最强模型做所有事是最大的浪费。学会按任务难度匹配不同模型,像组建团队一样调度 AI,才能在成本、速度和质量之间找到最优解。

· 9 min

结论先行

不要用最强模型做所有事。 把任务按难度分级,难的交给强模型思考,简单的交给轻量模型执行——这就像公司里总监做决策、实习生跑腿,各司其职效率最高。

这个能力在 Vibe Coding(让 AI 帮你写代码)场景下尤其重要,因为模型的推理能力越强,调用成本就越高、响应速度就越慢。学会”组合用模型”,是控制成本和提升效率的关键技能。


核心概念:能力密度匹配

先解释一个关键概念——能力密度匹配

打个比方:你搬家时需要搬钢琴,也需要搬纸箱。钢琴得请专业搬运工(贵但专业),纸箱随便谁都能搬(便宜又快)。如果你让专业搬运工一个纸箱一个纸箱地搬,那就是巨大的浪费。

AI 模型也是一样:

模型级别代表擅长成本速度
旗舰模型Opus复杂推理、架构设计、创意任务
标准模型Sonnet日常编码、中等复杂度任务
轻量模型Haiku文件搜索、格式化、简单查询

能力密度匹配的意思是:任务需要多少”思考力”,就分配多少”思考力”。不多给,也不少给。

一个真实的例子:用 Opus(旗舰模型)做一次文件搜索,和用 Haiku(轻量模型)做同样的搜索,结果几乎一样,但成本差了两个数量级(约 100 倍)。因为文件搜索根本不需要”深度思考”,Haiku 的能力完全够用。


原理:为什么强模型做简单事反而低效

强模型(如 Opus)之所以”强”,是因为它会消耗大量的 thinking tokens(思考令牌)和 reasoning tokens(推理令牌)来深度分析问题。这些 token 每一个都要花钱、都要花时间。

当你让强模型做一件简单的事(比如”把这个文件里的 var 全换成 const”),它的”大脑”还是会走一遍完整的思考链路——分析上下文、考虑边界情况、推理可能的影响……这些思考对简单任务来说完全多余,白白浪费了时间和金钱。

这就好比让一个博士后帮你做加减法——他当然算得出来,但你付的是博士后的时薪,做的却是计算器的活。


实战:Claude Code 的 Sub-Agent 调度策略

Claude Code 在这方面的设计很有参考价值。它不是”一个模型打天下”,而是根据任务类型动态选择不同的模型和执行方式。

三种 Sub-Agent 模式

1. Fork Agent —— 继承上下文,并行探索

当需要保留当前对话的上下文继续工作时(比如”在当前代码基础上同时探索两种方案”),Claude Code 会 fork(分叉)一个子 Agent。

类比:就像 Git 的分支——从同一个起点出发,各自独立探索,最后选最好的合并回来。

2. 内置 Agent —— 目标明确,独立执行

当任务目标很清晰、不依赖当前对话语境时(比如”搜索所有包含 TODO 的文件”),Claude Code 直接派出内置的专用 Agent,包括:

3. Agent Team —— 多角色协作

当任务足够复杂时,Claude Code 会组建一个”团队”,让多个 Sub-Agent 分工协作、互相通讯。

类比:就像一个项目组——产品经理定需求、开发写代码、测试验结果,各自独立工作但通过”会议”(消息传递)保持同步。

模型选择策略

Claude Code 不是给所有 Sub-Agent 都用同一个模型,而是动态匹配:


实用技巧:三种省钱又高效的配置

技巧一:环境变量指定子 Agent 模型

export CLAUDE_CODE_SUBAGENT_MODEL=haiku

设置后,主会话继续用强模型做调度和决策,所有子 Agent 默认用轻量模型做执行。配置一行搞定,适合日常开发。

技巧二:Fork 模式复用缓存

当你对主会话说”从当前上下文 Fork 子进程处理”时,Fork 出的子 Agent 会共享父会话的 Prompt Cache(提示缓存,即已经计算好的上下文 token)。

这意味着:10 个并行 fork 的成本约等于 1 + 9 x 增量部分,而不是 10 x 完整上下文。在大规模并行场景下,这能省下大量费用。

技巧三:声明式 Agent 定义

在项目的 .claude/agents/ 目录下,你可以用 Markdown 文件定义专用 Agent,精细控制:

这适合那些会反复出现的固定角色,比如 Code Reviewer、Security Auditor。定义一次,长期复用。


常见误区

误区一:所有任务都用最强模型

“反正最强模型什么都能做,用它准没错。“——这是最昂贵的错误。简单任务用强模型,就像开坦克去买菜,到是到了,但油费够买一年的菜了。

正确做法:只在需要深度推理的场景(架构设计、复杂 debug、创意方案)使用旗舰模型。

误区二:每个任务都新开一个独立 Agent

新开 Agent 意味着全新的上下文,之前的对话信息全部丢失。如果任务依赖当前上下文,应该用 Fork 而不是新建。

正确做法:需要当前上下文 → Fork;不需要上下文 → 独立 Agent。

误区三:轻量模型不靠谱

很多人觉得小模型”太弱”不敢用。但对于文件搜索、代码格式化、简单文本处理这类任务,Haiku 级别的模型准确率已经非常高,而且速度是旗舰模型的数倍。

正确做法:先试小模型,效果不够再升级,别一上来就”杀鸡用牛刀”。

误区四:忽略国产模型

对于中低难度的任务,国内模型(如 DeepSeek、Qwen)完全胜任,响应速度还更快(物理距离近),成本也更低。没必要所有事都依赖海外旗舰模型。


总结

模型组合使用的核心逻辑:

  1. 分级:把任务按所需”思考力”分级——高(架构/创意)、中(日常编码)、低(搜索/格式化)
  2. 匹配:每个级别匹配对应能力的模型——旗舰、标准、轻量
  3. 并行:能并行的子任务拆开给多个轻量 Agent 同时执行
  4. 复用:通过 Fork 和缓存机制,避免重复计算上下文

随着 AI 能力越来越强,旗舰模型的 token 成本只会越来越高、供应也会越来越紧张。学会精细化分配模型的推理能力,就像学会管理团队一样——把对的人放在对的位置上,才是真正的效率。


FAQ

Q: 我怎么判断一个任务该用什么级别的模型?

简单标准:如果任务的”正确答案”几乎只有一个(比如搜索文件、格式化代码),用轻量模型;如果任务需要”权衡取舍”(比如架构选型、方案对比),用强模型。

Q: 模型组合会不会导致结果不一致?

会有这个风险。解决方法是:让强模型做”决策”,轻量模型做”执行”。执行类任务的输出是确定性的,不太受模型能力影响;而决策类任务由强模型保证质量。

Q: 除了 Claude Code,其他工具也能这样用吗?

可以。任何支持多模型调用的框架(如 LangChain、OpenRouter)都能实现类似的调度策略。核心思路是一样的:按任务难度路由到不同模型。

Q: Prompt Cache 是什么?为什么能省钱?

Prompt Cache(提示缓存)是指把已经处理过的上下文 token 缓存起来,后续请求如果前缀相同,就不需要重新计算。这样 Fork 出的子 Agent 只需要为”新增部分”付费,而不是为整个上下文重新付费。


Share this post on:

Previous Post
为什么你的 Agent 跑不了长程任务?
Next Post
如何让 AI 进入疯狂工作模式