|

Agent 長任務的 Token 賬單從哪來:輸入佔比 99.4% 與前綴緩存的 5 個優化做法

Agent 長任務的 Token 賬單從哪來:輸入佔比 99.4% 與前綴緩存的 5 個優化做法

作者注:拆解 Agent 長任務的 Token 賬單結構,說明輸入 Token 爲什麼會佔到絕大部分,以及如何調整上下文結構,提升前綴緩存的複用率。

很多團隊把多步 Agent 接進產品後,月底看賬單才發現問題:用戶只提了一個需求,消耗的 Token 卻是普通對話的幾十倍。大家的第一反應通常是“模型輸出太囉嗦”,於是去壓輸出長度。實際的大頭在輸入側,而且主要來自 每一輪都要重新帶入的歷史上下文。

這不是憑經驗的猜測。近期公開的工程分享給出了比較具體的數據:國內線上場景中,一次用戶請求平均觸發約 7.2 次模型調用;在一條 50 步的調用鏈裏,輸入 Token 約佔 99.4%,輸出只佔約 0.6%。推理引擎團隊對 Agent 負載也有類似描述:長前綴、短輸出、多輪循環。

核心價值:讀完本文,你能看懂 Agent 長任務 Token 賬單的結構,理解前綴緩存爲什麼能降本,並拿到 5 個在應用側就能落地的上下文組織方法。

agent-long-task-token-cost-prefix-cache-zh-hant-image-0


Agent 長任務 Token 賬單核心要點

先用一張表概括本文的結論,後面各節再逐條展開。

要點 說明 對你的價值
調用次數被放大 一次用戶請求平均約 7.2 次模型調用,複雜任務超過 50 步並不少見 估算成本要按“任務”算,不能按“請求”算
輸入佔絕對大頭 50 步調用鏈中輸入約佔 99.4%,輸出約佔 0.6% 降本應優先處理輸入,壓輸出收效有限
重複上下文是主因 每一步都重新帶入歷史上下文,同樣的內容被反覆計費 找準真正的成本來源
前綴緩存可以複用 前綴相同的部分若命中緩存,可以省去重複的 prefill 計算 結構穩定的上下文更便宜
結構決定命中率 固定提示詞和工具結構、變化信息放在末尾、適時壓縮歷史 不換模型也能降低成本

Agent 長任務 Token 成本重點詳解

Agent 和普通聊天的最大區別在於“循環”。以製作一份 PPT 爲例,系統要依次完成材料讀取、內容規劃、逐頁生成、工具製作和結果檢查。用戶眼裏這是一項任務,系統裏卻是多輪推理加多次工具調用,而且每一步都可能重新讀取上下文,結果不合格時還要回頭修改。

每一輪調用,模型拿到的都是“系統提示詞 + 工具定義 + 截至目前的全部歷史 + 本輪新信息”。歷史越積越長,單輪新增的內容卻很少,幾十輪下來,同一段前綴被重複計費幾十次。99.4% 的輸入佔比就是這樣累積出來的。

agent-long-task-token-cost-prefix-cache-zh-hant-image-1


爲什麼 Agent 長任務的輸入 Token 遠多於輸出

從推理引擎一側看,這個結構更清楚。TokenSpeed 的分享以 coding agent 爲例:模型持續思考、調用工具、獲取結果、再繼續思考,整個過程由多輪短請求循環組成。第一次請求可能就帶着幾十 K 的前綴上下文,後續每次循環的輸出往往只有幾百個 token。

下表把聊天負載和 Agent 負載放在一起對比,便於你判斷自己的應用屬於哪一類。

維度 傳統 Chat 負載 Agent 長任務負載
請求形態 一問一答,一次生成完整回覆 多輪短請求循環,夾雜工具調用
前綴長度 通常較短 起步即可達幾十 K,並逐輪增長
單輪輸出 相對較長 往往只有幾百個 token
上下文複用 一次加載後即釋放 同一前綴在任務內被反覆攜帶
成本主導項 輸入、輸出都有分量 輸入(尤其是重複前綴)佔絕大部分

前綴緩存在 Agent 長任務中如何工作

