一個五人團隊試用新的 AI agent,也就是會自己連續執行多個步驟的 AI 助手,讓它整理二十份競品公告,順便把重點寫進內部文件。模型的價格很漂亮:每百萬個輸入 token 兩美元。token 是模型計算文字量與費用的單位。一週後看帳單,金額是原本估算的好幾倍。沒有人亂用,任務也只跑了十幾次。

錢花到哪裡去了?多半不在「模型讀了那二十份公告」這件事上,而是花在長任務特有的兩種重複:每一步都重新送出整段上下文,以及失敗之後從頭重跑。這兩種花費不會出現在價格表上,卻決定了長任務的帳單。也因此,長任務的上限不能只寫在提示詞裡,要由模型以外的程式,用整個任務共用的一筆預算來執行。

單價下降,帳單卻沒跟著降

今年 7 月,馬斯克旗下、原名 xAI 的 AI 公司 SpaceXAI 推出新模型 Grok 4.5,標價是每百萬輸入 token 2 美元、每百萬輸出 token 6 美元。TechCrunch 的報導拿它和 Anthropic 的旗艦模型 Opus 4.7 比較,後者是 5 美元與 25 美元。官方還強調這個模型更省 token,處理同一類程式任務用的輸出 token 比對手少。

這些數字讓很多原本嫌貴的長任務看起來值得一試:整理大量資料、跨多個檔案改程式、讀完一批客服紀錄再分類。問題是,價格表回答的是「每讀一百萬個 token 多少錢」,長任務的帳單卻取決於「總共讀了幾次」。

錢花在哪裡:每次呼叫都重讀整段上下文

所謂長任務,指的是 agent 要連續做很多步才能完成的工作:讀檔案、呼叫工具、看結果、決定下一步。Anthropic 的文件在說明 agent 使用工具時寫得很直接:每一步通常就是一次新的 API 呼叫,也就是程式向模型送出一次請求。而模型本身不會記得上一次呼叫的內容,每一次呼叫都要把到目前為止的對話、讀過的檔案、工具回傳的結果,再完整送一次。

這代表成本不是隨步數平均增加的。用一個假設的例子算算看:如果每一步讓上下文多出 2,000 個 token,第 1 步送出 2,000 個,第 10 步送出 20,000 個,到第 30 步,單次就要送出 60,000 個。三十步加總起來,模型讀進去的輸入大約是 93 萬個 token,其中真正「新」的內容只有 6 萬個。

各家廠商都提供快取來減輕這種重複。以 Anthropic 的說明為例,從快取讀取的 token 只收基本輸入價格的十分之一,寫入快取則要多付 25%;但快取預設只保留 5 分鐘,每次使用會重新計時。這個細節在實務上很要緊:agent 停下來等人確認、而那個人去開了二十分鐘的會,回來時快取已經過期,下一步就得把整段上下文重新寫入一次。

廣告

第二筆錢:失敗之後從頭來

第二種重複是重跑。長任務在第 25 步因為某個檔案格式不對而失敗,最常見的處理方式是整個重來。前面 24 步累積的所有輸入,就再付一次錢。如果設定了「失敗自動重試兩次」,最壞情況是同一份工作付三次錢,而且三次都失敗。

這筆錢的麻煩在於看不見。帳單只會顯示用了多少 token,不會告訴你其中有多少是重做。團隊看到的是「這個月好像有點貴」,找不到是哪一類任務、在哪一步燒掉的。

為什麼上限寫在提示詞裡不算數

很多團隊的第一個反應,是在 agent 的系統提示詞裡加一句:「如果花費超過 5 美元就停下來。」這句話的問題在於,模型看不到帳單。它不知道自己目前用了多少 token,也不知道這次呼叫的價格;它頂多能「提醒自己要節制」,卻無法真的在預算用完時停下。

能可靠執行上限的,只有呼叫模型的那一層程式。每次呼叫之後,API 都會回報這次用了多少輸入與輸出 token;程式把它們累加起來,在送出下一次呼叫之前檢查剩下的預算。不夠了,就不送,把目前的結果和停下來的原因交給負責的人。

