|

Agent 多輪調用 API 的成本結構是什麼樣的?

Agent 多輪調用 API 的成本結構是什麼樣的?

作者注:從一個 30 分鐘的軟件開發 Agent 任務出發,拆解 Agent 多輪調用中普通輸入、緩存寫入、緩存讀取、輸出與工具往返的費用構成,對比三家服務商的緩存計費,並用 12 次調用的示例說明緩存在什麼條件下才真正省錢。

2026 年 11 月 9 日,Google Cloud 發佈 TPU 8tx 與 TPU 8i Max 兩套第八代 TPU 系統,同時開源了用於 KV Cache 傳輸的 TPU Sync。“Agent 時代的內存牆”再次成爲話題,很多開發者自然會問:底層 KV Cache 越來越快,我的 Agent API 賬單會不會隨之變便宜?

核心價值:讀完本文,你將拿到一個完整的 Agent 成本公式、三家服務商的緩存計費對照,以及一套可以馬上落地的成本優化清單。

agent-multi-turn-api-cost-context-cache-tool-calls-zh-hant-image-0


Agent 多輪調用 API 成本:核心信息速覽

信息項 詳情
背景事件 2026-11-09 Google 發佈 TPU 8tx、TPU 8i Max 及 TPU Sync,聚焦 Agent 的內存與 KV Cache 瓶頸
開發者關心的問題 底層優化能否轉化爲 Agent API 賬單下降
核心結論 賬單由普通輸入、緩存寫入、緩存讀取、輸出 Token、調用次數與工具費用共同決定
關鍵變量 前綴是否穩定、緩存 TTL 是否覆蓋工具等待時間、歷史上下文是否失控
影響範圍 編碼 Agent、長文檔 Agent、多 Agent 協作等多輪調用場景

Agent 多輪調用的 30 分鐘任務長什麼樣

設想一個軟件開發 Agent 接到需求:修復某個模塊的測試失敗。它先讀取項目結構和相關源碼,生成修改方案,調用工具寫文件、跑測試,等待測試結果,再根據報錯繼續推理。30 分鐘裏,這樣的“推理—工具—等待—推理”循環可能發生十幾次。

問題在於,大模型 API 本質上是無狀態的。每一次請求,Agent 都要把系統提示詞、工具定義、項目背景以及之前的對話和工具輸出重新發給模型。第 12 次請求攜帶的內容,往往包含了前 11 輪幾乎全部的歷史,這就是“上下文重複計算”的來源。

agent-multi-turn-api-cost-context-cache-tool-calls-zh-hant-image-1


Agent 多輪調用 API 成本由哪些部分組成

把一次 Agent 任務拆開看,費用至少包含五類。前四類是模型 Token 費用,第五類則發生在模型之外,卻常常被忽略。

成本項 含義 計費特點
普通輸入 未命中緩存、按標準價處理的輸入 Token 標準輸入單價
緩存寫入 創建可複用緩存的那部分輸入 部分服務商與模型按高於標準輸入的倍率計費
緩存讀取 命中已有緩存的輸入 通常遠低於標準輸入單價
輸出 Token 模型生成的內容,含工具調用參數 一般是單價最高的部分,緩存無法降低
工具與外部執行 搜索、代碼執行、數據庫等外部服務 按各自服務計費,且會增加模型調用輪數

據此可以寫出一個單任務成本公式:

任務總成本 = Σ(普通輸入 × 輸入單價 + 緩存寫入 × 寫入單價 + 緩存讀取 × 讀取單價 + 輸出 × 輸出單價)+ 工具與外部執行費用

公式中的 Σ 是對任務內每一次模型調用求和。這意味着調用次數本身就是乘數:工具往返越多,模型調用越多,固定前綴被重複計費的次數也越多。工具調用並不只花工具自己的錢,它還會把一次推理拆成多次,每次都要重新攜帶上下文。


Agent 多輪調用中 KV Cache、Prompt Cache 與上下文壓縮的區別

討論 Agent 成本時,三個概念最容易混用。它們分屬不同層面,對賬單的影響也完全不同。

