Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
獨立知識媒體
與任何項目無關聯
拆解加密世界的 AI Agent:機制、風險、經濟模型
aiagent-bible.com
最新
Onchain Agent 的 Gas 優化設計:批次交易、動態策略、時機選擇,讓你的 Agent 少付 60% 手續費  ·  Agent 代幣經濟設計:為什麼大多數 Agent 代幣失敗,以及好的代幣設計長什麼樣  ·  AI Agent 的 Context Window 管理:為什麼你的 Agent 會「忘事」,以及四種解決方法  ·  MCP 是什麼?為什麼 2025 年每個 AI Agent 都在談它  ·  Agentic Loop 是什麼:AI Agent 怎麼「一直跑」——感知、規劃、執行、觀察的完整循環拆解  ·  2026 年五個主流 Onchain Agent 框架比較:LangGraph、ElizaOS、AutoGen、Olas、ZerePy,各自適合誰
名詞解析 · onchain-agent

Gas Price Oracle

Gas Price Oracle(Gas 費預言機)
onchain-agent 新手

完整解說 +
01 · 這是什麼?

Gas Price Oracle 有哪些主要的數據來源?它們的準確性和延遲怎麼樣?

Gas Price Oracle 的數據來源主要有三類,各有不同的準確性和延遲特性:

