跳至內容
0%

2026 年如何打造 Solana AI agent

作者:Alchemy

最後更新:2026年1月26日6 分鐘閱讀
一排 AI 代理人臉孔,展示 Solana AI 代理人開發

AI 代理正在改變我們與區塊鏈基礎設施互動的方式。這些自主程式可以執行交易、管理投資組合、鑄造 NFT,並與 DeFi 協議互動,全部透過自然語言指令完成。這與加密貨幣早期的使用體驗相去甚遠。

Solana 已成為 AI 代理開發的主要區塊鏈,在 2025 年 12 月佔 x402 交易量的 77%,結合了次秒級最終性、極低的交易成本,以及一套專為代理應用打造的成熟框架生態系統。

本指南將帶你完整走過在 Solana 上建構生產級 AI 代理的過程,從選擇合適的框架到實作安全的錢包架構。無論你是在建構交易機器人、個人鏈上助理,還是自主 DeFi 管理工具,都能在這裡找到所需的技術基礎。

為什麼選擇 Solana 來開發 AI 代理?

AI 代理有潛力改變鏈上活動並開啟全新的應用場景,這讓想開始開發的工程師面臨一個重要問題:該在哪條區塊鏈上建構 AI 代理?

答案越來越明顯:Solana。一個監控市場、執行交易、再平衡投資組合的代理,每天可能提交數百筆交易。在 Ethereum 主網上,這種操作頻率可能需要花費數千美元的 gas 費。在 Solana 上,只需幾分錢。但成本只是起點,Solana 的架構在遠超過手續費的層面上,與代理的需求相契合:

  • 速度對自主性至關重要: 代理需要即時回應市場條件、使用者請求和鏈上事件。Solana 的 400 毫秒出塊時間與次秒級最終性,能實現緊密的反饋循環。代理以循環方式運作:思考該做什麼、執行動作、觀察結果,然後再次思考。每個「觀察」步驟都需要等待交易確認。在出塊時間為 12 秒的鏈上,一個三步驟的工作流程意味著超過 36 秒的閒置等待時間,代理因此失去了讓自主運作感覺靈敏的緊密反饋循環。在 Solana 上,相同的工作流程能在 2 秒內確認,讓代理幾乎能即時思考並行動。這就是「感覺像你提交的批次作業」與「感覺像與你並肩工作的協作者」之間的差別。
  • 可預測的手續費有利於規劃: 代理需要為操作編列預算。Solana 的手續費模型,每筆交易約 0.00025 美元,讓開發者能打造出可以用極少資本持續運作的代理。即使在壅塞期間,優先手續費相較於其他鏈上的 gas 拍賣機制,仍維持在合理範圍內。
  • 原生程式組合性: Solana 程式可以在單一交易中原子性地呼叫其他程式。一個代理可以在 Jupiter 上兌換代幣、將輸出質押到 Marinade,並鑄造一個收據 NFT,全部在一次原子操作中完成。這種組合性正是 Solana 代理與笨重的循序工作流程之間的區別所在。當一個代理可以將多個操作打包進單一原子交易中,例如兌換代幣、提供流動性、再質押 LP 倉位,它執行得更快(一次確認而非三次)、成本更低(一筆基礎手續費而非三筆),程式碼也更簡單(步驟之間無需錯誤處理)。對使用者來說,差異是天壤之別:請代理「優化我的收益」,它就在幾秒內直接完成,而不是在每個階段都跳出確認提示,帶你走過多步驟流程。
  • 生態系動能: Solana 上的 AI 代理生態系自 2024 年底以來快速擴張。SendAI 的 Solana Agent Kit、ElizaOS(前身為 ai16z)、Crossmint 推出的 GOAT toolkit,以及像 Rig 這樣的 Rust 原生框架,共同打造出豐富的開發環境。Jupiter 處理了 Solana DEX 聚合器 90% 的交易量,並提供為程式化存取設計的 API,讓代理能非常輕鬆地接入並運用這些資料。

理解 AI 代理技術堆疊

在深入程式碼之前,先快速概覽一下 AI 代理技術堆疊的各個層級,這有助於你了解在特定任務中應該使用哪些工具。AI 代理技術堆疊可以概括為 4 個層級:

  • 大型語言模型(LLM): LLM 構成任何 AI 代理的基礎。像 Claude Opus 4.5、GPT-5.2 或 Gemeni 2.5 Pro 這類最新模型,提供自然語言理解與推理能力。它們處理使用者請求、解讀擷取的區塊鏈資料,並決定要採取哪些行動。LLM 就是讓代理具備智慧、而不只是一個腳本的「大腦」。
  • 代理框架: 框架位於 LLM 之上,負責處理代理運作方式的編排。它們管理對話歷史、透過系統提示詞維持代理的「個性」、協調多種工具,並與 Twitter、Discord 或 Telegram 等外部平台整合。ElizaOS 是其中的代表性範例,它將 LLM 整合、記憶管理與多平台客戶端整合成一個統一的框架。
  • 區塊鏈工具套件: 工具套件讓代理真正具備與 Solana 互動的能力。Solana Agent Kit、GOAT toolkit 及類似的函式庫,將區塊鏈操作以 LLM 可呼叫的「工具」形式暴露出來。當使用者說「把 10 SOL 換成 USDC」時,工具套件會將其轉譯為 Jupiter API 呼叫、交易建構與提交。

代理框架現況

了解概念基礎之後,接下來談談在 2026 年將主導 Solana AI 代理開發的四大主要框架。

Solana Agent Kit(SendAI)

Solana Agent Kit 是建構與 Solana 生態系互動的代理最直接的途徑。由 SendAI 開發,提供超過 60 個預先建構的操作,涵蓋代幣操作、NFT 鑄造、DeFi 互動等。該套件能乾淨地整合 LangChain、Vercel AI SDK 及其他常見的 AI 開發框架。

SendAI 的模組化外掛架構讓你只安裝需要的部分。代幣外掛處理 SPL 代幣的轉帳與兌換。NFT 外掛管理 Metaplex 操作。DeFi 外掛與 Jupiter、Raydium 及其他協議整合。這種模組化讓部署保持輕量。

以下是這個框架初始化的樣子。首先建立一個錢包,用你的 RPC 與 API 金鑰實例化代理,然後鏈接你需要的外掛:

typescript
Copied
import { SolanaAgentKit, createVercelAITools, KeypairWallet } from "solana-agent-kit"; import TokenPlugin from "@solana-agent-kit/plugin-token"; import DefiPlugin from "@solana-agent-kit/plugin-defi"; const wallet = new KeypairWallet(keypair); const agent = new SolanaAgentKit(wallet, "YOUR_RPC_URL", { OPENAI_API_KEY: "YOUR_OPENAI_API_KEY" }) .use(TokenPlugin) .use(DefiPlugin); const tools = createVercelAITools(agent, agent.actions);

