AI Agent 开发中的模型调度策略:何时用便宜模型,何时用强模型

张开发
2026/5/30 4:38:04 15 分钟阅读
AI Agent 开发中的模型调度策略:何时用便宜模型,何时用强模型
一个 Agent 跑一次任务背后可能调用模型十几次。如果每次都用 Claude Opus成本会让你心疼但如果全用最便宜的模型效果又会一塌糊涂。聪明的做法是按任务类型选模型把钱花在刀刃上。为什么 Agent 的成本控制比普通调用更重要普通的 LLM 调用是一问一答用户发一条消息模型回一条结束。但 Agent 不一样。一个真正的 Agent 任务会触发一系列的模型调用先理解任务、制定计划planning依次执行每个步骤可能调用工具、处理数据execution每步执行后检查结果是否符合预期reflection最后汇总输出synthesis一次看似简单的帮我分析这份合同里的风险条款背后可能是 15 次模型调用。如果每次都用 Claude Opus 4约 $15/M tokens一个任务下来就烧几美元。对于高频场景成本完全不可接受。关键洞察这 15 次调用并不是一样的。有些需要深度推理有些只是在提取信息有些甚至只是格式转换。不同步骤对模型能力的需求差异极大。不同步骤需要什么样的模型Planning 和 Reflection需要强模型这两个步骤决定任务的方向和质量是整个 Agent 的大脑。Planning需要模型理解复杂意图、拆解多步骤任务、考虑边界情况。用弱模型做 planning计划本身就会有缺陷后续执行再完美也没用。Reflection需要模型判断执行结果是否正确、是否偏离目标、是否需要回滚。这里的判断失误会导致整个任务走歪。推荐anthropic/claude-opus-4或openai/gpt-4o代码生成Claude Sonnet 性价比最高代码生成是个特殊的步骤。它需要足够的推理能力写出正确逻辑但不需要 Opus 级别的战略思维。根据实际测试Claude Sonnet 4 在代码任务上的表现接近 Claude Opus 4但价格只有后者的五分之一。这是非常划算的替换。推荐anthropic/claude-sonnet-4信息提取和简单工具调用用 mini/flash 级别这类任务包括从文本中提取结构化字段日期、金额、人名判断一段文本属于哪个分类把工具返回的 JSON 转成自然语言描述简单的问答基于已有上下文回答明确问题这些任务对推理能力要求不高用最便宜的模型完全够用。推荐openai/gpt-4o-mini或google/gemini-2.0-flash代码示例一个混合模型的 Agent 框架下面是一个实际可用的 Python 示例展示如何根据步骤类型动态选择模型。使用 TheRouter 的 API只需一个 API Key 就能访问所有模型。importosfromopenaiimportOpenAI clientOpenAI(api_keyos.environ[THEROUTER_API_KEY],base_urlhttps://api.therouter.ai/v1)# 模型配置按任务类型分配MODEL_CONFIG{planning:anthropic/claude-opus-4,# 强推理做规划reflection:anthropic/claude-opus-4,# 强推理做审查code:anthropic/claude-sonnet-4,# 代码能力强性价比高extract:openai/gpt-4o-mini,# 信息提取快速便宜classify:google/gemini-2.0-flash,# 分类判断极速极省summarize:openai/gpt-4o-mini,# 摘要生成无需强模型}defcall_model(task_type:str,prompt:str,system:strNone)-str:modelMODEL_CONFIG[task_type]messages[]ifsystem:messages.append({role:system,content:system})messages.append({role:user,content:prompt})responseclient.chat.completions.create(modelmodel,messagesmessages,max_tokens2048,)returnresponse.choices[0].message.contentdefrun_agent(user_request:str)-str:print(f[planning] 使用{MODEL_CONFIG[planning]}...)# Step 1: Planning — 用强模型分析任务制定执行计划plan_promptf 用户请求{user_request}请将这个任务拆解成具体的执行步骤每个步骤标注类型 - code: 需要生成/修改代码 - extract: 从文本中提取信息 - classify: 判断分类 - summarize: 生成摘要 输出格式JSON {{steps: [{{type: code, description: ..., input: ...}}]}} plan_jsoncall_model(planning,plan_prompt)# 实际项目中这里会 parse JSON这里用伪代码简化importjsontry:planjson.loads(plan_json)stepsplan.get(steps,[])except:steps[{type:summarize,description:回答用户问题,input:user_request}]results[]fori,stepinenumerate(steps):step_typestep.get(type,summarize)step_inputstep.get(input,step.get(description,))print(f[step{i1}] 类型{step_type}使用{MODEL_CONFIG.get(step_type,MODEL_CONFIG[summarize])}...)resultcall_model(task_typestep_typeifstep_typeinMODEL_CONFIGelsesummarize,promptstep_input)results.append({step:step.get(description),result:result})# Step 3: Reflection — 用强模型审查执行结果print(f[reflection] 使用{MODEL_CONFIG[reflection]}...)reflection_promptf 原始请求{user_request}执行结果{json.dumps(results,ensure_asciiFalse,indent2)}请审查上述执行结果 1. 是否完整回答了用户的请求 2. 是否有明显错误或遗漏 3. 输出最终的综合答案。 final_answercall_model(reflection,reflection_prompt)returnfinal_answer# 运行示例if__name____main__:resultrun_agent(帮我写一个 Python 函数从 JSON 数组中提取所有 email 字段去重后排序)print(\n 最终结果 )print(result)运行这个 Agent你会在日志里看到不同步骤使用了不同的模型[planning] 使用 anthropic/claude-opus-4... [step 1] 类型code使用 anthropic/claude-sonnet-4... [step 2] 类型extract使用 openai/gpt-4o-mini... [reflection] 使用 anthropic/claude-opus-4...成本对比全强模型 vs 混合路由以一个典型的文档分析 Agent 为例处理一份 5 页的合同文档步骤Token 消耗约全强模型Opus混合路由Planning2,000$0.030$0.030Opus文本提取 × 58,000$0.120$0.008GPT-4o-mini分类判断 × 105,000$0.075$0.003Gemini Flash代码生成 × 24,000$0.060$0.012SonnetReflection3,000$0.045$0.045Opus合计22,000$0.330$0.098混合路由把成本降低了 70%同时在关键步骤planning/reflection保持了最高质量。对于高频场景比如每天跑 1000 次这样的 Agent节省的费用是全强模型$330/天 ≈ $10,000/月混合路由$98/天 ≈ $3,000/月省下来的 $7,000/月对独立开发者或小团队来说非常可观。为什么 TheRouter 让混合路由变得简单混合路由最大的工程障碍通常是需要维护多个 API 客户端# 没有路由网关的痛苦每个提供商都要单独配置anthropic_clientanthropic.Anthropic(api_keyANTHROPIC_KEY)openai_clientopenai.OpenAI(api_keyOPENAI_KEY)google_clientgoogle.generativeai.configure(api_keyGOOGLE_KEY)# 每次调用都要选不同的客户端和不同的 API 格式这带来了额外的复杂度多个 API Key 要管理、多种 API 格式要适配、多个 SDK 要维护。使用 TheRouter只需一个客户端# 使用 TheRouter一个客户端切换 model 参数即可clientOpenAI(api_keyTHEROUTER_API_KEY,base_urlhttps://api.therouter.ai/v1)# Planning强模型planclient.chat.completions.create(modelanthropic/claude-opus-4,...)# 提取便宜模型dataclient.chat.completions.create(modelopenai/gpt-4o-mini,...)# 代码Sonnetcodeclient.chat.completions.create(modelanthropic/claude-sonnet-4,...)同一个client对象切换model参数就行。API 格式统一不需要适配不同 SDK。真实案例法律文档审查 Agent一个朋友在做合同风险审查的 SaaS 工具。最初全程用 Claude Opus每份合同分析费用约 $0.50用户量上来后成本急剧攀升。改造方案文本分块和初步分类改用google/gemini-2.0-flash速度更快每份合同这部分成本从 $0.15 降到 $0.01具体条款的风险识别保留anthropic/claude-opus-4这是核心价值不能妥协标准条款说明生成改用openai/gpt-4o-mini费用降低 90%最终风险报告保留anthropic/claude-opus-4改造后每份合同的分析成本从 $0.50 降到 $0.18降幅 64%同时用户反馈质量没有下降因为关键推理步骤没有妥协。小结混合路由的设计原则识别关键路径哪些步骤的质量直接影响最终结果这些用强模型不省这点钱。批量操作用弱模型提取、分类、格式转换这类体力活便宜模型完全够用。代码生成是个例外Sonnet 级别往往足够不需要 Opus。用一个网关统一管理减少工程复杂度避免维护多套 API 配置。记录每步的 token 消耗建立成本基线才能持续优化。混合路由不是用便宜货凑合而是把预算分配给真正需要的地方。这是 Agent 工程从玩具走向产品的必经之路。

更多文章