推理引擎處理請求分兩個階段:prefill 階段把輸入全部計算一遍,生成 KV Cache;decode 階段再逐個生成輸出 token。Agent 場景下,幾十 K 的前綴每輪都要 prefill,這部分計算正是成本所在。如果同一段前綴已經算過、結果還留在緩存中,就可以直接複用,省掉這部分 prefill。

推理引擎團隊把 KV Cache 複用率視爲決定推理成本的關鍵變量。分享中提到,據稱 DeepSeek 的緩存複用率在 99% 以上,業界多數系統目前在 70% 到 80% 之間;Agent 負載在 prefill 場景下的前綴命中率通常在 90% 以上,命中後只需追加計算幾百個 token。

還有一個容易忽略的細節:前綴緩存是從頭開始逐段匹配的。TokenSpeed 早期借鑑 SGLang,用 Radix Tree 管理前綴緩存,樹上每個節點對應一段 token 序列,請求沿着這棵樹從根部開始匹配。後來雖然改成了 Flat KV 設計,複用仍以固定大小的邏輯塊(128 個 token)爲單位。對應用開發者來說,結論很直接:前面只要有一個 token 不同,後面的內容就無法複用。


如何組織上下文提升 Agent 長任務前綴緩存命中率

理解了緩存的匹配方式,優化方向就明確了:讓每一輪請求的開頭儘量長、儘量保持不變。WorkBuddy 團隊採用的做法是固定提示詞和工具結構、把變化信息放到上下文末尾,上下文變長之後再壓縮歷史內容。下面把它展開成可以執行的 5 條做法。

做法 具體動作 常見反例
1. 固定系統提示詞 系統提示詞逐字穩定,版本變更集中發佈 在開頭插入當前時間、用戶名、隨機示例
2. 固定工具結構 工具列表順序、參數描述保持不變 每輪按需增刪工具,或者序列化順序不穩定
3. 變化信息放末尾 時間戳、本輪觀察結果、動態狀態追加在最後 把“當前進度”寫進系統提示詞頂部
4. 歷史只追加不改寫 已發送的歷史保持原樣,新內容只往後接 每輪重新格式化或重排之前的消息
5. 階段性壓縮歷史 上下文過長時在檢查點壓縮一次,之後繼續追加 每輪都重新生成摘要,導致前綴天天變化

固定提示詞與工具結構的 Agent 長任務實踐

第 1、2 條最容易被忽視。很多框架會在系統提示詞裏拼接當前日期,或者根據步驟動態挑選工具,這兩種寫法都會讓開頭每輪不同,前綴緩存從第一個 token 起就失效。比較穩妥的做法是:系統提示詞只放規則和角色,日期等信息作爲一條普通消息放到末尾;工具全集一次性列出,用提示詞約束“本階段只用哪些”,而不是改動工具列表本身。

序列化方式也要留意。同一份工具定義,如果 JSON 字段順序在不同進程裏不一致,從字節層面看就是兩個不同的前綴。建議對工具定義做固定排序後再發送,並在日誌中記錄前綴的哈希值,方便排查“明明沒改卻沒命中”的情況。

壓縮歷史與緩存複用的 Agent 長任務權衡

第 5 條存在一個需要權衡的地方。壓縮歷史能減少輸入長度,但壓縮之後前綴發生變化,本輪的緩存必然失效。如果每輪都壓縮,等於每輪都放棄複用。因此更合理的節奏是設定閾值,比如上下文達到某個長度、或者一個子任務結束時壓縮一次,壓縮後的版本再作爲新的穩定前綴,繼續只追加不改寫。

agent-long-task-token-cost-prefix-cache-zh-hant-image-2

上圖的兩種佈局,只看單輪請求幾乎沒有區別,放到幾十輪的長任務裏,賬單差距會很明顯。想確認自己的應用屬於哪一種,最直接的辦法是看調用日誌裏每一輪的輸入 Token 變化。API易 apiyi.com 提供統一計費、用量統計和調用日誌,多模型的數據可以放在同一處對比,適合用來做這類賬單結構的診斷。


