Damn AgentBeta

模型选型与能力边界

按任务类型、上下文长度、延迟、成本、工具能力和多模态需求选择模型。

模型选型不是“哪个分数最高选哪个”,而是为你的 Agent 工作流匹配能力层级、成本曲线和失败可恢复性。

先问五个问题

  1. 任务是单次回答,还是多步工具闭环。
  2. 需要多长上下文,工具结果会不会反复回灌。
  3. 错误代价有多高,能不能接受草稿式输出。
  4. 延迟和成本预算如何,是交互式还是批处理。
  5. 是否需要视觉、音频、代码专项或结构化输出增强。

能力维度对照

维度低端模型可胜任通常需要更强模型
指令跟随摘要、分类、模板填充复杂约束、多层规则同时满足
推理深度简单步骤拆解长链路规划、跨文件代码修改
工具调用单工具、参数简单多工具编排、脆弱参数、恢复重试
代码能力补全、解释跨仓库重构、测试驱动修复
上下文短对话、小文档大仓库、长轨迹、多轮失败恢复
稳定性原型验证生产回归、低温度下的一致行为

常见部署形态

形态优点注意点
托管 API上手快、版本新、免运维记录 model id、区域、配额和日志策略
私有化 / 专有云数据边界可控版本滞后、推理性能和工具能力要对齐评测
开源权重自托管成本可控、可定制需要 GPU 运维、工具调用和结构化能力自行验证
多模型路由简单任务省钱,难任务升级路由规则、回退链路和评测必须配套

推荐的分层策略

  1. 路由层:用便宜模型做分类、检索改写、摘要和意图识别。
  2. 执行层:用强模型做规划、代码修改、复杂工具编排。
  3. 评审层:用独立模型或规则做格式检查、风险审查(可选)。
  4. 降级层:强模型失败时,切到更简单路径或人工接管。

不要假设“一个模型包打天下”。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 产品可以把模型调用分成几类:

  1. 轻量模型:意图识别、搜索查询改写、短摘要、分类。
  2. 主力模型:计划生成、工具选择、文档写作、代码局部修改。
  3. 强推理模型:跨模块重构、复杂 bug 定位、多步恢复、架构评审。
  4. 规则或传统程序:权限判断、schema 校验、格式化、确定性计算。

路由的关键是可观测:每次升级到强模型或降级到轻模型,都要记录原因和效果,不能只凭感觉节省成本。

上线前验证

模型切换前至少跑三类验证:

  • 质量验证:固定任务集上成功率、人工评分、引用准确率是否改善。
  • 行为验证:工具调用次数、错误重试、拒答率、人工接管率是否异常。
  • 成本验证:平均 token、P95 延迟、缓存命中率、单任务费用是否可接受。

如果模型在基准上更强,但在你的工具链里更容易生成非法参数或更频繁触发权限确认,就不一定是更好的 Agent 模型。

采购与治理问题

工程选型还要覆盖非模型指标:

  • 数据是否允许发送到该 provider,是否需要区域、加密或私有化部署。
  • 是否能拿到稳定 model id、版本说明、用量日志和速率限制。
  • 是否支持所需 SDK、流式输出、结构化输出、工具调用、多模态输入。
  • 是否有回滚方案,例如保留旧模型路由、降级提示词或人工接管流程。
  • 是否能把模型变更纳入发布流程,而不是临时改环境变量。

延伸阅读

On this page