Agent 四大成本陷阱與熔斷
上一節看到的還只是「一次成功的執行」。真實世界裏,Agent 的帳單事故來自四個方向:工具返回爆炸、思考税、死循環、歷史雪球。每一個都有對應的工程解法。
用戶説「幫我查吓數據庫裏面所有用戶嘅訂單」,Agent 調 SQL 工具返回 10,000 條記錄 ≈ 500,000 Token。這 50 萬 Token 會被塞進下一輪 Input:直接觸發高價區、甚至撐爆上下文窗口,模型還會因資訊過載而「迷失」,輸出質素反而下降。解法是給所有工具套一層截斷保護:
Qwen-Plus 思考模式、DeepSeek-R1、o1 這類模型會生成「思考過程」:用戶可能看不到,但全部按 Output 計費,而且單價還翻 4 倍(Qwen-Plus 非思考輸出 2 元/M,思考模式 8 元/M)。同一個 Agent 任務開啓思考模式後:可見輸出不變(450 Token),思考過程 +2,000 Token,輸出費用暴漲 +2,078%。
| 任務類型 | 思考模式 | 理由 |
|---|---|---|
| 簡單檢索 | ❌ 關閉 | 不需要深度推理 |
| 數據清洗 | ❌ 關閉 | 規則明確,不需要「想」 |
| 複雜推理 | ✅ 開啓 | 值得為準確率付費 |
| 程式碼生成 | ⚠️ 視情況 | 簡單函式關閉,複雜架構開啓 |
進階解法:用 0.6B 級的極小模型做前置分診,先花幾釐錢判斷這個請求需不需要深度思考,再決定路由到哪個模式——這就是第 3 節「T2 給 T0 打下手」的具體形態。
Agent 修 Bug:修復 A → 報錯 B → 修復 B → 報錯 A(回到原點)→ …… 15 輪還在轉。每輪 Input 膨脹 1,000 Token 的話,20 輪下來成本漲 13 倍;更糟的是用戶等了 5 分鐘任務還沒完成。解法是強制熔斷,三個條件任一命中就優雅退出:
優雅退出時要帶上 rounds_executed、tokens_consumed 和 partial_result——半成品也比黑洞強。
標準做法(錯誤)是每輪都把完整歷史塞進 Input。優化做法是固定左側 + 壓縮歷史 + 保留最近 N 輪:System Prompt 永不壓縮(保緩存前綴),最近 3 輪保留完整細節,更早的歷史用小模型壓成一句摘要。
| 方案 | 第 10 輪 Input | 説明 |
|---|---|---|
| 無限膨脹 | ~50,000 Tokens | 包含全部歷史 |
| 滑動窗口(最近 5 輪) | ~12,000 Tokens | 丟失早期上下文 |
| 固定 + 摘要 + 最近 3 輪 | ~6,000 Tokens | 既保關鍵資訊,又控制長度 |
| 控制點 | 策略 | 預期收益 |
|---|---|---|
| 工具返回值 | 截斷 + 摘要,上限 2k Tokens | 防止單輪爆炸 |
| 歷史管理 | 固定左側 + 壓縮舊歷史 | 降低 50%+ Input |
| 循環控制 | 熔斷機制(輪次 / Token / 死循環檢測) | 防止無底洞 |
| 思考模式 | 按任務分級開啓 | Output 成本降 4 倍 |
| 模型選擇 | 簡單子任務用小模型 | 降低單價 |
| 緩存利用 | 固定 System Prompt,命中 KV Cache | Input 成本降 90% |
| 紅綫 | 閾值建議 | 後果 | 應對 |
|---|---|---|---|
| 單輪 Input | < 32k Tokens | 跳入高價區 | 歷史壓縮 + 工具截斷 |
| 總輪次 | < 10 輪 | 成本指數膨脹 | 熔斷機制 |
| I/O Ratio | 監控 > 50:1 | Agent 在「空轉」 | 優化流程或降級任務 |
給工具返回值設 2k 上限:截斷 + 摘要 + 提示縮小範圍,防止單輪 Input 爆炸。
思考模式按任務分級:看不見的內心戲也按 Output 計費,單價還翻 4 倍。
熔斷是 Agent 的保險絲:輪次、Token 預算、死循環檢測三選一命中就優雅退出。
歷史管理用「固定 + 摘要 + 最近 3 輪」,比粗暴滑動窗口省一半還不失憶。
內容來源:整理自作者團隊內部分享《AI Token 降本增效策略分享》「Agentic 應用的計費機制」。Agent 卡死與防呆的產品視角在動手實戰篇有專門章節,上下文壓縮另見Harness 核心 · 上下文溢出。