
面向應用研發、平台研發,以及使用 AI 程式設計工具的團隊。
節省 Token 的重點,不是把提示詞刪短,而是讓模型少做無效工作。 重複讀取、無關上下文、冗長輸出和失敗重工,都應進入最佳化範圍。
最佳化目標是:在品質、安全和延遲达標的前提下,降低每個驗收通過任務的總成本。本文以按用量計費的模型 API 為主,訂閱產品和 IDE 套餐需單獨確認額度規則。
如何使用這篇文章
這篇文章不是一份“模型參數說明書”,而是一套從實際 Agent、Skill、MCP、AI 程式設計與 API 工程中沉淀出來的成本最佳化經驗。
最直接的用法,是把這篇文章连同你的工程資訊一起交給 AI,讓它按本文的原則檢查並最佳化現有系統。
你不需要一次性改完所有內容。先讓 AI 找出最明顯的浪費:重複上下文、過大的工具傳回、無效重試、模型使用過重、輸出過長、快取結構不合理,再按效益逐項改造。
閱讀导航
| 你要解決的問題 | 直接閱讀 |
|---|---|
| 如何判斷省錢效果、安排最佳化順序 | 成本核算 · 落地順序 |
| 輸入太長,歷史記錄愈來愈重 | 上下文管理 · 快取 |
| Agent 工具多、呼叫多、容易空转 | 工具與 Skill · 執行控制 |
| 模型太貴,回答和推理太長 | 模型與輸出 · 其他降低成本方式 |
1. 先算任務成本,別只看 Token 總數
關鍵 1|分清省 Token、省費用和省時間。 減少輸入、輸出和呼叫輪次,是省 Token;快取折扣、模型選擇和批處理,主要改變費用;流式輸出與並發,主要改善等待體驗。評估前先明確目標,不能把“更快”直接當成“更便宜”。
關鍵 2|把失敗和重試算進去。 任務總費用應包括全部嘗試、子 Agent、模型複核和工具執行,不只計算成功的那次呼叫。
注意|成本下降不能掩蓋品質退化。 同時檢查成功率、P95 延遲和關鍵風險情境。通過數為零時,成本指標應標記為不可計算,而不是零。
2. 少給無關材料,不少給關鍵證據
關鍵 1|先處理資料,再交給模型。 網頁提取正文,日誌折疊重複內容,表格先篩選彙總,程式碼先搜尋定位。文字型文檔優先讀文本,截圖只保留相關區域;保留來源、數值和單位,不為省 Token 犧牲小字識別或坐標精度。
關鍵 2|RAG 按證據預算組装。 按“權限與版本過濾 → 檢索 → 去重排序 → 按預算組装”處理,不固定塞滿若干段。證據保留來源和位置;不足時擴大檢索,而不是強行回答。
關鍵 3|長任務儲存狀態,不搬運整段聊天。 原始材料單獨存儲,工作上下文保留目標、約束、已確認事實、產物位置、未解決問題和下一步。在階段完成或接近預算時評估摘要與 Compaction,不必每轮壓縮。
關鍵 4|會話續接不等於歷史免費。 previous_response_id 用於延續狀態,歷史輸入仍计費;使用服務端續接時,不要再手動加入同一份完整歷史。
注意|摘要不能成為唯一的記忆。 關鍵權限、約束和原始證據應獨立儲存。業務摘要與 API 的 Compaction 不是同一機制;後者須按介面約定保留並續接傳回項。
3. 快取靠穩定複用,不靠凑命中率
關鍵 1|固定內容靠前,動態內容靠後。 穩定規則、工具說明和輸出約定與本轮輸入分區;時間戳、隨機 ID 不插入穩定前綴。工具順序和 schema 保持確定性,並檢查中間件是否重複注入內容。
關鍵 2|把冷啟动、寫入和過期一起算。 Prompt Cache 複用前綴計算,不是複用答案,通常不減少統計中的輸入 Token。評估要包含首次建立、後續讀取和過期重建;快取寫入的費用,應按供應商確認好。
關鍵 3|工具結果快取、答案快取另行設計。 前者省重複查詢,後者可能省掉整次模型呼叫。建議快取鍵包含租戶、權限、資料版本和查詢條件,並明確失效規則;語義相似不等於可以跨使用者複用。
注意|更短不一定更便宜。 將已命中的長前綴改成摘要,要同時計算摘要生成和後續快取重建的成本。比較後續總費用,不只比較壓縮前后的長度。
4. 工具既要少載入,也要少傳回
關鍵 1|常用小工具集常駐,大目錄按需載入。 低頻工具通過 Tool Search 等機制發現;Skill 先提供名稱和用途,選中后再讀規則。延遲載入會增加發現步驟,defer_loading 也不是所有 MCP 用戶端通用的開關。
關鍵 2|在工具端裁剪,不讓模型事后忽略。 搜尋傳回片段,查詢傳回必要欄位,測試傳回狀態與失敗摘要,完整資料按需讀取。數量和大小上限由程式執行,截斷時傳回標記或分頁遊標。
關鍵 3|中間資料留在程式裡。 過濾、排序、加總、連接和格式轉換交給程式碼;模型負責理解需求、處理例外和解釋結果。程式化組合工具時,同時限制權限、執行時間和傳回大小。
案例|統計訂單總額(示意)
不建議:十萬行訂單 → 模型逐項讀取並計算 → 汇總
建議:資料庫篩選、彙總 → 傳回總額與異常項 → 模型解釋
5. 模型、推理和輸出,分開最佳化
關鍵 1|按評測選模型,不預設最大。 分類、抽取、格式整理可評估低成本模型;複雜推理和高風險修改使用達到品質要求的模型。“小模型嘗試 → 校驗 → 必要時升級”必須比較完整鏈路成本,不能只看第一步單价。
關鍵 2|推理程度與回答長度分別控制。 簡單任務可評估低推理,複雜階段再升級;同時檢查錯誤與重工。要求“只給結論”不等於關閉隱藏推理;硬輸出上限過低,也可能耗盡推理預算后没有完整答案。
關鍵 3|規定交付成果,比說“简洁一點”更明確。 寫清需要結論還是分析、完整檔案還是 diff、證據原文還是來源 ID。机器消費的結果可用結構化輸出,但仍需校驗業務含義,允許缺失值和不確定性。
案例|把“分析這個方案”改成明確的輸出要求
只傳回:結論、關鍵依據、待確認問題。
不複述需求,不重複總結;證據不足時明確標記,不猜測補全。
6. Agent 的停止條件要由程式執行
關鍵 1|設定四類停止條件。 驗收通過就結束;達到費用、輪次或時間預算就儲存狀態;相同條件下重複失敗且無新證據就中斷;缺權限或需要高風險審批就交給人決策。不要只在 Prompt 裡寫“少花 Token”。
關鍵 2|重試分類,恢複優先。 網路故障有限退避,參數錯誤先修參數,權限錯誤停止重試。超時后先確認远端是否完成,寫操作採用冪等或業務去重;保留檢查點,從未完成處繼續,不整段重新執行。
關鍵 3|多 Agent 是能力選擇,不是省錢開關。 只拆分可以獨立完成、效益可驗證的任務。子 Agent 只接收必要目標、證據和預算,傳回結果與來源,不複制完整主會話;核算總費用要涵蓋所有子任務。
注意|預算耗盡停止不等於任務完成。 交付現有結果、未完成項和阻塞原因,不把未執行的檢查寫成通過。
7. AI 程式設計少讀無關程式碼,少做無關變更
關鍵 1|先定位,再讀取,再提交局部補丁。 提供相關模組和驗收標準,先搜尋符號、呼叫點與測試。相依目錄、產出物不預設讀取;不重印未修改檔案。補丁無法應用時重新讀相關區域,不反複猜測;穩定流程固化為指令碼。
關鍵 2|停止重複驗證,不取消必要測試。 文案修改與權限、交易、資料庫遷移應採用不同測試範圍,保留項目品質門檻。檢查通過且無新修改、失敗或疑點時停止;程式碼或環境變化后重新執行相關測試,不屬於無效重複。
8. 其他降低成本方式,按情境選擇
關鍵 1|非即時任務,考慮 Batch 或低優先級服務。 離線分類、批次評測可評估 Batch;能接受更長等待和資源不可用時,再評估 Flex 等服務。只重新執行失敗項,並計算降級成本;這些方式主要改變單价與延遲,不減少任務本身的 Token。
關鍵 2|高頻穩定任務,考慮微調或蒸餾。 有明確驗收和高品質範例后,再評估低成本模型替代方案,把訓練、維護和持續評測算入總成本。知識頻繁變化時優先維護檢索資料,並確認目標模型支援所需訓練能力。
關鍵 3|不用可讀性換未經驗證的壓縮率。 單字母欄位、全文翻譯、Base64,以及“JSON 一定更省”等做法,都要比較實際 Token、理解準確率和重工成本。省下的輸入若被錯誤與重試抵消,就不算最佳化。
9. 建議落地順序
- 建立單任務成本與品質基線。
- 裁剪無關上下文和過大的工具傳回。
- 消除重複呼叫、無效重試和整段重新執行。
- 穩定 Prompt 前綴並驗證快取效益。
- 用評測選擇模型、推理程度和輸出格式。
- 最后再評估 Batch、Flex、微調或蒸餾。
每次只改一個主要變數,記錄成功率、單個成功任務成本和 P95 延遲。否則即使帳單下降,也很難知道究竟是哪項最佳化有效。
參考資料
- OpenAI · Cost optimization — 請求、Token 與模型成本最佳化。
- OpenAI · Prompt caching — 前綴複用、快取计費與用量。
- Anthropic · Prompt caching — 快取讀寫與 usage 欄位。
- OpenAI · Reasoning models — 推理程度、輸出預算與用量。
- Anthropic · Effective context engineering for AI agents — 按需獲取資訊與長期狀態管理。
- OpenAI · Conversation state — 歷史管理、响應 ID 與计費邊界。
- Anthropic · Writing effective tools for agents — 工具邊界、傳回格式和分頁。
- Anthropic · How we built our multi-agent research system — 多 Agent 的分工、協調與成本。