Solana Agent Ops 技能
這是介於「我的機器人在我的筆電上可以運作」和「我的機器人在 mainnet 上無人值守且不會虧錢」之間的層級。
它假設你已經知道如何建構一筆交易。它所涵蓋的是讓一個代理在生產環境中存活的一切:可靠地落地交易、安全地持有簽署者群組的金鑰、絕不因為重試而雙重支付、保持在 RPC 限制之下、在排程器上執行,並在造成損害之前自行關閉。
對於核心交易建構、@solana/kit 以及程式與客戶端模式,此技能是 solana-dev-skill 的延伸。這是建立在它之上的運營附加元件;它不會重新教授如何建構指令。
何時使用此技能
當使用者在進行以下任何操作時,請導向至此處:
- 建置或操作一個在無人看管下簽署並發送交易的機器人、守護程式或代理
- 詢問為什麼交易沒有落地:被丟棄、區塊雜湊過期或從未確認
- 運行多個簽署者錢包,並擔心金鑰儲存、資金補充或輪換
- 擔心重試可能會雙重支付,或一個動作可能被執行兩次
- 遇到來自 RPC 提供者的 429 或速率限制
- 將代理放在 cron 或排程器上,並希望它能安全地失敗
- 為現有的機器人添加監控、警報、緊急停止開關或支出上限
如果任務是一次性的交易建構(建構一個指令、一個 CPI、一個 PDA),那屬於 solana-dev-skill,而不是這裡。
任務路由
一次只讀取你需要的檔案。每個任務一個主要目標。
| 任務 | 閱讀 |
|---|---|
| 交易被丟棄 / 過期 / 未落地 / 緩慢 | transaction-landing.md |
| 設定計算單元 + 優先費用 | transaction-landing.md |
| Jito 捆綁 / MEV / 原子性多交易 | transaction-landing.md |
| 管理 N 個簽署者錢包、金鑰儲存、資金補充 | keypair-fleet.md |
| 「這個已經執行過了嗎?」 / 防止雙重執行 | idempotency.md |
| 429、RPC 預算、端點故障轉移 | rate-limiting.md |
| 在 cron 上執行 / 每次執行一個週期 / 退出碼 | scheduling.md |
| 健康檢查、餘額/失敗警報、儀表板 | monitoring.md |
| 緊急停止開關、支出上限、斷路器、試運行 | safety.md |
| 官方文件、RPC 提供者、函式庫 | resources.md |
運作模型(先讀這個)
每個生產代理都應該圍繞四個不變條件來建構。模組檔案根據強制執行這些條件來組織:
- 發送前先模擬。 一個模擬失敗的交易在鏈上也會失敗,所以免費找出問題。(transaction-landing.md)
- 每次發送都是冪等的。 如果進程崩潰並在中間重新啟動,重播它不得雙重執行。這意味著使用冪等金鑰加上鏈上或狀態儲存檢查,而不是期望它沒有執行。(idempotency.md)
- 每個週期的資金有上限。 支出上限、滑點範圍和一個在異常時觸發的斷路器,全部在程式碼中執行,而不是靠你的大腦。(safety.md)
- 每次執行一個週期,乾淨地退出。 排程器會重新呼叫你,所以一個因為短暫的 RPC 問題而回傳非零退出碼的進程,會在凌晨三點無緣無故地呼叫你。(scheduling.md)
預設技術棧(2026 年 6 月)
- 客戶端:
@solana/kit(web3.js v2)。當生態系統仍在使用時,會標註 web3.js v1 模式。 - 執行環境: Node 22+ / TypeScript 5.5+。對於需要快速執行的守護程式,會提供 Rust 模式。
- RPC: 供應商中立。Helius、Triton 和 QuickNode 的特定功能會被標記,但從不強制要求。
- 捆綁: Jito(
jito-ts或區塊引擎 REST),可選,用於原子性和 MEV 保護。 - 排程: 純 cron、systemd 計時器、GitHub Actions 或 serverless cron,全部都是每次執行一個週期。
請參閱 resources.md 以取得每個項目的規範連結。
相關的套件技能(不要重複)
- 作為框架建構代理: SendAI
solana-agent-kit。此技能是建立在它之上的運營層。 - RPC 供應商 API(Helius Sender、優先費用 API、Laserstream): Helius 技能。此技能保持供應商中立,並告訴你哪個供應商功能解決哪個運營問題。
- 用於金庫和升級權限的多重簽名金鑰保管: Squads 技能。此技能涵蓋運營性的簽署者群組保管,即發送常規交易的熱金鑰,這是一個不同的問題。