026 · 省 token 的五個實用技巧
AWS 資深開發者關係工程師用五分鐘示範五招降低 agent 的 token 成本,從快取到修剪對話歷史都涵蓋。
原標題:Your Agent Is Wasting Tokens and You Don't Know It - Erik Hanchett, AWS
重點摘要
- 快取 system promptStrands Agents 可以把 cache_prompt 設成 default,第一次呼叫送出完整 system prompt,之後每次改送精簡版本,省下重複傳送的花費。
- 依任務難度分流模型簡單任務交給便宜的模型,困難任務才動用較新的前沿模型,甚至可以用一個便宜模型幫忙判斷該路由到哪裡,不要每件事都用最貴的模型硬做。
- 卸載大型工具結果工具回傳的大量內容不必每次都塞進對話紀錄,可以先存到本地或雲端,再用摘要方式帶進 context,避免每次迴圈都重複佔用 token。
- 限制工具呼叫迴圈次數agent 有時會反覆呼叫同一個工具,沒設上限甚至可能跑成無限迴圈,務必設定 max iterations,部署前再用 observability 工具檢查每個工具呼叫花多久、跑幾次。
- 修剪對話歷史多輪對話累積久了,整段歷史每次都會被送回模型,很燒 token;sliding window 機制只看最近約十則訊息,代價是會遺失較早的內容,可以搭配摘要補回重點。
時間軸
時碼點下去會跳到影片的那一段。
| 時碼 | 段落 | 重點 |
|---|---|---|
| 00:00 | 開場 | Erik Hanchett 自我介紹,說明這場要示範五種降低 agent token 成本的做法。 |
| 00:21 | 招式一:快取 system prompt | 用 Strands Agents 的 cache_prompt 參數,第一次送完整 prompt,之後改送精簡版本,工具的 prompt 也能比照辦理。 |
| 00:59 | 招式二:依難度分流模型 | 簡單任務用便宜模型,困難任務才動用前沿模型,不要每件事都用最貴的模型處理。 |
| 01:45 | 招式三:卸載工具結果 | 大型工具回傳結果先存到本地或雲端並摘要,避免每次迴圈都整包塞進 context。 |
| 02:51 | 招式四:限制工具呼叫迴圈 | 沒設上限的話 agent 可能反覆呼叫工具甚至陷入無限迴圈,務必設定 max iterations。 |
| 03:47 | 招式五:修剪對話歷史 | 多輪對話累積後整段歷史都會重送,sliding window conversation manager 只保留最近約十則訊息。 |
| 04:25 | 滑動視窗的取捨 | 縮短歷史會遺失最早的對話內容,建議搭配摘要把重點濃縮進 context 補回。 |
| 04:56 | 五招總結 | 重述快取、依難度分流、卸載工具結果、限制迴圈、修剪歷史五個做法。 |
| 05:43 | 結尾 | Erik Hanchett 分享 LinkedIn、部落格與社群帳號,歡迎進一步交流。 |
值得記的話
名詞與人物
| Erik Hanchett | AWS 的資深開發者關係工程師,這場的講者。 |
|---|---|
| Strands Agents | AWS 推出的 agent 開發框架,這場所有程式碼範例都用它示範。 |
| cache_prompt | Strands Agents 的參數,設成 default 後第一次呼叫送完整 system prompt,之後改送精簡版本。 |
| sliding window conversation manager | Strands Agents 內建機制,只保留最近約十則訊息,避免整段對話歷史反覆重送。 |
| max iterations | 限制 agent 迴圈最多能跑幾輪的設定,避免工具呼叫跑成無限迴圈。 |
延伸
- 用更便宜的模型幫忙判斷該把任務路由給哪個模型,這場只提了一句就帶過,沒有進一步說明做法。
- Strands Agents 另外提供幾支 API 可以完成同樣的工具結果卸載,這場沒有進一步示範。