# 釘死 agent 實際跑的模型——plan 用一個、執行用另一個

> 釘死 agent 實際跑的模型並把 plan 模式與執行分開:入口白名單 + 全面模型映射 + plan 模式指令碼切流,開發再也無法把簡單任務路由到 Opus。

規範連結: https://www.gatellm.io/zh-TW/use-cases/enforce-model-policy/

先消掉客戶端側的模型選擇權,再把 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 標籤,每條請求的真實落點可稽核
- 熱生效:映射與規則即時生效——不用重啟,不用逐開發派發

## FAQ
### 為什麼不用 switch-route 宣告式規則做 plan 判定?
switch-route 的 predicate 只做結構存在與小值相等判定,刻意不讀字串正文——這正是大 body 能留在磁碟上的原因。plan 標記在正文文字裡,只能用 before-slot 指令碼;結構性判定(帶圖 → 視覺模型)才是 switch-route 的用武之地。

### 客戶端改自己設定還能選 Opus 嗎?
不能。入口閘對白名單之外的模型名直接 403,全面映射把剩下的名字正規化為指定模型。請求到達閘道器那一刻起,模型選擇就不再是客戶端能決定的事。

### 指令碼看著沒生效、日誌也沒報錯?
每個指令碼跑在獨立 QuickJS 沙箱裡,堆上限預設 64MB(SCRIPT_MEMORY_LIMIT_MB)。記憶體溢位時預設 log-and-continue 會靜默丟棄本次執行的全部副作用(含 useModel),對外表現就是路由沒切。Claude Code 的 tool 定義先佔了記憶體,先抬上限(改後需重啟)。

- [完整教程:plan 模式切模型(docs 站)](https://docs.gatellm.io/zh-CN/howto/script-switch-model-by-plan-mode)

## 相關場景
- [客戶端不暴露模型選擇:閘道器按對話狀態自動分檔](https://www.gatellm.io/zh-TW/use-cases/automatic-model-tiering.md)

## 相關頁面
- [首頁](https://www.gatellm.io/zh-TW/index.md)
- [定價](https://www.gatellm.io/zh-TW/pricing.md)
- [成本計算器](https://www.gatellm.io/zh-TW/calculator.md)
- [關於](https://www.gatellm.io/zh-TW/about.md)
- [預約示範](https://www.gatellm.io/zh-TW/demo.md)
- [常見問題](https://www.gatellm.io/zh-TW/faq.md)
- [比較 AI 閘道](https://www.gatellm.io/zh-TW/compare.md)
- [比較 LiteLLM](https://www.gatellm.io/zh-TW/compare/litellm.md)
- [比較 OpenRouter](https://www.gatellm.io/zh-TW/compare/openrouter.md)
- [比較 Alibaba Cloud AI Gateway](https://www.gatellm.io/zh-TW/compare/alibaba-cloud.md)
- [比較 Azure API Management](https://www.gatellm.io/zh-TW/compare/azure-apim.md)
- [比較 Apigee](https://www.gatellm.io/zh-TW/compare/apigee.md)
- [比較 Cloudflare AI Gateway](https://www.gatellm.io/zh-TW/compare/cloudflare.md)
- [比較 Kong AI Gateway](https://www.gatellm.io/zh-TW/compare/kong.md)
- [比較 Portkey](https://www.gatellm.io/zh-TW/compare/portkey.md)
- [LiteLLM vs Kong AI Gateway 比較](https://www.gatellm.io/zh-TW/compare/litellm-vs-kong.md)
- [LiteLLM vs OpenRouter 比較](https://www.gatellm.io/zh-TW/compare/litellm-vs-openrouter.md)
- [LiteLLM vs Portkey 比較](https://www.gatellm.io/zh-TW/compare/litellm-vs-portkey.md)
- [場景方案](https://www.gatellm.io/zh-TW/use-cases.md)
- [降低呼叫成本](https://www.gatellm.io/zh-TW/use-cases/reduce-cost.md)
- [達成高可用](https://www.gatellm.io/zh-TW/use-cases/high-availability.md)
- [多租戶隔離](https://www.gatellm.io/zh-TW/use-cases/multi-tenant.md)
- [合規與稽核](https://www.gatellm.io/zh-TW/use-cases/compliance-audit.md)
- [從症狀排障](https://www.gatellm.io/zh-TW/use-cases/troubleshooting.md)
- [混合多供應商模型堆疊](https://www.gatellm.io/zh-TW/use-cases/mixed-model-stack.md)
- [在 Office 內自架 AI](https://www.gatellm.io/zh-TW/use-cases/self-hosted-office-ai.md)
- [Token 用量可見性與歸因](https://www.gatellm.io/zh-TW/use-cases/token-ops.md)
- [Token FinOps: AI 支出分攤與管控](https://www.gatellm.io/zh-TW/use-cases/token-finops.md)
- [MCP 工具治理](https://www.gatellm.io/zh-TW/use-cases/mcp-tool-governance.md)
- [為所有模型統一加入網路搜尋](https://www.gatellm.io/zh-TW/use-cases/web-search-grounding.md)
- [多 Key 輪替與備援](https://www.gatellm.io/zh-TW/use-cases/multi-key-pooling.md)
- [限制接入的用戶端](https://www.gatellm.io/zh-TW/use-cases/client-admission-control.md)
- [用戶端不暴露模型選擇](https://www.gatellm.io/zh-TW/use-cases/automatic-model-tiering.md)
- [一種協定,任何模型](https://www.gatellm.io/zh-TW/use-cases/one-protocol-any-model.md)
- [Office / Microsoft 365 增益集](https://www.gatellm.io/zh-TW/office-addin.md)
- [術語表](https://www.gatellm.io/zh-TW/glossary.md)
- [模型目錄](https://www.gatellm.io/zh-TW/models.md)
- [SDK 與框架整合](https://www.gatellm.io/zh-TW/integrations.md)
- [AI Coding Agent 與 Harness](https://www.gatellm.io/zh-TW/coding-agents.md)
- [安全性與合規](https://www.gatellm.io/zh-TW/security.md)