最適合: 想要快速原型開發、同時獲得全面 Solana 覆蓋範圍的開發者。此套件將大部分區塊鏈複雜性抽象化,同時仍保有足夠的彈性以用於生產環境。

ElizaOS

ElizaOS 由 ai16z 專案演化而來,發展成一個完整的代理作業系統。它的設計目標是支援需要在各平台(Twitter 機器人、Discord 助理、Telegram 頻道)上維持持久性格的自主代理。該框架負責處理記憶、角色定義與多平台部署。

ElizaOS 中的代理透過角色 JSON 檔案定義,指定其個性、可用動作與行為參數。Solana 外掛提供區塊鏈能力,框架則負責處理在各種互動中維持一致代理行為的複雜性。

透過 CLI 可以輕鬆開始:

bash
Copied
# Install ElizaOS CLI bun install -g @elizaos/cli # Create a new agent project elizaos create my-solana-agent # Start in development mode elizaos dev

真正的設定發生在你的角色檔案中。在這裡你定義代理運作的平台、要使用的 LLM 供應商,以及要啟用哪些 Solana 能力:

json
Copied
{ "name": "SolanaHelper", "clients": ["twitter", "discord"], "modelProvider": "openai", "plugins": ["@elizaos/plugin-solana"], "settings": { "secrets": { "SOLANA_PRIVATE_KEY": "your_base58_private_key", "SOLANA_RPC_URL": "your_rpc_url" } } }

最適合: 需要跨平台維持持久身分的社交代理。如果你正在建構具備 Solana 能力的 Twitter 機器人或 Discord 助理,ElizaOS 是自然的選擇。

GOAT toolkit(Crossmint)

GOAT(Great Onchain Agent Toolkit)採取不同的方法。它被設計為 AI 代理與任何區塊鏈應用之間的通用轉接器。Solana Agent Kit 專注於 Solana 特有的操作,而 GOAT 則提供跨越超過 30 條鏈(包括 Solana、EVM 網路及其他)的統一介面。

GOAT 真正的優勢在於其整合廣度。超過 200 個外掛涵蓋了從 Solana 上的 Jupiter、Orca,到 Ethereum 上的 Uniswap 和 Aave 等協議。如果你正在建構需要跨多條鏈運作的代理,GOAT 讓你不必為每條鏈分別實作。

初始化模式與 Solana Agent Kit 類似。首先初始化一個錢包、選擇你的外掛,然後為你的 AI 框架產生工具。以下是搭配 Jupiter 整合的 Solana 設定:

typescript
Copied
import { getOnChainTools } from "@goat-sdk/adapter-vercel-ai"; import { solana } from "@goat-sdk/wallet-solana"; import { jupiter } from "@goat-sdk/plugin-jupiter"; const tools = await getOnChainTools({ wallet: solana({ keypair }), plugins: [jupiter()] });

最適合: 多鏈代理,以及需要與特定 DeFi 協議整合的應用程式。GOAT 的外掛生態系在協議覆蓋範圍上無人能及。

Rig 框架(Rust)

對於效能要求嚴苛的應用,例如高頻交易機器人、MEV 策略、對延遲敏感的操作,Rig 提供了一個 Rust 原生的 AI 代理框架。結合 Listen.rs 進行 Solana 整合,它提供了從 LLM 決策到鏈上執行延遲最低的路徑。

Rig 利用 Rust 的型別系統實現編譯期正確性,並憑藉其效能特性達到次毫秒級操作。rig-onchain-kit 提供 Solana 整合,Listen.rs 則加入交易監控與 Jito bundle 提交,用於防 MEV 的交易。

其 API 簡潔且符合 Rust 慣例。你建立一個客戶端、用系統提示詞設定代理,然後開始提示:

rust
Copied
use rig::{completion::Prompt, providers::openai}; #[tokio::main] async fn main() { let client = openai::Client::from_env(); let agent = client .agent("gpt-4") .preamble("You are a Solana trading assistant.") .build(); let response = agent.prompt("Analyze SOL/USDC market conditions").await?; }

最適合: 延遲至關重要的效能關鍵型應用。如果你正在建構交易基礎設施,或需要直接整合 Solana 原生的 Rust 生態系,Rig 是你的選擇。

LangChain

LangChain 是建構 LLM 驅動應用中採用最廣泛的框架。雖然它並非針對區塊鏈設計,但其工具抽象化與代理架構,使其非常適合用於 Solana 開發。Solana Agent Kit 提供一流的 LangChain 整合,讓你在存取 Solana 鏈上能力的同時,也能運用 LangChain 成熟的生態系統。

LangChain 的優勢在於組合性,讓開發者能將提示詞、工具、記憶系統與檢索機制串接成複雜的代理工作流程。該框架處理對話管理、工具選擇與輸出解析。對於 Solana 代理而言,這意味著你可以將鏈上動作與鏈下資料來源、RAG 流程及多步驟推理結合在一起。

與 Solana Agent Kit 的整合十分無縫。你初始化代理後,使用 createLangchainTools 輔助函式,將你的 Solana 操作轉換為與 LangChain 相容的工具:

typescript
Copied
import { SolanaAgentKit, createLangchainTools } from "solana-agent-kit"; import { ChatOpenAI } from "@langchain/openai"; import { createReactAgent } from "@langchain/langgraph/prebuilt"; const agent = new SolanaAgentKit(wallet, "YOUR_RPC_URL", { OPENAI_API_KEY: "YOUR_OPENAI_API_KEY" }); const tools = createLangchainTools(agent, agent.actions); const llm = new ChatOpenAI({ model: "gpt-4o" }); const solanaAgent = createReactAgent({ llm, tools }); const result = await solanaAgent.invoke({ messages: [{ role: "user", content: "Check my SOL balance" }] });

當你需要將 Solana 操作與外部資料結合時,LangChain 同樣表現出色。你可以在區塊鏈工具旁邊加入網路搜尋工具、資料庫檢索器,或自訂 API 整合。代理會根據任務決定該使用哪些工具。

最適合: 已經在 LangChain 生態系中工作的開發者,或需要將 Solana 操作與複雜推理鏈、RAG 或外部資料來源結合的應用程式。如果你的代理需要的不只是區塊鏈互動,LangChain 提供了編排層。

建構你的第一個 Solana 代理:逐步教學