技術 所在層面 具體含義 對 API 用戶的影響
KV Cache 模型推理底層 保存注意力計算中的 Key/Value 狀態,避免重複計算歷史 Token 用戶不直接控制,影響服務商的成本與延遲
Prompt Cache API 服務層 服務商複用重複提示詞前綴,單獨計費緩存寫入與讀取 直接體現在賬單的緩存字段上
上下文壓縮 應用層 對歷史內容做摘要、篩選或裁剪後再傳入 減少實際傳入的 Token,但可能損失細節

值得注意的是,OpenAI 官方文檔說明 Prompt Cache 實際保存的是 KV Tensor,而不是原始 Token 文本。因此 Prompt Caching 可以理解爲底層 KV 狀態複用能力的服務化與計費化,它與 KV Cache 並非毫無關係,但用戶能感知到的只有計費規則。

上下文壓縮則是另一回事。它改變的是後續請求“攜帶什麼”,而不是“如何複用”。壓縮得越激進,Token 越少,但 Agent 遺忘關鍵細節的風險也越高。

Agent 多輪調用的底層優化爲什麼不等於賬單下降

Google 這次發佈的 TPU 8i Max 將 HBM 帶寬和片上 SRAM 翻倍,TPU Sync 在 Ironwood 平臺的內部測試中將 KV Cache 傳輸延遲降低超過 90%,Agent Compute Engine 則在 Agent 空閒時暫停會話、把工作內存移出芯片。這些優化作用於服務商的資源利用率和推理延遲(例如 TTFT),對用戶可能體現爲更快的響應。

但 API 價格是服務商的商業定價,用戶賬單仍按 Token 計量。硬件效率提升可能在長期內影響定價,卻不存在自動、等比例的傳導關係。另外,TPU 8tx 與 TPU 8i Max 截至 2026-11-10 仍標記爲 Coming soon,尚未公佈價格。對開發者而言,能立刻控制的是自己的 Token 結構,而不是上游的硬件。


Agent 多輪調用 API 成本:三家服務商緩存計費對比

三家主流服務商都提供緩存機制,但觸發方式、TTL 和計費口徑差異明顯。下表依據各家官方文檔整理,具體以對應模型和接口的說明爲準。

服務商 緩存機制 TTL 選項 寫入計費 讀取計費 可用平臺
OpenAI Prompt Caching,支持模型自動前綴緩存 部分新模型默認 30 分鐘,部分模型支持 12 小時 支持相應配置的模型與接口:30 分鐘爲普通輸入 1.25 倍,12 小時爲 2.5 倍;其他緩存模式可能不另收寫入費 通常爲普通輸入 0.1 倍,部分模型更低 官方 API、API易 apiyi.com
Anthropic Prompt Caching 默認 5 分鐘,可延長至 1 小時 5 分鐘爲普通輸入 1.25 倍,1 小時爲 2 倍 因模型而異 官方 API、API易 apiyi.com
Google Gemini Context Caching,隱式緩存 + 顯式緩存 顯式緩存可設置 TTL 顯式緩存另有按緩存 Token 數與存儲時長計算的費用 命中可降低重複輸入費用 官方 API、API易 apiyi.com

以 Claude Sonnet 5.5 的官方價格爲例:普通輸入每百萬 Token $2.00,5 分鐘緩存寫入 $2.50,1 小時緩存寫入 $4.00,緩存讀取 $0.10。緩存讀取只有普通輸入的 5%,這正是重複前綴能被大幅壓縮成本的原因。

需要提醒的是,OpenAI 官方明確說明緩存命中並非每次都能保證;Gemini 的顯式緩存也不是“免費存儲”,存儲時長本身會計費。緩存是一種有條件的折扣,而不是默認生效的降價。

🎯 技術建議:不同上游模型的緩存能力、計費規則和返回字段並不統一,統一網關不會自動讓所有模型獲得相同的緩存優惠。建議通過 API易 apiyi.com 用同一套 OpenAI 兼容代碼分別測試候選模型,以實際返回的 usage 字段和賬單爲準。


Agent 多輪調用緩存成本實算:12 次調用示例

沿用前文的 30 分鐘開發任務,並使用 Claude Sonnet 5.5 官方價格構造示例。假設條件如下:

  • 任務共調用模型 12 次,每次輸入 22,000 Token;
  • 其中 20,000 Token 是重複的系統提示詞、工具定義和項目背景;
  • 每次新增 2,000 Token;
  • 採用 1 小時緩存,後續請求均成功複用。