Agent 長任務 Token 賬單優化快速上手

本節不涉及代碼,只給出一套可執行的排查步驟,按順序做即可。

第一步:把 Token 賬單按任務拆開

  1. 爲每個用戶任務生成一個任務 ID,任務內的每次模型調用都帶上這個 ID 記錄日誌。
  2. 從每次響應的 usage 信息中記錄輸入、輸出 Token 數;部分供應商還會單獨返回緩存命中的 Token 數,具體字段名以官方文檔爲準。
  3. 按任務彙總三項指標:調用次數、輸入/輸出比例、緩存命中佔比。

如果你同時調用多家模型,日誌口徑往往不統一。通過 API易 統一接入後,可以在同一個控制檯裏查看各模型的用量明細和調用記錄,再結合自己記錄的任務 ID,就能拼出“每個任務花了多少、錢花在哪一步”的完整視圖。

第二步:定位前綴被破壞的位置

  1. 抽取同一任務中相鄰兩輪請求,逐段比較系統提示詞、工具定義和歷史消息是否逐字一致。
  2. 重點檢查時間戳、隨機數、用戶狀態這類動態字段出現在什麼位置。
  3. 檢查工具定義和消息的序列化順序在多次請求之間是否穩定。

第三步:按 5 條做法調整並複測

  1. 把動態內容移到末尾,凍結系統提示詞和工具列表。
  2. 設定歷史壓縮閾值,改爲在檢查點壓縮,而不是每輪壓縮。
  3. 用同一批測試任務跑一遍改造前後的版本,對比單任務的輸入 Token 和緩存命中佔比。

🚀 上手建議:改造前後的對比一定要用同一批任務、同一個模型完成,否則數據沒有參考意義。藉助 API易 的統一接口,換模型複測時不必逐個適配接口,用量統計也集中在一處,便於把“結構優化”和“模型差異”這兩個變量分開觀察。

關於成本測算的邊界

WorkBuddy 給出過一組測算:按其任務規模和 TokenHub 旗艦檔刊例價計算,緩存命中率達到 90% 時,單任務估算成本可以從約 21.06 元降到約 3.36 元。需要注意,這組數字對應特定的上下文長度和價格條件,完整條件並未公開,無法復算,也不能直接套用到你的應用上。

影響因素 爲什麼會改變結果 你需要覈實什麼
上下文長度 前綴越長,緩存複用帶來的節省越多 自己任務的平均前綴長度
緩存計費方式 不同供應商對命中部分的折扣不同 目標模型官方文檔中的緩存價格
緩存觸發條件 最小長度、有效期等規則各不相同 官方文檔中的觸發與過期規則
調用間隔 兩輪間隔過長,緩存可能已經過期 工具執行耗時與緩存有效期是否匹配
任務步數 步數越多,重複前綴的累積越明顯 真實任務的步數分佈

Agent 長任務 Token 降本的配套做法

上下文結構之外,同一份分享還提到兩項應用側策略,可以和前綴緩存一起使用。

  • 按步驟選模型:WorkBuddy 團隊分享稱,約八成簡單步驟可以交給輕量模型,單任務成本降低約 57%。資料整理、格式轉換這類步驟不一定需要旗艦模型。
  • 按原因處理故障:遇到超時、請求被拒或供應商故障時,按原因限次重試、調整上下文或切換模型。無限重試會讓同一段長前綴被反覆計費。

需要提醒的是,切換模型意味着換了一套緩存,前綴複用要從頭開始。所以在路由設計上,最好讓同一子任務的連續步驟儘量留在同一個模型上,把模型切換安排在子任務的邊界。


常見問題 FAQ

Q1: 什麼是 Agent 長任務裏的前綴緩存?

前綴緩存指推理服務把已經計算過的輸入前綴(KV Cache)保存下來,後續請求開頭相同時直接複用,省去這部分的 prefill 計算。Agent 每輪都帶着大段相同的歷史,因此特別適合複用。

Q2: 前綴緩存和壓縮歷史上下文有什麼區別?