現在我們已經涵蓋了基礎理論,接下來讓我們使用 Solana Agent Kit 和 LangChain 建構一個可運作的 Solana AI 代理。到這個章節結束時,你將擁有一個能檢查餘額、執行兌換,並鑄造財務收據 NFT 的代理,全部透過自然語言指令完成。

我們會逐步建構,一邊進行一邊解釋每個部分。

先決條件

開始之前,請確認你具備:

  • Node.js v23 以上版本:Solana Agent Kit 需要現代的 Node 功能。用 node --version 檢查你的版本。如果需要升級,nvm 可以讓這件事變得簡單:
bash
Copied
nvm install 23 nvm use 23
  • 一個 Solana 錢包:你需要一個帶有一些 devnet SOL 的密鑰對用於測試。 如果你還沒有,我們會為你產生一個。- API 金鑰:OpenAI(用於 LLM) 以及選擇性地,一個像 Alchemy 這樣的專屬 RPC 供應商

專案設定

從建立一個新目錄並初始化你的專案開始:

bash
Copied
mkdir solana-agent cd solana-agent pnpm init

現在安裝依賴套件。每個套件都有特定用途:

bash
Copied
pnpm add solana-agent-kit @langchain/core @langchain/openai @langchain/langgraph dotenv bs58

以下是每個依賴套件的作用:

  • solana-agent-kit:核心工具套件,將 Solana 操作以 LLM 相容工具的形式提供
  • @langchain/core:訊息、提示詞與工具介面的基礎抽象層
  • @langchain/openai:LangChain 的 OpenAI 整合(以 GPT-4 作為我們的推理引擎)
  • @langchain/langgraph:提供 ReAct 代理模式——LLM 思考該使用哪個工具、使用它、觀察結果,再決定下一步該做什麼的循環
  • dotenv:從 .env 檔案載入環境變數
  • bs58:用於 Solana 私鑰的 Base58 編碼/解碼

環境設定

在專案根目錄建立一個 .env 檔案。這能讓敏感憑證不出現在程式碼中:

bash
Copied
OPENAI_API_KEY=your_openai_api_key RPC_URL=https://api.devnet.solana.com SOLANA_PRIVATE_KEY=[your,private,key,as,byte,array]

關於私鑰格式的說明:Solana 密鑰對是 64 位元組的陣列。.env 檔案將其儲存為像 \[123,45,67,...\] 這樣的 JSON 陣列。如果你需要 為測試產生一組新的密鑰對,使用:

bash
Copied
solana-keygen grind --starts-with ai:1

這會建立一個以「ai」開頭的虛榮地址(有助於識別你 代理的錢包)。輸出內容包含可貼到你的 .env 中的位元組陣列形式的密鑰對。

重要提醒:開發時絕不要使用帶有真實資金的密鑰對。務必先在 devnet 上測試。

理解我們的代理架構

在寫程式碼之前,先了解我們要建構的東西。我們的代理有三個主要組成部分:

  1. LLM(GPT-5.2):理解自然語言、思考該採取什麼動作、並產生回應的「大腦」
  2. 工具(Solana Agent Kit):LLM 可以呼叫的函式——檢查餘額、兌換代幣、鑄造 NFT 等
  3. 代理循環(LangGraph ReAct):LangchainReAct 是使用 LangGraph 框架實作的推理與行動(ReAct)代理架構。這個編排模式連接 LLM 與工具。當你傳送一則訊息,代理接收你的輸入 → 判斷是否需要工具 → 呼叫工具 → 觀察結果 → 判斷是否需要更多工具 → 產生回應

這就是 ReAct(推理 + 行動)模式。LLM 不只是回應,它會思考要採取哪些行動、執行這些行動,並將結果納入其回應中。

代理腳本

現在讓我們建構 agent.ts。我們會逐個段落進行。

匯入與設定

typescript
Copied
import { SolanaAgentKit, createSolanaTools } from "solana-agent-kit"; import { HumanMessage } from "@langchain/core/messages"; import { ChatOpenAI } from "@langchain/openai"; import { createReactAgent } from "@langchain/langgraph/prebuilt"; import { MemorySaver } from "@langchain/langgraph"; import * as dotenv from "dotenv"; import bs58 from "bs58"; import * as readline from "readline"; dotenv.config();

這些匯入分為三類:用於區塊鏈操作的 Solana Agent Kit、用於 AI 編排的 LangChain,以及用於環境變數與使用者輸入的 Node 工具。

初始化代理

initializeAgent 函式設定所有組件:

