一個 DeFi 策略 Agent 每天執行 10 次移倉操作,每次 Gas 費 $8(以太坊主網正常負載)。一個月下來,Gas 費總計 $2,400。這個數字比很多個人 DeFi 用戶的月收益還高。
Gas 費對人工操作來說是「偶爾的成本」——你不會每天手動移倉 10 次。但對 Agent 來說,Gas 費是持續的、系統性的運營成本,直接影響策略的盈虧平衡點。設計好的 Gas 優化策略,不只是省錢,更是讓 Agent 策略在數學上成立的必要條件。
Gas 費對 AI Agent 和人工操作的影響有根本性的差異,這個差異讓 Gas 優化對 Agent 的重要性遠超過對普通用戶:
頻率差異:人工操作者一週可能執行 1-2 次 DeFi 操作;一個優化中的 Agent 每天可能執行 10-50 次。同樣的每次 Gas 費,對 Agent 的月度累計成本是人工的 50-100 倍。這意味著對人工操作「可以接受」的 Gas 費,對 Agent 來說可能是虧損的根源。
無人值守的決策:人工操作者在 Gas 費高峰期會本能地選擇「等等再說」——看到 Gas 費 150 Gwei,普通用戶會選擇明天再操作。Agent 沒有這個本能,除非你明確在代碼裡設計了「Gas 費超過閾值就暫停」的邏輯,否則 Agent 會在最差的市場時機(Gas 費高峰)繼續執行。
策略盈虧平衡的精確計算:一個 DeFi 利率套利策略的盈虧平衡點,和 Gas 費直接相關。Gas 費從 $5 降到 $2,盈虧平衡的本金要求從 $267,600 降到 $107,000——同一個策略,Gas 優化讓它對更小資金量的用戶也成立。Gas 優化不只是省成本,而是決定了策略的適用範圍。
一個沒有 Gas 優化設計的 Onchain Agent,在以太坊主網上往往是一個「把錢燒給礦工的機器」。
在設計優化策略之前,需要理解 Gas 費由哪四個因素決定,這樣才能針對性地優化:
因素一:Gas Price(Gwei 單價)——市場供需決定,與時間高度相關。以太坊的 Gas Price 在工作日白天(UTC 12:00-20:00,美歐交易時段重疊)通常是深夜(UTC 00:00-06:00)的 3-5 倍。週末的 Gas Price 通常比工作日低 20-40%。這意味著「選擇在正確的時間執行」可以節省 60-80% 的 Gas 費。
因素二:Gas Limit(操作的複雜度)——由你調用的合約操作決定,開發者可以優化。一次 ERC-20 transfer 消耗約 21,000 Gas;一次 Uniswap V3 swap 消耗約 150,000-200,000 Gas;一次涉及多個協議的複合操作可能消耗 500,000+ Gas。選擇 Gas 效率更高的協議(例如某些協議的相同操作只需要競爭對手一半的 Gas),或者優化交易的執行路徑,都能減少 Gas Limit。
因素三:交易數量——可以通過批次設計大幅減少。每次「批准 + 操作」需要至少 2 筆交易;如果能把 10 次獨立的小操作合并成 1 次批次操作,交易數量從 20 筆降到 2 筆,Gas 費降低 90%。
因素四:L1 vs L2 的選擇——最大幅度的 Gas 費降低。相同的操作,在 Base 上的 Gas 費大約是以太坊主網的 1/50-1/100。如果你的策略在以太坊主網上每月 Gas 費 $1,200,遷移到 Base 後可能只需 $12-24。對資金量不夠大、難以在主網達到盈虧平衡的 Agent,切換到 L2 是最直接的解決方案。
批次交易是 Onchain Agent Gas 優化裡最有效的技術手段,原理是把多個獨立的操作合并成一次交易,從而把多次交易的固定 Gas 開銷(基礎費用 21,000 Gas × 次數)降低為一次。
EIP-4337(Account Abstraction)的 UserOperation 批次:如果你的 Agent 使用 ERC-4337 智能帳戶錢包(而不是普通的 EOA),你可以用 UserOperation 把多個操作打包成一個批次調用。一個包含「從 Aave 取出 USDC → 在 Curve 換成 DAI → 存入 Morpho」的三步操作,用 ERC-4337 可以打包成一次 UserOperation,只需支付一次基礎 Gas 費。相比三次獨立交易,Gas 費節省約 40-60%。
Multicall 模式:對不支持 ERC-4337 的場景,Multicall 合約讓你在一次交易裡調用多個目標合約。Uniswap V3 的 Router 本身就支持 Multicall,讓你可以在一次交易裡執行「先授權 USDC → 然後 Swap」,而不是兩次獨立交易。在 Agent 的工具函數設計裡,把「相關聯的操作」設計成支持 Multicall 的工具,讓 Agent 可以一次調用完成一組相關操作。
批次的設計原則:不是所有操作都應該批次。批次的前提是:操作之間有依賴關係(A 完成後 B 才能做),或者操作的目標相同(都是「移倉到 Morpho」)。把完全不相關的操作強行批次,可能反而增加複雜度和失敗風險(一個操作失敗會讓整個批次失敗)。設計原則:相關操作批次、獨立操作分開;在批次前驗證所有前置條件,確保批次內的所有操作都有高成功概率,避免因為批次內某步失敗而浪費整個批次的 Gas。
選擇正確的執行時機是 Gas 費優化裡最高性價比的手段——不需要改任何合約代碼,只需要讓 Agent 在 Gas 費低的時候執行。
Gas 費預測 API:使用 Gas 費預測 API(Blocknative Gas API、Etherscan Gas Oracle、或鏈上的 `eth_gasPrice` + 歷史分析)讓 Agent 在執行前先查詢當前 Gas 費和預測趨勢。Blocknative 的 Gas API 提供「未來 60 分鐘的 Gas 費預測」,讓 Agent 可以判斷「現在 Gas 費高,等 30 分鐘後再執行」。
時間窗口策略:基於 Gas 費的歷史規律,設定 Agent 的「首選執行窗口」和「緊急執行窗口」。首選執行窗口(Gas 費通常最低):UTC 00:00-06:00(亞太深夜,美歐市場關閉);週末的任意時間(比工作日便宜 20-40%)。緊急執行窗口:只在策略收益超過某個閾值(例如利差 > 2%)時,才在 Gas 費高峰期緊急執行。對時間敏感度低的 Agent(例如每日一次的利率優化),把執行窗口設定在 UTC 02:00-05:00(固定低谷期),預計可節省 50-70% 的 Gas 費。
動態閾值調整:不用固定的 Gas 費上限,而是動態計算「這次操作在這個 Gas 費下是否值得執行」。計算公式:操作收益(預期的利率差收益)> Gas 費 × N(N 是安全係數,通常設 2-3)才執行。例如:當前 Gas 費 $15,N=2,所以只有當這次移倉的預期收益 > $30 時才執行。這讓 Agent 在 Gas 費高峰時自動降低執行頻率,在 Gas 費低谷時增加執行頻率,動態調整操作成本和收益的比例。
EIP-1559 的 MaxPriorityFeePerGas 設定:在以太坊的 EIP-1559 費用機制下,你可以分別設定 maxFeePerGas(你願意支付的最高 Gas 單價)和 maxPriorityFeePerGas(給礦工的小費)。對非緊急的 Agent 操作,把 maxPriorityFeePerGas 設得更低(0.1-0.5 Gwei,而不是默認的 1-2 Gwei),讓交易在 Gas 費較低時才被打包,自然實現「等低 Gas 費執行」而不需要在應用層設計等待邏輯。
Gas 優化的投資回報極高:一個工程師花 2 天時間實作「批次交易 + 時間窗口選擇 + 動態 Gas 閾值」,可以讓 Agent 的月度 Gas 費從 $2,400 降到 $400-600,每月節省 $1,800+,年化節省超過 $21,600。這個優化的投資回報期通常不到一週。
對 Onchain Agent 的 Gas 優化,推薦按優先級執行:第一步,切換到 L2(Base 或 Arbitrum)——如果業務允許,這是最大幅度的 Gas 費削減,幾乎不需要策略邏輯修改;第二步,實作時間窗口策略——把執行時間集中在 Gas 費低谷期,代碼改動很小但效果顯著;第三步,實作動態 Gas 閾值——讓 Agent 根據收益/Gas 費比例自動決定是否執行;第四步,設計批次交易——把相關操作合并,減少交易次數。按這個優先順序執行,前兩步的投入最小、效果最大,應該優先完成。