分母是一個被接受的任務

成本數字最常壞在同一個地方:分母。每千 token 的單價是一次模型呼叫的價格,而賣給客戶的是一個做完而且被接受的任務。兩者之間還夾著規劃、檢索、多個模型、工具呼叫、人工核准,以及重試。

所以本檔案全程使用的分母是「通過接受標準的一個任務」。若改用全部啟動次數當分母,會出現一個會騙人的效果:失敗率一上升,啟動次數跟著變多,每次嘗試的平均成本反而看起來降低了。

在寫下第一個數字之前,下面五件事必須先鎖定;中途改動其中任何一項,後面所有列就不再可比:

  • 一個任務從哪裡算開始、到哪裡算結束;
  • 寫成文字的接受標準,而不是逐案判斷;
  • 所有數字共用的日曆期間;
  • 該期間啟動的任務數;
  • 最終被接受的任務數。

成本總帳:決定最後數字的九個科目

分母固定之後,接下來的工作是把分子收齊。漏掉的科目通常並不小,它只是不以模型帳單的形式出現,所以沒有任何東西提醒你它存在。

成本科目什麼讓它變大為什麼常被漏掉性質
模型推理上下文長度、步數、推理 token被當成唯一的成本變動
重試與失敗任務失敗率與工具鏈長度只有成功的呼叫被計入變動
人工覆核與介入需要核准的任務比例被當成團隊開銷,不是任務成本按任務算是變動,排班則是固定
第三方工具與 API每個任務的呼叫次數、資料授權藏在月費訂閱裡混合
RPC、節點與模擬查詢次數與模擬嘗試次數免費額度掩蓋了真實成本變動
儲存、向量索引與重新嵌入語料規模與重建索引的頻率一開始付過一次,之後就被忘掉混合
監控、安全與濫用防制trace 量與事件次數被歸為平台成本,而非產品成本固定但會有尖峰
客服、退款與爭議投訴率與退款政策記在單位經濟之外變動
空閒容量與最低承諾量沒用到也要付的 GPU 或方案只計算實際用量固定

尚未量測的科目仍留在表上,標註為「尚未量測」,而不是刪掉。固定成本在整個期間用同一條規則分攤;中途換規則得到的毛利改善,來源只是方法變了,不是營運變好了。

費率要有日期,用量要是真的

費率是會過期的資料,這正是它容易被用錯的原因。今天生效的價格,不能在沒有公開說明調整方式的情況下,被拿來稱作舊期間的實際成本。

計費口徑也不統一。不同模型對輸入、輸出、快取讀取、快取寫入、批次與推理 token 的費率都不一樣,而自架 GPU 計的是容量而非 token。把兩者加在同一列,得到的數字回答不了任何問題。

讓一列成本能被別人覆核的,是和數字一起保存的四件東西:模型 ID 或計費項目、用量資料的來源、幣別與費率日期,以及把兩者相乘的公式。真的拿不到的數值寫成帶最壞假設的區間,而不是四捨五入成一個看起來很整齊的單一數字。

鏈上成本歸給觸發它的那個任務

鏈上動作有一個模型成本沒有的性質:失敗了照樣要付錢。被 reverted 的交易已經燒掉 gas,而那筆 gas 屬於觸發它的任務,不屬於某個再也沒人追查的通用基礎設施科目。

因此採用的是 receipt 上的實際數字,而不是送出前的 gas 估算;資產匯率取交易當時的價格,換算方法一併留存。一列完整的鏈上成本包含:

  1. 交易 hash 以及觸發它的任務 ID;
  2. receipt 上的 gas used 與 effective gas price;
  3. 最終狀態:成功或 reverted;
  4. 模擬費用,以及從未真正送出的嘗試;
  5. 隨之而來的 bridge、relayer 與簽章服務費用。

receipt 拿不到時仍可使用估算,但有一個條件:該列標明為估算,且不與含實際數字的列相加。

脆弱點只會在情境裡現形

一個平均成本數字,剛好藏住了最值得知道的事:在什麼條件下這門生意的經濟就不成立了。能讓它現形的不是計算精度,而是用同一條公式跑出來的幾個情境。

  • 供應商漲價,模型與基礎設施都算;
  • 失敗率與重試次數上升;
  • 需要人工介入的任務比例上升;
  • 免費額度、補助或補貼停止;
  • 負載突增,備援容量必須以隨需價格買進;
  • 接受標準收緊,導致接受率下降。

