跳到主要内容

模型选择策略

核对日期:2026-05-09。

1. 定义与边界

模型选择不是“选最强模型”,而是在任务成功率、工具稳定性、上下文长度、延迟、成本、安全和供应商约束之间做工程权衡。官方模型能力以 OpenAI、Anthropic、Google 等厂商文档为准;排行榜和社区测试只能作为补充。

2. 为什么重要

Agent 失败通常不是单一模型问题。低风险摘要任务用高推理模型会浪费成本;高风险工具链使用廉价模型可能导致错误调用;长文档任务只看上下文窗口又会忽略引用、压缩和检索质量。

3. 核心机制

选择模型前先拆任务:

维度需要问的问题影响
任务类型生成、抽取、推理、代码、视觉、语音、工具调用?模型族和多模态能力
工具复杂度是否需要多步 tool calling、结构化输出、并行工具?工具调用稳定性
上下文输入规模、历史轮次、证据引用要求?上下文窗口与检索策略
风险是否涉及资金、权限、个人信息、生产变更?人类在环和护栏
SLAp95 延迟、吞吐、可用性?模型大小、并发和路由
预算单任务可接受成本?分层路由和缓存

4. 架构模式

5. 工程实现

推荐用模型能力卡(model capability card)管理,而不是把模型名散落在代码里:

models:
default_fast:
provider: openai
model: "official-fast-model-id"
supports_tools: true
supports_vision: true
max_input_tokens: "see provider docs"
risk_level: low
deep_reasoning:
provider: openai
model: "official-reasoning-model-id"
supports_reasoning_effort: true
risk_level: medium
routes:
refund_policy_analysis:
primary: deep_reasoning
fallback: default_fast
requires_eval_suite: refund_v3

路由器只读取能力标签,不直接写死供应商:

def choose_model(task):
if task.risk in {"money", "production", "privacy"}:
return "deep_reasoning_with_approval"
if task.needs_long_context:
return "long_context_model"
if task.volume == "high" and task.complexity == "low":
return "fast_model"
return "balanced_model"

6. 生产实践

  • 每个模型升级都要跑固定评测集和线上影子流量。
  • 记录模型版本、参数、系统提示词、工具 schema 版本和路由理由。
  • 供应商能力变化较快,模型卡应有 last_verified_at 字段。
  • 对高成本模型设置预算阈值和 fallback,但 fallback 不应绕过安全策略。
  • 不要把“长上下文模型”当默认,先看是否能检索、分块和摘要。

7. 常见反模式

反模式问题
按聊天观感选 Agent 模型忽略工具调用、格式稳定性和延迟
只看上下文窗口忽略证据引用和中间信息遗失
线上直接切最新模型引入未知行为差异
所有任务都走一个模型成本和失败模式不可控
用社区 wrapper 能力冒充模型原生能力可维护性差,升级风险高

8. 评测方法

至少准备三类集:

  1. 黄金集:历史真实任务,人工标注成功标准。
  2. 对抗集:prompt injection、脏数据、工具错误返回、模糊需求。
  3. 回归集:模型升级和提示词改动前后必须比较。

核心报表:

指标解释
成功率差值新旧模型在同一数据集上的差异
成本/成功任务失败重试也计入成本
p95 延迟真实用户体验和队列容量
安全违规率越权工具、敏感信息输出、策略绕过

9. 安全与治理

高风险任务不应只靠模型分级。必须把身份、权限、审批、数据分级放在模型外部。供应商之间切换时还要确认数据保留、区域、企业合同和日志策略。

10. 决策框架:模型选择评分卡

模型选型建议先打分,再做小流量验证。不要把“最新”“最大”“榜单最高”当默认答案。

维度权重建议评分问题不达标时
任务成功率30%在黄金集上是否显著优于基线不上线或缩小适用任务
工具调用稳定性20%工具选择和参数是否稳定优化 schema 或换模型
安全与拒绝15%越权、注入、敏感外发是否阻断加 policy gate,不靠模型
延迟10%p95 是否满足交互/批处理 SLA路由到快速模型或异步化
成本10%每个成功任务成本是否可接受缓存、分层路由、限制上下文
上下文与模态10%是否支持长文、多模态、结构化输出RAG/压缩或换专用模型
供应商治理5%数据保留、区域、合同是否满足私有部署或禁用该路由

11. 预算模型

单次模型调用便宜不代表 Agent 便宜。建议按“成功任务”建模:

total_cost_per_success =
(model_input_cost + model_output_cost
+ tool_cost + retrieval_cost
+ retry_cost + human_review_cost)
/ task_success_rate

任务预算配置示例:

model_budget_policy:
support_triage:
target_success_rate: 0.90
max_cost_per_success_usd: 0.08
max_latency_p95_ms: 5000
primary_route: fast_tool_model
upgrade_when:
- confidence_below: 0.72
- safety_risk: medium
production_change:
target_success_rate: 0.98
max_cost_per_success_usd: 3.00
max_latency_p95_ms: 90000
primary_route: reasoning_model
required_gates:
- policy
- approval
- deterministic_test

12. Fallback 策略

fallback 不是简单把模型换成另一个。每种失败需要不同动作:

触发条件不推荐推荐
JSON 格式错误直接升级强模型同模型 repair prompt,一次为限
工具参数缺字段让模型猜向用户澄清或查权威数据
低置信度复杂推理重复采样投票升级推理模型并启用 verifier
供应商 5xx/限流无限重试熔断、队列、备用供应商
安全策略失败换模型绕过直接拒绝并写审计
成本超预算降级后继续写操作只读摘要或请求人工确认

13. 选型评测方案

评测数据要按任务类型分桶,不要用一个平均分覆盖所有路由。

数据集内容指标
Golden真实历史任务和人工验收答案task success、groundedness
Tool需要函数调用和多步工具链的任务tool call accuracy、argument validity
Safetyprompt injection、越权、敏感数据block rate、unsafe action rate
Long Context长文、早期约束、冲突证据key fact retention、citation accuracy
Regression模型升级前后固定样例delta、成本、p95 延迟

准入建议:

  • 新模型必须优于当前模型或在成本/延迟上显著收益,不能只“差不多”。
  • 任何安全指标下降都需要主控确认。
  • 高风险路由必须保留旧模型一键回滚。
  • 评测报告记录模型 ID、参数、提示词版本、工具 schema 版本、核对日期。

14. 不适用场景

以下情况不应只通过模型选型解决:

  • 业务规则不清,需要先定义流程和权限。
  • 数据源不可信,需要先做数据治理和检索 ACL。
  • 工具缺少幂等、审计、回滚,换模型无法降低副作用风险。
  • 组织无法承担人工审批延迟,却要求模型自动处理高风险动作。

15. 权威资料