不使用緩存:12 × 22,000 × $2 / 1,000,000 = $0.528。

使用 1 小時緩存:首次寫入 20,000 Token 爲 $0.080,首次普通輸入 2,000 Token 爲 $0.004,後續 11 次緩存讀取爲 $0.022,後續 11 次新增輸入爲 $0.044,合計 $0.150,輸入費用節省約 71.6%。

這個示例只計算輸入 Token,不包含輸出 Token、工具調用和外部服務費用。真實 Agent 的歷史還會逐輪增長,但結論方向不變:重複上下文是 Agent 多輪調用中最容易被放大的成本。

agent-multi-turn-api-cost-context-cache-tool-calls-zh-hant-image-2

緩存失效、前綴變化與 TTL 對 Agent 成本的影響

上面是理想情況。下面用同一組價格,對三種常見“走樣”做補充推演(以下爲本文按官方單價自行計算的示意場景)。

場景 假設 輸入費用 相對無緩存
無緩存 12 次全部按普通輸入 $0.528 基準
1 小時緩存全命中 寫入 1 次,讀取 11 次 $0.150 節省約 71.6%
5 分鐘緩存全命中 寫入單價 $2.50,讀取 11 次 $0.120 節省約 77.3%
5 分鐘緩存部分失效 工具等待超時導致共寫入 4 次、讀取 8 次 $0.264 節省約 50%
前綴不穩定 前綴每次變化,12 次都按 5 分鐘寫入計費 $0.648 反而多花約 23%

幾點解讀可以直接用於決策:

  • TTL 要覆蓋工具等待:5 分鐘緩存寫入更便宜,但只要測試運行或人工確認超過 5 分鐘,緩存就會過期重寫,節省幅度明顯縮水。
  • 前綴穩定比 TTL 更關鍵:把時間戳、隨機 ID 放在提示詞最前面,會讓每次請求都無法命中,在需要付寫入溢價的模式下,緩存反而讓賬單變貴。
  • 長 TTL 不是越長越好:1 小時寫入單價是 5 分鐘的 1.6 倍,只有當調用間隔確實可能超過 5 分鐘時才划算。

如何降低 Agent 多輪調用的 API 成本

極簡示例:記錄每次調用的緩存命中

優化的第一步是“看見”成本。下面的代碼通過 OpenAI 兼容接口發起請求,並打印 usage 中的緩存相關字段:

import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"  # API易 OpenAI 兼容接口
)

resp = client.chat.completions.create(
    model="your-model-name",  # 替換爲要測試的模型
    messages=[
        {"role": "system", "content": "固定的系統提示詞與工具說明……"},
        {"role": "user", "content": "本輪新增的任務內容"}
    ]
)
usage = resp.usage
details = getattr(usage, "prompt_tokens_details", None)
print("輸入:", usage.prompt_tokens, "輸出:", usage.completion_tokens,
      "緩存命中:", getattr(details, "cached_tokens", None))

查看完整實現:穩定前綴 + 單任務成本追蹤
import openai
from dataclasses import dataclass, field

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"
)

# 固定前綴:系統指令、工具定義、公共項目背景,放在最前且保持字節級不變
STABLE_PREFIX = [
    {"role": "system", "content": "你是代碼修復 Agent。工具定義與項目規範如下……"},
]

@dataclass
class TaskCost:
    # 單價:美元 / 百萬 Token,按所用模型官方價格填寫
    input_price: float
    cache_read_price: float
    output_price: float
    records: list = field(default_factory=list)

    def add(self, usage):
        details = getattr(usage, "prompt_tokens_details", None)
        cached = getattr(details, "cached_tokens", 0) or 0
        uncached = usage.prompt_tokens - cached
        cost = (uncached * self.input_price
                + cached * self.cache_read_price
                + usage.completion_tokens * self.output_price) / 1_000_000
        self.records.append({"cached": cached, "uncached": uncached,
                             "output": usage.completion_tokens, "cost": cost})

    def summary(self):
        total_in = sum(r["cached"] + r["uncached"] for r in self.records)
        hit = sum(r["cached"] for r in self.records) / max(total_in, 1)
        return {"calls": len(self.records), "cache_hit_rate": round(hit, 3),
                "total_cost": round(sum(r["cost"] for r in self.records), 4)}

