高级平台 / AI 工程

钉死 agent 实际跑的模型——plan 用一个、执行用另一个

先消掉客户端侧的模型选择权,再把 plan 模式与执行阶段分开:强模型规划、便宜模型执行。

社区真正在抱怨什么

「开发把 Claude Code 切到 Opus 去总结一份 changelog」「每个人的设置里模型都不一样,我们根本看不清谁花了多少钱」「我们试过客户端侧策略,可谁都能随手改回去」。

模型选择是一笔成本决策,不是开发的个人偏好——它必须在网关、在请求真正落地的地方强制执行。

GateLLM 怎么做

三层叠加、一层都不可省:key 组的 models 白名单(入口闸)对未授权模型名直接 403;from 为 "*" 的全量模型映射把客户端请求的任何名字重写为指定模型;before-slot 脚本让 plan 态留在强模型、退出后切到执行模型。

Claude Code 的绕过请求(比如会话标题生成)不带 plan 标记,自然落到便宜的执行模型——这正是你要的「别拿 Opus 做总结」。

落地的 5 个手段

  • 入口闸:key 组的 models 白名单在路由前就拒绝任何未授权模型名
  • 全量映射:from "*" → to 指定模型,把任何请求名归一为一个模型
  • plan/exec 分流:before-slot 脚本读 plan 模式标记,仅在退出 plan 后切换路由
  • 可观测:被切走的请求在日志里带 SW 标签,每条请求的真实落点可审计
  • 热生效:映射与规则即时生效——不用重启,不用逐开发下发
完整教程:plan 模式切模型(docs 站)

FAQ