這一組情境要找的是:只變動一點點、卻讓毛利正負翻轉的那個參數。這種參數連同它的門檻值寫在前面,因為讀者的注意力真正該放在那裡。

最好的一個月不算結果。如果確實只算過一個期間,那就報告這一個期間,並註明目前還沒有可對照的期間。

收入要放在同一個期間

完整成本要有意義,對面必須有收入,而且是同一批任務、同一個客群、同一個期間的收入。取自兩個不同期間的兩個數字算不出毛利,只算得出差額。

算進產品收入的是客戶為服務支付的金額,扣掉退款、平台分成與付款成本。Token 出售、基金會撥款、投資款與國庫資產增值可以呈現,但要放在自己的那一列——錢的來源不同,可持續的時間也不同。

單位貢獻在固定成本之前報告,固定成本再以總額完整呈現。兩者回答的是兩個不同的問題,合成一個數字會讓兩個答案都消失。用這兩個數字推損益平衡的做法,另見AI Agent 的收入能不能覆蓋算力成本。

公布哪些數字,別人才重算得出來

一份成本計算要有重量,前提是別人能重算一次並得到接近的結果。下面是讓這件事成立的最小內容;客戶身分可以遮蔽,不會因此降低價值。

口徑與期間
一個任務的邊界、接受標準,以及採用的日曆期間
樣本與分布
啟動數與接受數,以及用量的 P50 與 P95,而不只是平均值
失敗與人工
失敗率、重試次數,以及需要人工介入的任務比例
費率與來源
模型與工具清單、計費項目、幣別與費率日期
收入分類
哪些算進產品收入,哪些另列一行
資料字典與公式
每個欄位的名稱、公式版本,以及可重算的匯總表

若一個百分比形式的節省宣稱沒有附上以上六項中的任一項,它仍然只是團隊聲明,不是已經被覆核過的數字。

重算工作表

這一節把上面的檔案換成別人可以重做一遍的形式。排列順序照計算流程,而不是照發現順序;其中沒有任何一列會產生建議。

檢查對象用什麼數字對照什麼會推翻這一列證據不足時怎麼判
分母同期間的接受任務數與啟動任務數把每次 API 呼叫成本當成產品成本接受標準寫成文字之前,這一列先擱置
費率有日期的帳單或費率頁,對到該期間的用量沒有日期的價格被當成舊期間的事實數字標為估算,並與帳單分欄
科目完整度供應商帳單加上人工工時與失敗嘗試非模型的基礎設施被當成免費尚未量測的科目保留為區間
鏈上成本receipt 上的 gas used 與 effective gas price,可回連任務 IDgas 估算取代了真實交易實際值優先,估算另行標註
收入期間同一日曆期間的淨收入與完整成本國庫流入取代了客戶付款單位貢獻在固定成本之前報告
耐受度在漲價與接受率下降的情境下重算一次只公布最好的那個月結果以區間連同門檻一起呈現
可重算性其他人能依公式與資料字典重算手上只有百分比形式的節省宣稱重算成功之前,狀態維持為團隊聲明

做這張表時最常出現兩種閃失。第一,成本取自最樂觀的情境,收入也取自最樂觀的情境——這個組合在現實裡從來不會同時發生。第二,分攤規則改了一次,被記成毛利改善,而營運數字其實一動也沒動。

這份計算也有到期日。費率、模型清單或失敗率一變,就重算被這個變動碰到的那幾列並更新費率日期——而不是把整張表從頭做一次。

常見問題

為什麼不用每千 token 成本比較產品?

因為架構可能呼叫不同數量的模型和工具;被接受任務才反映完整工作量。

免費額度要算成本嗎?

應同時呈現現金支出和正常化成本,避免免費額度到期後結論失效。

人工覆核是固定還是變動成本?

視工作方式而定;若每個任務都需要則屬變動,值班與管理可按一致規則分攤。

這樣的成本數字能成立多久?

在記下的費率、模型清單與重試率仍然相同的期間內。其中任何一項變了,就重算被這個變動碰到的那幾列並更新費率日期,而不是整張表重做。

本檔案使用的來源

  1. AI x Crypto: Exploring Use Cases and Possibilities — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  2. Building effective agents — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  3. Measuring AI agent autonomy in practice — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  4. OpenAI Agents SDK — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  5. OpenAI Evals — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  6. Ethereum JSON-RPC API — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  7. AI agent quickstarts for Safe Smart Account — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  8. NIST AI 600-1: Generative AI Profile — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。