def run_turn(history, new_msg, tracker, model="your-model-name"):
    # 只追加新消息,不重排歷史;動態信息(時間戳等)放在最後
    history.append({"role": "user", "content": new_msg})
    resp = client.chat.completions.create(
        model=model, messages=STABLE_PREFIX + history)
    tracker.add(resp.usage)
    history.append({"role": "assistant",
                    "content": resp.choices[0].message.content})
    return resp

tracker = TaskCost(input_price=2.0, cache_read_price=0.1, output_price=0.0)
history = []
run_turn(history, "測試 test_auth 失敗,報錯如下……", tracker)
print(tracker.summary())

注意,上面的估算只覆蓋讀取折扣;若所用模型對緩存寫入單獨計費,需要按其返回字段補充寫入項。不同模型的 usage 字段名稱和含義可能不同,應以實際返回爲準。

🚀 快速開始:推薦先在 API易 apiyi.com 用免費測試額度跑通上面的追蹤腳本,拿到同一任務在不同模型下的緩存命中率與單任務成本,再決定生產環境用哪個模型、哪種 TTL。

Agent 多輪調用成本優化的五個動作

  1. 穩定提示詞前綴:系統指令、工具定義、公共參考資料放在最前面,時間戳、用戶動態信息放在最後,工具定義的順序和字段也不要隨意變動。
  2. 合理選擇 TTL:調用密集、間隔短的任務用短 TTL;存在長時間測試、構建或人工審批的 Agent,評估更長 TTL 的寫入溢價是否能被避免的重寫抵消。
  3. 控制歷史上下文:只追加、不重排,避免破壞緩存前綴;對冗長的工具輸出做摘要,保留關鍵結論、任務狀態和必要證據。
  4. 減少不必要的模型調用:能批量執行的工具合併成一次調用,確定性步驟交給代碼而不是交給模型判斷,從源頭減少往返輪數。
  5. 監控真實指標:按任務記錄普通輸入、緩存寫入、緩存讀取、輸出 Token、緩存命中率、TTFT 和總成本,用任務級成本而非單次請求成本做評估。

Agent 多輪調用 API 成本影響分析

對開發者的影響

  • 成本模型要從“單次請求”升級爲“單個任務”:Agent 的費用取決於整條調用鏈,只看單價會嚴重低估實際賬單。
  • 提示詞工程開始兼顧計費結構:前綴的穩定性直接決定緩存能否生效,提示詞結構設計成爲成本工程的一部分。
  • 多模型選型需要實測:緩存摺扣比例、TTL 和寫入溢價因模型而異,同樣的任務換模型後成本差異可能很大。

對行業的影響

  • 基礎設施競爭聚焦 Agent 負載:Google 將內存帶寬、KV Cache 傳輸和 Agent 暫停恢復作爲重點,說明多輪、長上下文已成爲主流負載形態。
  • 用戶收益更先體現在延遲上:底層優化首先改善 TTFT 和吞吐,Token 價格是否下調取決於服務商定價策略,開發者不宜提前計入預算。

常見問題 FAQ

Q1:Agent 多輪調用的 API 成本爲什麼比預想高?

因爲 API 是無狀態的,每次調用都要重新攜帶系統提示詞、工具定義和歷史上下文。調用次數越多,這部分固定內容被重複計費的次數越多,工具往返還會進一步增加調用輪數。

Q2:KV Cache 和 Prompt Cache 是一回事嗎?

不完全是。KV Cache 是模型推理底層的狀態複用;Prompt Cache 是服務商在 API 層對可複用前綴的緩存與計費,OpenAI 文檔說明其保存的正是 KV Tensor。用戶只能通過計費規則感知 Prompt Cache,無法直接控制 KV Cache。

Q3:Google 新 TPU 發佈後,API 價格會馬上下降嗎?

沒有依據這樣判斷。TPU 8tx 與 TPU 8i Max 截至 2026-11-10 仍爲 Coming soon,未公佈價格。硬件優化主要改善服務商的資源利用率和延遲,是否傳導到 Token 價格取決於各服務商的定價。

Q4:緩存一定能省錢嗎?