類型一:鏈上 RPC 查詢(eth_gasPrice / eth_feeHistory Ethereum JSON-RPC 標準提供了查詢當前 Gas 費的原生方法。eth_gasPrice 返回一個網絡建議的 Gas 費估算;eth_feeHistory 返回過去幾個區塊的 Gas 費歷史數據,讓你能基於趨勢做預測。優點:直接從鏈上讀取,最原始;缺點:只告訴你「現在」的費用,不能預測「未來 10 分鐘」的費用。

類型二:第三方 Gas Oracle API Blocknative Gas Estimator、Etherscan Gas Tracker、Alchemy Gas Manager 等服務收集大量的 mempool 數據和歷史費用模式,生成更精細的預測——包括「未來 60 分鐘的 Gas 費預測」和「按時間的 Gas 費分佈」。準確性高於純鏈上查詢,因為它們使用了更多的數據維度(mempool 堆積情況、歷史模式)。延遲:通常有 5-30 秒的更新頻率,不是實時。

類型三:在協議層自帶 Gas Oracle 的機制(EIP-1559) EIP-1559(2021 年 8 月以太坊升級)引入了鏈上 Base Fee 機制——每個區塊的 Base Fee 由協議根據前一個區塊的使用率自動調整(前一個區塊超過目標使用率則 Base Fee 上漲,低於則下降)。這意味著 Base Fee 是可預測的(下一個區塊的 Base Fee 最多漲/跌 12.5%),給 Gas Oracle 的預測提供了更穩定的基礎。

對 Onchain Agent 的實際建議:在需要實時性不高的場景(每小時一次的利率套利),用 Blocknative 或 Etherscan 的 Gas API,每次執行前查詢一次;在需要實時性高的場景(套利 Agent),直接用 eth_feeHistory 做鏈上計算,避免 API 調用延遲。

02 · 為什麼存在?

EIP-1559 之後 Gas 費的結構發生了什麼變化?Base Fee 和 Priority Fee 有什麼區別?

EIP-1559 是以太坊 Gas 費機制的重大改革,讓 Gas 費的結構從「單一競拍費用」變成了「Base Fee + Priority Fee(小費)」的雙組成結構:

Base Fee(基礎費用)

  • 由協議自動計算,每個區塊所有人看到的 Base Fee 相同
  • 根據前一個區塊的使用率動態調整(區塊超過目標使用率的 50% → Base Fee 上漲;低於 50% → Base Fee 下降),每個區塊最多變動 12.5%
  • Base Fee 全部被銷毀(Burn),不進入礦工口袋
  • 你的交易要進入區塊,必須支付至少 Base Fee,低於 Base Fee 的交易會被忽略

Priority Fee(小費 / maxPriorityFeePerGas)

  • 你額外給礦工的「小費」,礦工根據小費高低決定優先打包哪些交易
  • 如果你的小費高,礦工更傾向於優先打包你的交易(即使 Base Fee 相同)
  • 默認設定:Metamask 等錢包通常建議 1-2 Gwei;對非緊急的 Agent 操作,可以設置 0.1-0.5 Gwei 降低成本

對 Onchain Agent 的影響

  • Gas Oracle 現在需要同時預測 Base Fee(相對可預測,最多 12.5% 變動)和建議的 Priority Fee(更多受市場情緒影響)
  • Agent 設置 maxFeePerGas(= Base Fee + Priority Fee)時,Base Fee 設得比當前高一些(留 buffer);Priority Fee 按操作緊急程度設定(不緊急的操作設 0.1 Gwei,讓交易自然在 Gas 費低時被打包)
  • EIP-1559 讓 Gas 費更可預測,Agent 更容易設計「等 Gas 費降到閾值後再執行」的策略
03 · 如何影響你的決策?

Agent 應該在什麼時候查詢 Gas Price Oracle?每次工具調用前都要查嗎?

Gas Price Oracle 的查詢本身也消耗時間(API 請求的延遲)和成本(如果是付費的第三方 API),所以不需要也不應該在每個工具調用前都查詢。合理的查詢策略:

查詢時機一:在計劃執行寫入操作之前 只有在 Agent 計劃執行鏈上寫入操作(廣播交易)前,才需要查詢 Gas 費。讀取操作(查詢 API 數據、讀取鏈上狀態)不消耗 Gas,不需要在前面做 Gas 費查詢。

查詢時機二:定期緩存更新(非實時場景) 對不需要精確實時 Gas 費的 Agent(每小時執行一次的利率套利 Agent),可以設計一個「每 5 分鐘更新一次的 Gas 費緩存」,每次執行前讀取緩存而不是每次都發一次 API 請求。5 分鐘的緩存對每小時執行的 Agent 已足夠精確(Gas 費在 5 分鐘內變動通常不超過 10-15%)。

查詢時機三:觸發式查詢(Gas 費敏感策略) 對 Gas 費非常敏感的策略(利差很小、只有在 Gas 費極低時才有利可圖),可以設計一個「Gas 費監控器」Sub-agent,持續監控 Gas 費,當 Gas 費低於閾值時才通知 Orchestrator 執行策略。這讓主策略 Agent 不需要主動查詢 Gas 費,而是等待「Gas 費條件滿足」的通知。

不需要查詢 Gas Price Oracle 的場景:讀取操作(任何不廣播交易的工具調用);部署在 L2(Base / Arbitrum)上的 Agent(L2 的 Gas 費極低且波動小,通常不影響策略盈虧);已知 Gas 費窗口(在固定的低 Gas 費時間段執行,不需要實時查詢)。

04 · 你該怎麼辦?

Gas Price Oracle 的數據不準確或服務中斷時,Agent 應該怎麼應對?

Gas Price Oracle 的故障是 Agent 生產環境裡真實存在的風險,需要設計 fallback 機制:

風險一:第三方 Gas Oracle API 服務中斷 如果你依賴 Blocknative 或 Etherscan 的 Gas API,服務中斷時 Agent 的工具調用會失敗。Fallback 策略:準備兩個 Gas Oracle 數據源(主要 + 備選),主要源失敗時自動切換到備選源。備選源可以是鏈上的 eth_gasPrice RPC 調用(雖然不如第三方 API 精準,但總比沒有好)。

風險二:Gas Oracle 返回明顯異常的數據(異常低 / 異常高) Gas Oracle 偶爾會返回明顯錯誤的數據(例如 Gas 費 0 Gwei 或 Gas 費 10,000 Gwei)。Agent 應該設計 Gas 費的合理範圍驗證:如果返回的 Gas 費 < 0.1 Gwei 或 > 500 Gwei(可根據鏈和市場調整),視為數據異常,不直接使用,記錄告警,改用上一次緩存的有效 Gas 費。

風險三:Gas 費劇烈波動(在 Agent 查詢和交易廣播之間) Agent 在 T=0 查詢 Gas 費(10 Gwei),在 T=30 秒時廣播交易,但 T=30 秒時 Gas 費已經漲到 50 Gwei。交易雖然成功廣播,但實際費用超出預期。緩解:設定 maxFeePerGas = 查詢到的 Gas 費 × 1.2(20% buffer),讓交易在 Gas 費小幅波動時仍能正常確認,但不會在 Gas 費暴漲時以極高費用確認(超過 maxFeePerGas 的交易在 EIP-1559 機制下會自動等待或取消)。

實際例子 +

實際代碼示例:一個 DeFi Agent 的 Gas Oracle 集成

以下是一個帶有 fallback 和緩存設計的 Gas Oracle 工具函數示例(Python 偽代碼):

async def get_current_gas_price() -> dict: # 嘗試主要數據源(Blocknative API) try: data = await blocknative_api.get_gas_estimate() result = { 'slow_gwei': data['slow']['maxFeePerGas'], 'standard_gwei': data['standard']['maxFeePerGas'], 'fast_gwei': data['fast']['maxFeePerGas'], 'source': 'blocknative', 'cached': False } validate_gas_price(result) # 異常值檢查 cache.set('gas_price', result, ttl=300) # 緩存 5 分鐘 return result except Exception: # fallback 到鏈上查詢 base_fee = await w3.eth.get_block('pending')['baseFeePerGas'] gwei = Web3.fromWei(base_fee, 'gwei') return {'standard_gwei': gwei * 1.1, 'source': 'on-chain', 'cached': False}

這個設計的關鍵:主要 API 失敗時自動 fallback 到鏈上查詢;返回值帶有 source 字段告訴 Agent「這個 Gas 費數據來自哪裡,可信度多高」;結果緩存 5 分鐘,避免頻繁 API 調用。在調用這個工具的 Agent 決策邏輯裡,可以根據 source 字段決定「使用 on-chain 數據時,是否要加更大的 buffer(因為不如第三方 API 準)」。

圖解
Gas Price Oracle: Data Sources + EIP-1559 Structure + Agent Decision Flow三欄圖解:左欄 Gas Oracle 數據源對比(鏈上/第三方API/緩存);中欄 EIP-1559 費用結構(Base Fee + Priority Fee);右欄 Agent Gas 決策流程圖(查詢→判斷→執行/等待)。Gas Price Oracle: Data Sources + EIP-1559 + Agent Decision FlowData SourcesOn-chain eth_feeHistoryFree · no outage riskCons: history only, no forecast3rd-party API (Blocknative)60-min forecast · free tierCons: outage risk → need fallbackCache (5-min TTL)Reduces API callsCons: may be stale during spikesBest: 3rd-party + cache + on-chain fallbackEIP-1559 Fee StructureBase FeeProtocol-set · same for all · BURNEDChanges ±12.5% max per blockPriority Fee (tip)You set it · goes to minersNon-urgent agents: 0.1-0.5 GweimaxFeePerGas = Base + PrioritySet 20% above current Base FeeAgent Decision FlowQuery Gas Oracle (cached / live)Calc: yield > Gas × N ?YES → ExecuteNO → Wait(retry in 30 min)Set maxFeePerGas = queried × 1.2Broadcast · wait confirmationLog result to audit trailFallback Design (required for production)Primary: 3rd-party API (Blocknative / Etherscan) → Backup: on-chain eth_feeHistoryAnomaly check: if Gas < 0.1 or > 500 Gwei → reject data · use last valid cacheSpike buffer: always set maxFeePerGas = queried × 1.2 to absorb inter-query volatilityAI Agent Bible · aiagent-bible.com
歡迎截圖分享,轉載請註明來源
常見誤解 +
✕ 誤解1
× 誤解一:Gas Price Oracle 返回的 Gas 費就是你一定會支付的費用。Gas Price Oracle 返回的是「建議費用」,你的實際支付費用取決於你設定的 maxFeePerGas。在 EIP-1559 機制下,如果 Base Fee 降低了,你實際支付的費用可能比你設定的 maxFeePerGas 更低(只需支付 Base Fee + 你設定的 Priority Fee);如果你設定的 maxFeePerGas 低於當時的 Base Fee,交易會被延遲到 Base Fee 降下來才確認,不會失敗,只是等更長時間。
✕ 誤解2
× 誤解二:Gas 費低的時候馬上執行,Gas 費高的時候等待,這樣就能讓 Agent 的 Gas 費最小化。這個策略在 Gas 費長期高企(例如 NFT 熱潮或重大市場事件期間)時會讓 Agent 長時間暫停操作,錯過套利機會。正確的策略是「動態閾值」——不是「Gas 費低才執行」,而是「當前 Gas 費下,這次操作的預期收益 > Gas 費 × N 才執行」。這讓 Agent 能在高 Gas 費時期也能執行高收益的操作,而不是等待可能永遠不會到來的「Gas 費降低」。
這件事跟你有什麼關係 +
直接影響

使用精準的第三方 Gas Oracle(Blocknative / Alchemy)→ 預測更準確、能提供未來趨勢預測,但有 API 費用(通常 $20-100/月),且有服務中斷風險(需要設計 fallback)。使用鏈上 eth_feeHistory → 免費、無服務中斷風險,但只有歷史數據、沒有未來趨勢預測,且需要自己實作預測邏輯。Gas 費緩存(5-15 分鐘)→ 減少 API 調用次數和延遲,但緩存期間 Gas 費可能大幅波動。對大多數 DeFi 策略 Agent(非套利),用第三方 API + 5 分鐘緩存 + 鏈上 fallback 是最均衡的方案。

提問
請至少輸入 10 個字