這筆預算要以「整個任務」為單位。重試不能領新的額度,而是和第一次執行共用同一筆錢。否則「最多重試兩次」實際上等於把上限放大成三倍。

硬性上限的代價

硬性上限也有代價。任務做到九成時撞到上限,前面花的錢就換來一份半成品。要降低這種浪費,上限最好搭配中途存檔:每完成一個階段,就把整理好的中間結果寫下來,重跑時從最後一個存檔接續,不必從頭讀起。這樣失敗的代價只是一個階段,不是整個任務。

也不是所有任務都需要這套機制。只跑三五步的短任務,上下文累積有限,重跑也便宜,花時間設計預算控制反而不划算。值得設上限的,是步數多、會讀大量檔案、或可能自動重試的工作。

先量一週,再定上限

上限該設多少,沒有通用答案。不同任務的步數、上下文大小、失敗率都不一樣,直接套用別人的數字,不是設得太緊讓任務常常半途而廢,就是設得太鬆形同沒設。

比較實際的做法,是先挑一個團隊已經在跑的長任務,記錄一週:每次執行跑了幾步、每一步送出多少 token、重試了幾次、快取命中多少。一週之後,你會知道這類任務正常跑完大概要花多少,再把上限設在比正常值高一些的位置。超過的那幾次,正好是值得人去看一眼的異常。

這份紀錄也會告訴你錢該從哪裡省。如果重送的上下文占了大半,先檢查快取有沒有生效、上下文裡是不是塞了用不到的整份檔案。如果快取常在等人確認時過期,可以把確認集中在少數幾個階段,或評估較長的快取時間;以 Anthropic 為例,1 小時的快取寫入價格是基本輸入的兩倍,等待時間長的任務仍可能比反覆重寫划算。如果重試占了大半,該修的是失敗的原因,提高上限只會讓同樣的失敗多付幾次錢。

這裡管的是單一任務的預算。整個團隊每個月該怎麼分配 AI 花費、誰能動用多少,是另一層問題,可以參考〈AI 帳單要算每件被採用的成果花多少,不是每百萬 token 多少錢〉。

如果這個長任務是寫程式,交出去之前也可以先看看它能不能拆小,參考〈一張 issue 能不能交給 coding agent,看你寫不寫得出第一個 diff〉。任務拆得越小,每一段的上下文越短,失敗時要重做的也越少。

AI 整理卡

請 AI 幫你估算一個長任務真正的花費 這段提示詞會先問清楚任務怎麼跑,再幫你算出重送上下文和重試各占多少,最後建議第一版的預算上限與存檔點。

我想估算一個 AI 長任務真正的花費,並設定第一版預算上限。
背景來自這篇文章:https://boosterminiclass.com/posts/long-running-ai-task-token-cost-limits/
文章的看法是:長任務的帳單主要來自每一步重送的上下文和失敗後的重跑,上限要由呼叫模型的程式以「整個任務共用一筆預算」執行,不能只寫在提示詞裡。

請先問我 3 個問題:
1. 這個任務平均要跑幾步、每一步大約會讀進多少新內容;
2. 失敗時目前怎麼處理:整個重跑、從中間接續,還是自動重試幾次;
3. 任務中途會不會停下來等人確認,通常等多久。

根據我的回答,請輸出:
- 用簡單算式估計一次完整執行的輸入 token 總量,並標出其中有多少是重送的上下文;
- 一次失敗重跑會多花多少;
- 建議的整個任務預算上限,以及該在哪幾個階段寫下中途存檔;
- 我接下來一週應該記錄哪些數字,才能修正這個上限。
所有估算都要寫出假設;資訊不足時先問我,不要自己補數字。

估算只是起點,實際上限要以一週的真實紀錄為準。

廣告

Share

分享這篇微課

如果這篇剛好解開一個工作卡點,可以分享給也在判斷 AI 怎麼用的人。

參考來源