不一定。若前綴每次變化導致無法命中,而所用模式又對緩存寫入收取溢價,費用反而會高於不使用緩存。工具等待超過 TTL 時,頻繁重寫也會削弱節省效果。

Q5:如何快速對比不同模型的緩存效果?

建議用同一個 Agent 任務在多個模型上跑相同流程,記錄緩存命中率和單任務總成本。通過 API易 apiyi.com 可以用一個 API Key 調用 OpenAI、Claude、Gemini 等模型,只需切換 model 參數即可對比。

Q6:上下文壓縮有什麼風險?

壓縮會改變後續請求攜帶的內容,可能丟失關鍵細節,導致 Agent 重複犯錯、反而增加調用輪數。另外,壓縮後的內容如果每輪都重新生成,還會破壞緩存前綴,需要與緩存策略一起設計。

Q7:在統一網關上調用時,緩存優惠是否對所有模型一致?

不一致。緩存能力、計費規則和返回字段取決於上游模型本身。在 API易 apiyi.com 上測試時,應針對每個模型單獨確認緩存字段與實際扣費,再納入成本預算。


Agent 多輪調用 API 成本核心要點 Key Takeaways

  • 成本單位是任務:Agent 賬單是整條調用鏈的累加,而非單次請求。
  • 重複上下文是大頭:12 次調用示例中,1 小時緩存可讓輸入費用節省約 71.6%。
  • 緩存是有條件折扣:前綴不穩定或 TTL 過短時,節省縮水甚至反向增加費用。
  • 三家計費口徑不同:寫入倍率、讀取折扣、存儲費用需按具體模型確認。
  • 硬件優化≠賬單下降:底層 KV 優化先改善延遲,價格取決於服務商定價。
  • 先度量再優化:藉助 API易 apiyi.com 用統一接口實測各模型緩存命中率與任務成本。

總結

Agent 多輪調用的 API 成本由上下文重複計算、緩存命中與工具往返共同決定,三者缺一不可:

  1. 上下文重複計算決定了成本的基數,調用越多,重複越多;
  2. 緩存命中決定了重複部分能打幾折,前綴穩定性和 TTL 是關鍵;
  3. 工具往返既帶來外部費用,又放大模型調用次數。

Google 在基礎設施層對 KV Cache 和內存牆的投入,會讓 Agent 運行得更快,但開發者能立刻掌控的是自己的 Token 結構。建議從穩定前綴、合理 TTL、精簡歷史、減少調用和任務級監控五個方面着手,並通過 API易 apiyi.com 用真實數據驗證每一項優化的效果。


📚 參考資料

  1. Google Cloud Blog – Introducing TPU 8tx and TPU 8i Max:第八代 TPU 新系統發佈公告
  2. 鏈接:cloud.google.com/blog/topics/ai-infrastructure/tpu-8tx-and-tpu-8i-max
  3. 說明:瞭解 Agent 內存牆與 KV Cache 背景

  4. Google Cloud Blog – Introducing TPU Sync:KV Cache 與權重傳輸開源庫

  5. 鏈接:cloud.google.com/blog/topics/ai-infrastructure/introducing-tpu-sync-fast-kv-cache-and-weight-transfer-on-tpu
  6. 說明:底層 KV Cache 傳輸優化及測試口徑

  7. OpenAI API 文檔 – Prompt Caching:緩存機制與最佳實踐

  8. 鏈接:platform.openai.com/docs/guides/prompt-caching
  9. 說明:前綴緩存規則、保留時間與監控建議

  10. Anthropic 文檔 – Prompt Caching:緩存 TTL 與計費說明

  11. 鏈接:docs.anthropic.com/en/docs/build-with-claude/prompt-caching
  12. 說明:5 分鐘與 1 小時緩存的寫入、讀取價格

  13. Google AI for Developers – Context Caching:Gemini 隱式與顯式緩存

  14. 鏈接:ai.google.dev/gemini-api/docs/caching
  15. 說明:顯式緩存 TTL 與存儲費用說明

作者:APIYI 技術團隊
技術交流:歡迎訪問 API易 apiyi.com 首頁聯繫我們,更多接入資料可查閱 docs.apiyi.com 文檔中心

延伸閱讀

Similar Posts