typescript
Copied
async function initializeAgent() { // Step 1: Initialize the LLM const llm = new ChatOpenAI({ modelName: "gpt-4-turbo-preview", temperature: 0.7 });

我們使用 GPT-5.2 作為推理引擎。0.7 的 temperature 在創意性 與一致性之間取得平衡,較低的值讓回應更具確定性, 較高的值則更多變化。對於需要在金融交易上做出可靠決策的代理, 你可能會將其調低到 0.3。

typescript
Copied
// Step 2: Set up the Solana wallet const privateKeyArray = JSON.parse(process.env.SOLANA_PRIVATE_KEY!); const privateKeyUint8 = new Uint8Array(privateKeyArray); const privateKeyBase58 = bs58.encode(privateKeyUint8);

這段程式碼將私鑰從我們 .env 中的 JSON 陣列格式 轉換為 Solana Agent Kit 所需的 base58 字串。轉換路徑為:JSON 字串 → JavaScript 陣列 → Uint8Array → base58 字串。

typescript
Copied
// Step 3: Initialize Solana Agent Kit const solanaKit = new SolanaAgentKit( privateKeyBase58, process.env.RPC_URL!, { OPENAI_API_KEY: process.env.OPENAI_API_KEY! } );

SolanaAgentKit 實例將你的錢包連接到 Solana 網路。它 接受三個參數:私鑰(用於簽署交易)、RPC URL (用於網路通訊),以及設定選項(包括用於任何內部 AI 操作的 OpenAI 金鑰)。

typescript
Copied
// Step 4: Create tools from the kit const tools = createSolanaTools(solanaKit);

神奇之處就在這裡。createSolanaTools 將 Solana Agent Kit 的能力轉換成與 LangChain 相容的工具。每個工具都有名稱、 描述,以及一個輸入結構描述,供 LLM 用來理解它能做什麼以及 如何呼叫它。在底層,你會得到像 get\_balance、 transfer、swap、deploy\_token、mint\_nft 等數十個工具。

typescript
Copied
// Step 5: Set up memory for conversation context const memory = new MemorySaver();

記憶功能讓代理能夠在多輪對話中維持上下文。沒有它, 每則訊息都會被獨立處理,代理不會記得你 剛剛問過餘額,然後你接著說「把其中一半拿去兌換」。

typescript
Copied
// Step 6: Create the ReAct agent return createReactAgent({ llm, tools, checkpointSaver: memory }); }

最後,我們將一切組裝成一個 ReAct 代理。這建立起推理 循環:LLM 接收輸入、決定要使用哪個工具(如果需要的話)、執行它、 觀察結果,然後要麼採取另一個動作,要麼回應使用者。

互動式聊天循環

第二個函式建立一個終端機介面,用來與你的代理聊天:

typescript
Copied
async function runInteractiveChat() { const agent = await initializeAgent(); const config = { configurable: { thread_id: "solana-agent-session" } };

thread\_id 為記憶目的識別這次對話。如果你 用相同的執行緒 ID 重新啟動腳本,代理理論上 會記得先前的上下文。不同的執行緒 ID 代表不同的對話 上下文。

typescript
Copied
const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); console.log("Solana AI Agent Ready (type 'exit' to quit)"); console.log("--------------------------------------------");

標準的 Node.js readline 設定,用於終端機輸入/輸出,建立一個 readline 介面,捕捉你從終端機輸入的鍵盤內容(stdin),並將代理的回應寫回你的畫面上(stdout)。這是在不引入額外依賴套件的情況下,建構互動式命令列聊天最簡單的方法。

typescript
Copied
const askQuestion = () => { rl.question("You: ", async (input) => { if (input.toLowerCase() === "exit") { rl.close(); return; } const stream = await agent.stream( { messages: [new HumanMessage(input)] }, config );

當你輸入一則訊息,它會被包裝成一個 HumanMessage 並傳送給代理。我們使用 stream 而非 invoke,以便在代理思考與行動的過程中獲得即時輸出。

typescript
Copied
process.stdout.write("Agent: "); for await (const chunk of stream) { if ("agent" in chunk) { process.stdout.write(chunk.agent.messages[0].content); } else if ("tools" in chunk) { process.stdout.write(chunk.tools.messages[0].content); } } console.log("\n--------------------------------------------"); askQuestion(); }); }; askQuestion(); } runInteractiveChat().catch(console.error);

串流循環處理兩種類型的區塊:agent區塊(LLM 的推理與回應)以及 tools 區塊(工具執行的結果)。這讓你能即時看到正在發生的事情——代理在思考、呼叫工具,並形成它的回應。

完整腳本

以下是完整的 agent.ts,供參考:

