模型选型与能力边界
按任务类型、上下文长度、延迟、成本、工具能力和多模态需求选择模型。
模型选型不是“哪个分数最高选哪个”,而是为你的 Agent 工作流匹配能力层级、成本曲线和失败可恢复性。
先问五个问题
- 任务是单次回答,还是多步工具闭环。
- 需要多长上下文,工具结果会不会反复回灌。
- 错误代价有多高,能不能接受草稿式输出。
- 延迟和成本预算如何,是交互式还是批处理。
- 是否需要视觉、音频、代码专项或结构化输出增强。
能力维度对照
| 维度 | 低端模型可胜任 | 通常需要更强模型 |
|---|---|---|
| 指令跟随 | 摘要、分类、模板填充 | 复杂约束、多层规则同时满足 |
| 推理深度 | 简单步骤拆解 | 长链路规划、跨文件代码修改 |
| 工具调用 | 单工具、参数简单 | 多工具编排、脆弱参数、恢复重试 |
| 代码能力 | 补全、解释 | 跨仓库重构、测试驱动修复 |
| 上下文 | 短对话、小文档 | 大仓库、长轨迹、多轮失败恢复 |
| 稳定性 | 原型验证 | 生产回归、低温度下的一致行为 |
常见部署形态
| 形态 | 优点 | 注意点 |
|---|---|---|
| 托管 API | 上手快、版本新、免运维 | 记录 model id、区域、配额和日志策略 |
| 私有化 / 专有云 | 数据边界可控 | 版本滞后、推理性能和工具能力要对齐评测 |
| 开源权重自托管 | 成本可控、可定制 | 需要 GPU 运维、工具调用和结构化能力自行验证 |
| 多模型路由 | 简单任务省钱,难任务升级 | 路由规则、回退链路和评测必须配套 |
推荐的分层策略
- 路由层:用便宜模型做分类、检索改写、摘要和意图识别。
- 执行层:用强模型做规划、代码修改、复杂工具编排。
- 评审层:用独立模型或规则做格式检查、风险审查(可选)。
- 降级层:强模型失败时,切到更简单路径或人工接管。
不要假设“一个模型包打天下”。Claude Code 等产品也会在查询引擎里处理模型版本、token 预算、stop reason 和流式事件,说明模型只是链路中的一环。来源:《Demystifying Claude Code v1.8》,pp. 62-69。
版本与回归
模型名不变但权重悄悄更新时,Agent 行为可能漂移。生产系统应:
- 在 trace 中保存 provider、model、snapshot 或 version 字段。
- 对关键任务维护固定评测集,模型升级先跑回归。
- 对工具调用成功率和格式通过率设阈值,异常时告警或自动降级。
与语言选型的关系
- 产品化 Agent、Web UI、MCP 集成通常优先 TypeScript。
- RAG、评测、实验性管线通常优先 Python。
- 模型本身的能力边界,和语言选型是正交问题:先定任务,再定模型,再定 SDK 和运行时。
失败模式
| 决策 | 常见后果 |
|---|---|
| 只看榜单分数 | 真实工具链表现不佳 |
| 上下文不够仍硬上 | 频繁压缩、丢约束、成本上升 |
| 强模型做所有子任务 | 成本和延迟失控 |
| 无版本记录 | 线上问题无法复现和回滚 |
选型矩阵
做模型选型时,可以先把任务拆成下面几个维度:
| 维度 | 低要求 | 高要求 |
|---|---|---|
| 推理深度 | 分类、改写、摘要 | 长链规划、跨文件修复、复杂数学 |
| 上下文长度 | 单轮短输入 | 大仓库、多文档、长 trace |
| 工具复杂度 | 单工具、只读 | 多工具、有副作用、需要恢复 |
| 输出约束 | 自然语言 | 严格 JSON、代码 diff、可执行计划 |
| 风险等级 | 草稿、内部辅助 | 生产操作、财务、权限、安全 |
| 交互延迟 | 离线批处理 | 实时 UI、终端 pair programming |
高要求维度越多,越应该选择更强模型、更多验证、更细的路由和更保守的权限策略。
路由策略示例
一个常见 Agent 产品可以把模型调用分成几类:
- 轻量模型:意图识别、搜索查询改写、短摘要、分类。
- 主力模型:计划生成、工具选择、文档写作、代码局部修改。
- 强推理模型:跨模块重构、复杂 bug 定位、多步恢复、架构评审。
- 规则或传统程序:权限判断、schema 校验、格式化、确定性计算。
路由的关键是可观测:每次升级到强模型或降级到轻模型,都要记录原因和效果,不能只凭感觉节省成本。
上线前验证
模型切换前至少跑三类验证:
- 质量验证:固定任务集上成功率、人工评分、引用准确率是否改善。
- 行为验证:工具调用次数、错误重试、拒答率、人工接管率是否异常。
- 成本验证:平均 token、P95 延迟、缓存命中率、单任务费用是否可接受。
如果模型在基准上更强,但在你的工具链里更容易生成非法参数或更频繁触发权限确认,就不一定是更好的 Agent 模型。
采购与治理问题
工程选型还要覆盖非模型指标:
- 数据是否允许发送到该 provider,是否需要区域、加密或私有化部署。
- 是否能拿到稳定 model id、版本说明、用量日志和速率限制。
- 是否支持所需 SDK、流式输出、结构化输出、工具调用、多模态输入。
- 是否有回滚方案,例如保留旧模型路由、降级提示词或人工接管流程。
- 是否能把模型变更纳入发布流程,而不是临时改环境变量。
延伸阅读
- LLM 概览:能力边界与 Agent 分工。
- 框架选型总览:模型之外的编排框架选择。
- 评测与回归:用数据而不是直觉验证模型变更。
- OpenAI 模型文档:查看具体模型能力时应以官方当前文档为准。