前綴緩存不減少輸入內容,只讓重複部分的計算更便宜;壓縮歷史則直接縮短輸入,但會改變前綴,導致本輪緩存失效。兩者需要配合使用:平時只追加以保證命中,到檢查點再壓縮一次。

Q3: 99.4% 的輸入佔比適用於所有 Agent 嗎?

不一定。這個數字來自一條 50 步調用鏈的分享。步數更少、單輪輸出更長的任務,輸入佔比會低一些。但只要是“長前綴、短輸出、多輪循環”的結構,輸入佔大頭的規律通常都成立,建議用自己的日誌實測。

Q4: 哪些 Agent 場景最值得優化前綴緩存?

– **編碼 Agent**:倉庫上下文長,讀文件、改代碼、跑測試循環頻繁
– **文檔或 PPT 生成**:材料讀取後逐頁生成,前綴高度重複
– **數據分析 Agent**:表結構和指標說明固定,每輪只追加查詢結果

Q5: 怎麼快速看清自己應用的輸入/輸出 Token 構成?

最簡單的辦法是按任務 ID 彙總每輪的 usage 數據。如果應用接入了多個模型,可以通過 API易 apiyi.com 統一調用,平臺提供用量統計和調用日誌,便於按模型、按時間段查看輸入輸出構成。至於平臺對各模型提示緩存的支持情況和計費方式,請以平臺文檔的實際說明爲準。

Q6: 前綴緩存有哪些已知限制?

– 各供應商的觸發條件不同,例如最小長度和有效期,需要逐一查官方文檔
– 工具執行耗時過長時,緩存可能在下一輪到來前就已過期
– 切換模型或修改系統提示詞會讓緩存整體失效
– 命中部分的折扣力度因模型而異,節省幅度需要實測確認


Agent 長任務 Token 賬單核心要點 Key Takeaways

  • 成本按任務計算:一次請求約 7.2 次調用,長任務可超過 50 步
  • 輸入是主要矛盾:50 步鏈路中輸入約佔 99.4%,壓輸出收效有限
  • 緩存從頭匹配:開頭只要一個 token 不同,後面的內容都無法複用
  • 結構比模型更關鍵:固定提示詞與工具結構,變化信息放在末尾
  • 壓縮要有節奏:在檢查點壓縮一次,避免每輪改寫前綴
  • 測算不能外推:公開的成本數字依賴特定長度和價格,需要自己複測
  • 先觀測再優化:藉助 API易 的用量統計和調用日誌拆解賬單結構

總結

Agent 長任務 Token 賬單的核心結論:

  1. 賬單結構:成本主要來自每輪重複帶入的歷史上下文,輸入 Token 佔絕大部分。
  2. 降本原理:前綴緩存讓重複前綴省去 prefill 計算,命中率由上下文結構決定。
  3. 落地方法:固定提示詞和工具、變化信息放末尾、歷史只追加、階段性壓縮,再配合按步驟選模型。

建議先用一週時間把日誌按任務拆開,確認自己的輸入佔比和緩存命中情況,再按本文的 5 條做法逐項改造。多模型場景下,可以通過 API易 apiyi.com 統一接入,集中查看用量和調用記錄,用同一套數據評估每一步優化的實際效果。


📚 參考資料

  1. 構建面向 Agentic 推理的下一代 LLM 推理引擎:TokenSpeed 在 AICon 2026 深圳站的分享整理
  2. 鏈接: infoq.cn/article/YwAayF1ylWb7oN4P0lyC
  3. 說明: 介紹 Agent 負載“長前綴、短輸出”的特徵、KV Cache 複用率與前綴緩存的結構設計

  4. 從模型調用到任務交付:MaaS 如何走進 Agent 生產:騰訊雲 MaaS 專場內容整理

  5. 鏈接: infoq.cn/article/zZutPTX8bsr6NWQYNC3A
  6. 說明: 包含 WorkBuddy 關於調用次數、輸入佔比、前綴緩存和模型路由的分享數據

作者: APIYI 技術團隊
技術交流: 關於多模型調用與用量分析的問題,歡迎通過 API易 apiyi.com 聯繫我們,更多資料可訪問 docs.apiyi.com 文檔中心

Similar Posts