typescript
Copied
import { SolanaAgentKit, createSolanaTools } from "solana-agent-kit"; import { HumanMessage } from "@langchain/core/messages"; import { ChatOpenAI } from "@langchain/openai"; import { createReactAgent } from "@langchain/langgraph/prebuilt"; import { MemorySaver } from "@langchain/langgraph"; import * as dotenv from "dotenv"; import bs58 from "bs58"; import * as readline from "readline"; dotenv.config(); async function initializeAgent() { const llm = new ChatOpenAI({ modelName: "gpt-5.2, temperature: 0.7 }); const privateKeyArray = JSON.parse(process.env.SOLANA_PRIVATE_KEY!); const privateKeyUint8 = new Uint8Array(privateKeyArray); const privateKeyBase58 = bs58.encode(privateKeyUint8); const solanaKit = new SolanaAgentKit( privateKeyBase58, process.env.RPC_URL!, { OPENAI_API_KEY: process.env.OPENAI_API_KEY! } ); const tools = createSolanaTools(solanaKit); const memory = new MemorySaver(); return createReactAgent({ llm, tools, checkpointSaver: memory }); } async function runInteractiveChat() { const agent = await initializeAgent(); const config = { configurable: { thread_id: "solana-agent-session" } }; const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); console.log("Solana AI Agent Ready (type 'exit' to quit)"); console.log("--------------------------------------------"); const askQuestion = () => { rl.question("You: ", async (input) => { if (input.toLowerCase() === "exit") { rl.close(); return; } const stream = await agent.stream( { messages: [new HumanMessage(input)] }, config ); process.stdout.write("Agent: "); for await (const chunk of stream) { if ("agent" in chunk) { process.stdout.write(chunk.agent.messages[0].content); } else if ("tools" in chunk) { process.stdout.write(chunk.tools.messages[0].content); } } console.log("\n--------------------------------------------"); askQuestion(); }); }; askQuestion(); } runInteractiveChat().catch(console.error);

執行代理

用 tsx(TypeScript 執行環境)執行:

bash
Copied
npx tsx agent.ts

你應該會看到就緒訊息。現在試試一些指令:

text
Copied
You: What's my wallet address and SOL balance? Agent: Your wallet address is Ai7f...x3K2. Current balance is 1.5 SOL. You: Swap 0.1 SOL for USDC Agent: I'll execute a swap of 0.1 SOL for USDC using Jupiter... Transaction confirmed: https://solscan.io/tx/... You: Create an NFT collection called "AI Agents" with symbol "AIA" Agent: Creating NFT collection with Metaplex... Collection created: https://solscan.io/token/...

底層發生的事情是:當你詢問餘額時,LLM 辨識出這需要 get\_balance 工具,用正確的參數呼叫它、接收結果,並將其納入 自然語言回應中。對於兌換,它會辨識出 swap 工具, 解析你的意圖(0.1 SOL → USDC)、執行 Jupiter 兌換,並確認交易。

你已經建構完成的內容

你現在擁有一個可運作的 Solana AI 代理,具備:

  • 透過 GPT-5.2 實現的自然語言理解
  • 超過 60 個以工具形式提供的 Solana 操作
  • 用於多輪互動的對話記憶
  • 即時串流回應

這是一個開發基礎。生產環境部署需要額外考量, 例如錢包安全性、交易可靠性、速率限制,我們將在後續章節中討論。

整合 Jupiter 進行 DeFi 操作

Jupiter 是 Solana 的主導 DEX 聚合器,路由超過 90% 的聚合器交易量。當你的代理需要兌換代幣時,Jupiter 會在數十個 DEX——Raydium、Orca、Phoenix 等——之間尋找最佳路由,以獲得最優定價。

Solana Agent Kit 內建了 Jupiter 整合。當你要求代理「用 1 SOL 兌換 USDC」時,它底層已經在使用 Jupiter。但有時你需要更多控制權:自訂滑點容忍度、特定的路由偏好,或與你自己的交易流程直接整合。

Jupiter 如何運作

Jupiter 的 API 遵循先報價、後兌換的模式:

  1. 報價:你傳送輸入代幣、輸出代幣與數量。Jupiter 查詢所有可用的 DEX,並回傳帶有預期輸出數量的最佳路由。
  2. 兌換:你將報價連同你的錢包地址傳回去。Jupiter 建構一筆執行最優路由的交易。
  3. 簽署與提交:你簽署交易並將其提交到網路。

這個兩步驟流程讓你能在使用者確定交易之前,先向他們展示將會收到的內容。

直接整合 Jupiter

以下是一個完整的兌換函式,附逐步說明:

typescript
Copied
import { Connection, Keypair, VersionedTransaction } from "@solana/web3.js"; import { createJupiterApiClient } from "@jup-ag/api"; // Token mint addresses (mainnet) const USDC_MINT = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"; const SOL_MINT = "So11111111111111111111111111111111111111112";

我們從標準的 Solana web3.js 匯入和 Jupiter API 客戶端開始。鑄造地址是 Solana 上代幣的唯一識別碼。SOL 使用一個特殊的「wrapped」地址以相容於 DEX。

typescript
Copied
async function executeSwap( connection: Connection, wallet: Keypair, inputMint: string, outputMint: string, amount: number // in smallest units (lamports for SOL, 6 decimals for USDC) ) { const jupiter = createJupiterApiClient();

Jupiter 客戶端連接到他們託管的 API。基本使用無需 API 金鑰,但有速率限制。

typescript
Copied
// Step 1: Get a quote const quote = await jupiter.quoteGet({ inputMint, outputMint, amount, slippageBps: 50 // 0.5% slippage tolerance });

報價請求指定你要交易的內容。slippageBps 是以基點表示的滑點 容忍度,50 代表 0.5%。如果在報價與執行之間,價格變動超過這個 幅度,交易將會失敗,而不是給你一個較差的價格。

報價回應包含預期的輸出數量、將使用的路由(哪些 DEX),以及價格影響。對於生產環境的代理,你會想在繼續之前檢查這些數值。

typescript
Copied
// Step 2: Get the swap transaction const { swapTransaction } = await jupiter.swapPost({ swapRequest: { quoteResponse: quote, userPublicKey: wallet.publicKey.toString(), wrapAndUnwrapSol: true // Automatically handle SOL wrapping } });

兌換請求接受你的報價和錢包地址,並回傳一筆序列化的 交易。wrapAndUnwrapSol: true 處理了一個 Solana 的特殊之處:DEX 使用 「wrapped SOL」(一種 SPL 代幣)運作,但使用者持有原生 SOL。這個旗標會自動 加入在兌換前後進行包裝與解包裝的指令。

typescript
Copied
// Step 3: Deserialize and sign const transaction = VersionedTransaction.deserialize( Buffer.from(swapTransaction, "base64") ); transaction.sign([wallet]);

Jupiter 以 base64 編碼字串回傳交易。我們將其反序列化 成一個正式的交易物件,並用我們的密鑰對簽署它。請注意,我們 使用的是 VersionedTransaction,——Jupiter 使用 Solana 較新的交易格式, 支援地址查詢表以處理更複雜的路由。

typescript
Copied
// Step 4: Submit and confirm const signature = await connection.sendTransaction(transaction); await connection.confirmTransaction(signature); return signature; }

最後,我們將已簽署的交易提交到網路並等待確認。簽章是一個唯一的識別碼,你可以用它在像 Solscan 這樣的瀏覽器上查詢該筆交易。

Jupiter MCP 伺服器

對於支援 Model Context Protocol 的 AI 助理(如 Claude Desktop 或 Cursor),Jupiter 提供了一個 MCP 伺服器。這讓你的 AI 助理能透過標準化介面,直接存取 Jupiter 的功能。

在你的 MCP 設定中進行配置:

json
Copied
{ "mcpServers": { "jupiter": { "command": "npx", "args": ["jupiter-ultra-mcp"], "env": { "RPC_URL": "your_rpc_url", "PRIVATE_KEY": "your_private_key" } } } }

設定完成後,Claude 可以直接透過自然語言執行 Jupiter 兌換:「把 0.5 SOL 換成 USDC」會變成一筆實際的鏈上交易。這 對於快速原型開發特別有用:你可以透過對話建構並測試 DeFi 工作流程,然後再投入撰寫程式碼。

錢包安全架構

擁有簽署權限的 AI 代理是一個高價值目標。一個被入侵的代理可以瞬間掏空其錢包。安全架構必須在自主性與保護之間取得平衡。

雙金鑰架構

正在興起的安全代理錢包標準,是搭配智慧合約錢包的雙金鑰架構:

智慧合約錢包: 一個單一錢包(在 EVM 上使用 ERC-4337 模式,或在 Solana 上使用 Squads 協議),可以擁有多個獲授權的簽署者。

擁有者金鑰: 由使用者持有,提供最終控制權。有了它,你可以新增/移除代理金鑰、提領資金,並覆寫代理的行動。

代理金鑰: 部署在可信執行環境(TEE)中,註冊到智慧錢包並具有有限權限。使用這個金鑰,代理只能執行獲授權的操作。

Crossmint 的實作讓這一切變得簡單明瞭。你建立一個綁定使用者身分的託管錢包,代理則在你定義的權限範圍內運作:

typescript
Copied
import { crossmint } from "@goat-sdk/crossmint"; import { Connection } from "@solana/web3.js"; const { custodial } = crossmint(apiKey); const wallet = await custodial({ chain: "solana", email: userEmail, connection: new Connection(rpcUrl, "confirmed") }); // Agent receives limited permissions through the smart wallet // Owner retains full control

TEE 保護

可信執行環境為代理金鑰提供硬體層級的隔離。像 Phala Network 和 Turnkey 這樣的平台,提供專為 AI 代理設計的 TEE 基礎設施。

Turnkey 提供政策控制的錢包存取。代理不會直接接觸私鑰,而是獲得範圍受限的 API 憑證,只能執行獲授權的操作。你定義限制交易類型、金額和頻率的政策——然後代理在這些護欄內運作:

typescript
Copied
`import { Turnkey } from "@turnkey/sdk-server"; import { TurnkeySigner } from "@turnkey/solana"; const turnkey = new Turnkey({ apiBaseUrl: "https://api.turnkey.com", apiPrivateKey: process.env.TURNKEY_API_PRIVATE_KEY, apiPublicKey: process.env.TURNKEY_API_PUBLIC_KEY, defaultOrganizationId: process.env.TURNKEY_ORGANIZATION_ID }); const signer = new TurnkeySigner({ organizationId: process.env.TURNKEY_ORGANIZATION_ID, client: turnkey.api }); // Policies limit what the agent can do: // - Only token transfers (no other transaction types) // - Maximum transaction size // - Rate limits`

Phala Network 提供去中心化的 TEE 基礎設施。部署到 Phala 的代理運行在隔離的機密運算環境中,即使是主機系統也無法存取私鑰。部署採用容器化方式:

bash
Copied
# Build agent for TEE deployment docker build --platform linux/amd64 -t agent:latest . # Deploy to phala cloud phala deploy agent:latest --api-key $PHALA_API_KEY

安全性最佳實務

以下幾項原則應指引代理安全架構的設計:

  • 最小化金鑰曝露: 私鑰絕不應出現在日誌、錯誤訊息或可存取的記憶體中。使用環境變數和安全的金鑰管理基礎設施。
  • 實作交易限制: 代理應設有最大交易規模、每日花費上限與速率限制。一個被入侵且擁有無限權限的代理,可能造成無限的損害。
  • 使用獨立錢包: 生產環境的代理應使用專用錢包,僅存放操作所需的資金。切勿將代理連接到持有重大資產的錢包。
  • 監控代理活動: 記錄所有代理交易,並針對異常模式實作警示機制。自動化監控能在造成重大損害之前就察覺入侵事件。
  • 先在 devnet 上測試: 務必先在 devnet 上開發與測試代理,再部署到主網。通常只需要改變 RPC URL,就能切換網路。

Model Context Protocol(MCP)整合

Model Context Protocol 標準化了 AI 助理與外部工具互動的方式。對於 Solana 開發而言,MCP 伺服器讓 Claude、Cursor 及其他 AI 工具能直接與區塊鏈互動。

Solana MCP 伺服器

SendAI 的 Solana MCP 伺服器為任何相容 MCP 的 AI 助理提供區塊鏈工具:

bash
Copied
# Install globally npm install -g solana-mcp # Or run directly npx solana-mcp

MCP 伺服器中可用的工具包括:

  • GET\_ASSET:擷取代幣/NFT 資訊
  • GET\_BALANCE:檢查錢包餘額
  • TRANSFER:傳送 SOL 或 SPL 代幣
  • SWAP:執行 Jupiter 兌換
  • DEPLOY\_TOKEN:建立新的 SPL 代幣
  • MINT\_NFT:透過 Metaplex 鑄造 NFT

用 ElizaOS 建構:Twitter 機器人範例

到目前為止,我們已經建構出一個能夠思考、執行 Solana 交易並維持對話上下文的可運作代理,而這一切都在終端機中完成。現在讓我們把這些相同的能力,用 ElizaOS 部署到使用者真正活動的地方:Twitter。

ElizaOS 在社交代理方面表現出色,即能在各平台上維持持久性格的機器人。讓我們來建構一個 Twitter 機器人。

我們要建構的內容

這個機器人將會:

  • 監控 Twitter 上詢問代幣、協議或市場狀況的提及
  • 擷取鏈上資料:代幣價格、交易量、流動性深度、大戶動向
  • 用淺顯易懂的語言分析並總結資料
  • 在所有互動中維持一致的「分析師」性格

ElizaOS 負責處理複雜的編排:監看提及、維持對話上下文、決定何時查詢鏈上資料,並產生符合所定義性格的回應。

理解 ElizaOS 架構

在深入程式碼之前,先了解 ElizaOS 如何建構一個代理:

客戶端(Clients) 將代理連接到各平台,Twitter、Discord、Telegram,或直接的 API 存取。每個客戶端處理特定平台的身分驗證、訊息輪詢與回應格式化。

外掛(Plugins) 提供各種能力。Solana 外掛為你的代理提供讀取鏈上資料、代幣查詢與交易歷史的工具。其他外掛可能加入圖像生成、網路搜尋或自訂動作。

角色檔案(Character files) 透過結構化的 JSON 定義性格與行為。這包括簡介、溝通風格、範例對話與行為參數。

記憶(Memory) 在各次對話之間持續保存。ElizaOS 追蹤代理曾與誰交談、他們問過什麼問題,以及未來互動相關的上下文。

設定

從複製 ElizaOS 儲存庫開始:

bash
Copied
git clone https://github.com/elizaOS/eliza.git cd eliza

ElizaOS 是一個 monorepo,包含核心框架、所有官方外掛,以及 客戶端實作。我們會在這個結構內工作,而不是建立一個 獨立的專案。

安裝依賴套件並建置:

bash
Copied
pnpm install --no-frozen-lockfile pnpm build

--no-frozen-lockfile 旗標允許 pnpm 在需要時更新 lockfile。 建置步驟會編譯 TypeScript 並準備所有套件。

環境設定

在專案根目錄建立一個 .env 檔案。ElizaOS 會從中讀取所有憑證與設定:

bash
Copied
# Twitter credentials TWITTER_USERNAME=your_bot_username TWITTER_PASSWORD=your_password TWITTER_EMAIL=your_email

Twitter 身分驗證使用你機器人帳號的憑證。ElizaOS 會登入並 維持一個 session,用於輪詢提及和發佈回覆。請確保使用一個 專用的機器人帳號——你不會希望你的個人 Twitter 帳號運行自動化 代理。

bash
Copied
# LLM provider OPENAI_API_KEY=your_openai_key

模型供應商驅動代理的推理能力。ElizaOS 支援多個 供應商(OpenAI、Anthropic、本地模型),但 OpenAI 是最 容易上手的起點。

bash
Copied
# Solana configuration SOLANA_RPC_URL=https://solana-mainnet.g.alchemy.com/v2/your-api-key SOLANA_PUBLIC_KEY=your_public_key SOLANA_CLUSTER=mainnet-beta

對於一個分析師機器人,你不需要私鑰——我們是在讀取資料,而不是簽署 交易。使用主網 RPC,因為你需要的是真實市場資料,而不是 devnet 的測試 代幣。像 Alchemy 這樣的專用 RPC 供應商,能給你比公開端點 更高的速率限制和更可靠的資料。

安全性提醒:即使這個機器人只讀取資料,也要保護好你的 API 金鑰。你 RPC 供應商的速率限制與這些憑證綁定在一起。

理解角色檔案

角色檔案是 ElizaOS 代理的核心。它們不僅定義代理能做什麼,還定義它是誰。讓我們逐塊建構一個。

建立 characters/solana-analyst.character.json:

json
Copied
{ "name": "SolanaAnalyst", "clients": ["twitter"], "modelProvider": "openai", "plugins": ["@elizaos/plugin-solana"],

標頭定義了基本資訊:

  • name:代理如何表明自己的身分
  • clients:要連接到哪些平台。在這裡加入 "discord",就能啟用 Discord 整合,不需要額外程式碼。
  • modelProvider:用於推理的 LLM 供應商
  • plugins:要啟用的能力。Solana 外掛提供代幣資料查詢、價格饋送和鏈上分析。
json
Copied
"bio": [ "On-chain analyst tracking Solana markets in real-time.", "I dig through blockchain data so you don't have to. Ask me about any token, protocol, or wallet.", "Turning raw on-chain data into actionable insights." ],

bio 是一組定義代理自我描述的陳述句陣列。 當代理需要自我介紹或回答「你是誰?」這類問題時, ElizaOS 會使用這些內容。多個條目能增加變化——代理可能在 不同情境下引用不同的簡介句子。

json
Copied
"lore": [ "Built to democratize access to on-chain intelligence.", "Processes thousands of transactions to surface what matters.", "No alpha is safe from on-chain analysis." ],

lore 提供代理可以參照的背景脈絡。這不會直接 曝露給使用者,但會影響代理如何理解自己的用途和 歷史。可以把它想成代理的內部背景故事。

json
Copied
"messageExamples": [ [ {"user": "user1", "content": {"text": "What's happening with SOL today?"}}, {"user": "SolanaAnalyst", "content": {"text": "SOL is trading at $142.50, up 3.2% in the last 24h. Volume is elevated at $2.1B—about 40% above the 7-day average. The bid-ask spread on Jupiter is tight at 0.02%, suggesting healthy liquidity. No unusual whale movements in the past hour."}} ], [ {"user": "user1", "content": {"text": "Any big wallets moving JUP?"}}, {"user": "SolanaAnalyst", "content": {"text": "Spotted two notable JUP movements in the last 6 hours: a 2.3M JUP transfer from a known market maker wallet to Binance (possible sell pressure incoming), and 890K JUP moved from the team vesting contract to a new wallet. The Binance deposit is worth watching—historically these precede increased selling within 24-48 hours."}} ], [ {"user": "user1", "content": {"text": "Is Marinade still the top liquid staking protocol?"}}, {"user": "SolanaAnalyst", "content": {"text": "Marinade holds $1.2B in TVL, but Jito has been gaining ground fast—now at $980M, up 15% this month. The gap is closing. Marinade's mSOL still has deeper DEX liquidity, but jitoSOL is seeing better integration with newer DeFi protocols. If you're optimizing for composability, Jito might edge ahead soon."}} ] ],

messageExamples 是教導代理如何回應的少量範例。 每個範例都是一個對話陣列,展示使用者輸入和預期的代理 回應。注意這些範例如何建立語氣:數據導向、具體 數字、可行動的脈絡,沒有多餘廢話。

加入更多範例以涵蓋邊緣情況:如果有人詢問一個不存在的代幣怎麼辦?如果他們想要比較分析怎麼辦?如果他們在詢問一個詐騙代幣怎麼辦?涵蓋的情境越多,代理的行為就越一致。

json
Copied
"style": { "all": ["data-driven", "concise", "insightful", "avoids hype"], "chat": ["direct", "analytical", "provides context for numbers"], "post": ["informative", "highlights unusual activity", "actionable"] } }

style 定義了跨情境的溝通模式:

  • all:適用於每一則回應
  • chat:特定於直接訊息與回覆
  • post:適用於代理建立的原創貼文

這些是描述性關鍵字,用來影響 LLM 的語氣。「avoids hype」(避免炒作)對一個金融分析師來說很重要——你要的是有分寸的分析,而不是「SOL TO THE MOON 🚀」。「provides context for numbers」(為數字提供脈絡)確保代理不會只是吐出價格,而是會解釋這些數字代表什麼。

完整的角色檔案

以下是完整的角色定義:

json
Copied
{ "name": "SolanaAnalyst", "clients": ["twitter"], "modelProvider": "openai", "plugins": ["@elizaos/plugin-solana"], "bio": [ "On-chain analyst tracking Solana markets in real-time.", "I dig through blockchain data so you don't have to. Ask me about any token, protocol, or wallet.", "Turning raw on-chain data into actionable insights." ], "lore": [ "Built to democratize access to on-chain intelligence.", "Processes thousands of transactions to surface what matters.", "No alpha is safe from on-chain analysis." ], "messageExamples": [ [ {"user": "user1", "content": {"text": "What's happening with SOL today?"}}, {"user": "SolanaAnalyst", "content": {"text": "SOL is trading at $142.50, up 3.2% in the last 24h. Volume is elevated at $2.1B—about 40% above the 7-day average. The bid-ask spread on Jupiter is tight at 0.02%, suggesting healthy liquidity. No unusual whale movements in the past hour."}} ], [ {"user": "user1", "content": {"text": "Any big wallets moving JUP?"}}, {"user": "SolanaAnalyst", "content": {"text": "Spotted two notable JUP movements in the last 6 hours: a 2.3M JUP transfer from a known market maker wallet to Binance (possible sell pressure incoming), and 890K JUP moved from the team vesting contract to a new wallet. The Binance deposit is worth watching—historically these precede increased selling within 24-48 hours."}} ], [ {"user": "user1", "content": {"text": "Is Marinade still the top liquid staking protocol?"}}, {"user": "SolanaAnalyst", "content": {"text": "Marinade holds $1.2B in TVL, but Jito has been gaining ground fast—now at $980M, up 15% this month. The gap is closing. Marinade's mSOL still has deeper DEX liquidity, but jitoSOL is seeing better integration with newer DeFi protocols. If you're optimizing for composability, Jito might edge ahead soon."}} ] ], "style": { "all": ["data-driven", "concise", "insightful", "avoids hype"], "chat": ["direct", "analytical", "provides context for numbers"], "post": ["informative", "highlights unusual activity", "actionable"] } }

啟動你的代理

用你的角色檔案啟動代理:

bash
Copied
pnpm start --character="characters/solana-analyst.character.json"

你會看到 ElizaOS 的日誌記錄:

  1. 載入角色定義
  2. 初始化 OpenAI 供應商
  3. 連接到 Twitter
  4. 載入 Solana 外掛
  5. 開始輪詢提及

當有人發推文時會發生什麼

當使用者發推文「@YourBot 今天 BONK 的交易量是多少?」時,流程如下:

  1. Twitter 客戶端透過輪詢偵測到該提及
  2. 訊息處理器解析推文並建立對話上下文
  3. LLM 接收訊息,連同角色定義、簡介和範例
  4. 工具選擇將此辨識為資料查詢,並選擇適當的 Solana 外掛動作
  5. 外掛執行從 RPC 擷取代幣資料,並從 Jupiter 彙整價格
  6. 回應生成產生為原始資料提供脈絡的回覆
  7. Twitter 客戶端將回覆以回覆串的形式發佈

代理會保留這次互動的記憶。如果同一位使用者一小時後問「這跟昨天比起來怎麼樣?」,代理可以參照先前的對話,並提供比較分析。

擴充機器人功能

角色檔案的做法讓迭代速度很快。想要加入 Discord 支援?

json
Copied
"clients": ["twitter", "discord"]

為 Discord 加入環境變數、重新啟動,你的代理現在就能以 相同性格同時在兩個平台上運作。

想要加入主動警示功能?你可以設定代理在偵測到異常活動時發佈貼文:

json
Copied
"settings": { "autoPost": true, "postInterval": 3600, "postTopics": ["whale movements", "unusual volume", "TVL changes"] }

現在代理會獨立監控鏈上活動,並在發現 值得注意的事件時發推——不需要使用者提示。

社交機器人的生產環境考量

Twitter 有速率限制和自動化政策。對於生產環境部署:

  • 速率限制:不要對每個提及都立即回應。加入模擬人類回應時間的延遲。
  • 內容政策:Twitter 的自動化規則要求明確揭露該帳號是機器人。把這放在你的簡介中。
  • 資料準確性:你的機器人提供的是金融資訊。加上免責聲明、引用資料來源,並清楚說明其限制。「非財務建議」不只是法律上的保護措施——這是負責任的做法。
  • 錯誤處理:RPC 呼叫可能失敗、資料可能過期、代幣可能被下架。要優雅地處理這些情況,而不是公開發佈錯誤訊息。
  • 監控:追蹤機器人處理哪些查詢,以及它產生哪些回應。你需要對它說了什麼有可見性,尤其是在市場波動劇烈時。

代理工具:CLI、Skills 與 MCP

框架負責處理編排。Alchemy for agents 涵蓋基礎設施層。

安裝 Alchemy Skills、連接 MCP 伺服器,並驗證 CLI:

bash
Copied
npx skills add alchemyplatform/skills --yes # Claude Code claude mcp add alchemy --transport http https://mcp.alchemy.com/mcp # Codex codex mcp add alchemy --url https://mcp.alchemy.com/mcp npm i -g @alchemy/cli@latest alchemy auth

從終端機查詢:

bash
Copied
alchemy --json --no-interactive solana rpc getSlot -n solana-mainnet alchemy --json --no-interactive prices symbol SOL,ETH alchemy --json --no-interactive agent-prompt

結語

你現在已經建構出你的第一個 Solana AI 代理。如果這篇教學中有一個你應該記住的重點,那就是在 Solana 上建構 AI 代理的基礎設施已經大幅成熟。

這條鏈很快。框架也已經就緒。問題在於你會用它們建構什麼。

準備好開始了嗎?Alchemy 提供驅動 Solana 上領先 AI 代理和框架的 RPC 基礎設施。無論你需要低延遲端點、用於代幣操作的增強型 API,或是支援跨平台代理的多鏈支援,Alchemy 的平台都能給你建構可大規模運作的生產級 AI 代理所需的基礎。

常見問題

建構 Solana AI 代理,你推薦哪些工具?

我們建議根據你的使用情境,選用 Solana Agent Kit、ElizaOS、GOAT toolkit 和 Rig 框架。Solana Agent Kit 提供超過 60 個預先建構的動作,適合快速原型開發;ElizaOS 擅長跨平台的社交代理;GOAT 提供多鏈支援;Rig 則提供效能關鍵型的 Rust 原生開發。

為什麼 Solana 更適合 AI 代理開發?

Solana 的 400 毫秒出塊時間與次秒級最終性,能實現即時反饋循環,讓代理能快速思考、行動並觀察結果。平均交易手續費為 0.00025 美元,使高頻操作具經濟效益,而原生程式組合性則讓代理能在單一原子交易中執行複雜的多步驟操作。

建構 Solana AI 代理最適合用哪些程式語言?

搭配 Solana Agent Kit 或 LangChain 的 TypeScript,非常適合快速開發與廣泛的生態系整合。對於像高頻交易或 MEV 策略這類效能要求嚴苛的應用,搭配 Rig 框架的 Rust,提供從 LLM 決策到鏈上執行延遲最低的路徑。

我應該如何保護我的 AI 代理錢包?

使用搭配智慧合約錢包的雙金鑰架構,其中擁有者金鑰提供最終控制權,而代理金鑰則在具有有限權限的可信執行環境(TEE)中運作。絕不在日誌中曝露私鑰、實作交易限制、使用資金最少的獨立錢包,並務必先在 devnet 上測試。

我可以建構一個在 Twitter 或 Discord 上運作的 AI 代理嗎?

可以,ElizaOS 讓代理能同時在 Twitter、Discord、Telegram 及其他平台上維持持久性格。你透過角色 JSON 檔案定義代理的行為,ElizaOS 則負責處理特定平台的身分驗證、訊息輪詢與回應格式化。

我該如何在代理中整合 Jupiter 進行代幣兌換?

Solana Agent Kit 透過預先建構的兌換動作,內建了 Jupiter 整合。對於自訂實作,使用 Jupiter 的先報價、後兌換 API 模式:用你的交易對請求報價、用你的錢包地址建構兌換交易,然後簽署並提交版本化交易。

Model Context Protocol(MCP)是什麼?它有什麼幫助?

MCP 標準化了 AI 助理與外部工具互動的方式。Solana MCP 伺服器讓 Claude、Cursor 及其他相容 MCP 的 AI 工具,能直接透過自然語言執行區塊鏈操作,包括餘額查詢、代幣轉帳、兌換和 NFT 鑄造。

建構 Solana AI 代理時常見的錯誤有哪些?

AI 生成的程式碼可能會產生循序的帳戶更新,而非平行處理,或忽略 Solana 特有的優化。務必檢查生成的程式碼是否具備計算單元效率、是否遵循像使用程式衍生地址(PDA)這類安全性最佳實務,以及對 RPC 呼叫和交易失敗是否有適當的錯誤處理。

Alchemy 電子報

搶先掌握最新發布消息

訂閱我們的電子報

取得 Alchemy 最新產品更新與資源

A
O
D
+
超過 80,000 名訂閱者

輸入您的電子郵件地址,即表示您同意接收我們的行銷通訊與產品更新。您了解 Alchemy 會依照我們的隱私權聲明處理所收到的資訊。您可以隨時取消訂閱。