Claude Haiku 5.5 在 10 月 7 日推出。Claude 4.6 之後的其他模型,目前都是用 1M 的 context window 來換算標準價格,Haiku 5.5 則是例外,定價文件裡有兩組價格,主要是看請求的 prompt 有沒有超過 100,000 個 token。
prompt 在 100,000 個 token 以內時,每百萬 token 的輸入是 0.10 美元、輸出是 0.50 美元;超過之後,輸入變成 0.50 美元、輸出變成 2.50 美元,都是原本的五倍。快取讀取和快取寫入也是同樣的五倍,像快取讀取就是從 0.01 美元變成 0.05 美元。其中 prompt 長度會把所有輸入 token 都計算進去,包括快取讀取和快取寫入,所以就算有一部分是快取命中,超過門檻也一樣會變成較高的價位。而 agent 的對話是一連串的請求,對話久了就有可能碰到這個門檻。
agent 對話的例子
假設有個 agent,第一次請求時系統提示、工具定義和使用者交代等等之類的任務加起來大約 10,000 個 token,全部寫進快取。模型回覆並呼叫工具,程式把整段對話送出,這就是第二次請求。多輪對話時,prompt caching 的快取讀取是到上一輪為止的整段對話,快取寫入則是新加進來的回覆和使用者內容,沒進快取的 input_tokens 則很少。這裡假設每一輪都在快取預設的 5 分鐘內送出,快取斷點也跟著對話往後移,如果中途過期,讀取和寫入的比例會不一樣,但 prompt 的長度不變。
如果每一輪多出來的回覆加上工具結果大約是 7,000 個 token(實際的對話每一輪長短不會這麼平均),第二次請求的 prompt 就是 17,000,第三次是 24,000,之後每次再多 7,000,這段期間的請求都用低價計算。這樣第十三次是 94,000,第十四次是 101,000,那就超過了。
於是第十四次的請求會變成高價位,包括從快取讀取的 94,000 個 token、新寫入的 7,000 個 token,以及模型這次的輸出。這 94,000 個 token 大部分是第十三次也讀取過的,第十三次是每百萬 token 0.01 美元,到了第十四次就是 0.05 美元。輸出的 token 雖然不計入 prompt 長度,但輸出的價格是跟著 prompt,模型就算只回覆短短幾句,也是每百萬 token 2.50 美元。
每個請求是各自計價的,前面十三次已經結算的請求維持當時的價格,不會因為第十四次而重新計算。不過對話通常只會越來越長,如果歷史沒有經過整理,從第十四次開始,之後的請求都是高價。
從 usage 看 prompt 長度
如果想知道對話還差 100,000 多少,可以看回應裡的 usage。不過 input_tokens 只代表最後一個快取斷點之後的 token,不是全部的輸入,全部的輸入要把三個欄位加起來:
total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens
prompt caching 文件裡有個例子是快取讀取 100,000 個 token、沒有新的快取寫入、使用者訊息 50 個 token,此時 input_tokens 是 50,總共的輸入是 100,050。例子裡沒有指定模型,如果換成 Haiku 5.5,100,050 剛好比門檻多出 50 個 token,那請求都變成高價,但只看 input_tokens 的話,這個請求看起來就只有 50 個 token。
所以回到剛剛說的,如果把歷史整理過、縮短到 100,000 個 token 以內,下一次請求就會回到低價位。不過整理後的內容跟原本的快取對不上,要重新寫入快取,所以整理後第一次請求的輸入費用也不一定比較低,必須要幾次才會看到差別。
至於自己的 agent 對話要看每一輪的內容有多長,或是要從每次請求的 usage 紀錄來看。這篇的價格都是照目前的定價文件整理的,例子裡的對話則是假設的;AI 模型的價格和計算方式變動很快,目前的數字可能過一陣子就不適用了,就當作一個小概念讓大家參考。也可以知道每家公司對於產品和模型的不同策略。
