๐ Solana Agent Kit¶
- ๐ค Author: [20220162 / ๊น์ฃผํ] (www.linkedin.com/in/joohyeun-kim)
- ๐ Presentation Date: [2025-07-09]
1. Overview¶
- Project Name: ์๋ผ๋ ์์ด์ ํธ ํคํธ Solana Agent Kit
- Category: AI Agent Infrastructure
- Key Technologies / Platforms: Solana, OpenAI, LangChain, Metaplex, Wormhole, CoinGecko API, ZK Compression
- Official Links:
- Website
- Foundation
- Contract Address
- Docs
- GitHub
- X
๐ Summary¶
Solana Agent Kit๋ AI ์์ด์ ํธ๊ฐ ๋ธ๋ก์ฒด์ธ๊ณผ ์์ฐ์ค๋ฝ๊ฒ ์ํธ์์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ ํดํท์ด๋ค. ๊ธฐ์กด์๋ AI๊ฐ ์จ์ฒด์ธ(๋ธ๋ก์ฒด์ธ ์์์ ์ง์ ์ผ์ด๋๋ ๋ชจ๋ ํ๋์ผ๋ก ๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋ก๋๊ณ ๊ฒ์ฆ๋๋ ๋ฐ์ดํฐ๋ ๊ฑฐ๋๋ฅผ ๋ปํจ.) ์์ฐ์ ๋ค๋ฃจ๋ ๋ฐ ์ ์ฝ์ด ๋ง์์ง๋ง, ์ด ํคํธ๋ฅผ ํตํด ํ ํฐ ์ค์, ๋์ถ, NFT ๋ฏผํ (๋์งํธ ์์ฐ์ ๋ธ๋ก์ฒด์ธ์ ๋ฑ๋กํด ์์ ๊ถ์ ์ฆ๋ช ํ ์ ์๊ฒ ๋ง๋๋ ๊ณผ์ ) ๋ฑ 60๊ฐ ์ด์์ Solana ์ก์ ์ ์์ ๋กญ๊ฒ ์ํํ ์ ์๋ค. ์ฃผ์ ํน์ง์ ํ๋ฌ๊ทธ์ธ ๊ธฐ๋ฐ(์์คํ ์ธ๋ถ์์ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ ํ์ฅ) ์ํคํ ์ณ, LangChain(LLM ์กฐํฉ ํ๋ ์์ํฌ) ๋ฐ Vercel AI SDK(ํ๋ก ํธ์๋์ AI ๊ธฐ๋ฅ์ ๋ถ์ด๋ ํดํท) ์ฐ๋, zk ๊ธฐ๋ฐ์ airdrop ์ง์, ์ฑํ/์์จํ ์์ด์ ํธ ๋ชจ๋ ๋ฑ์ ํฌํจํ๋ค.
2. Background & Problem Statement¶
- ํด๊ฒฐํ๋ ค๋ ๋ฌธ์ : AI ์์ด์ ํธ๊ฐ ์จ์ฒด์ธ ํ๊ฒฝ์ ์ ๊ทผํ์ง ๋ชปํด ๋ถ์ฐ ์ํ๊ณ(์ค์ ์๋ฒ๋ ๊ธฐ๊ด ์์ด, ์ฌ๋ฌ ์ฐธ์ฌ์๊ฐ ์๋ก ์ฐ๊ฒฐ๋์ด ์์จ์ ์ผ๋ก ์ด์๋๋ ์์คํ )์์ ์ ์ญํ ์ ํ์ง ๋ชปํ๋ค.
- ๊ธฐ์กด ์ค์ํ ๋ฐฉ์์ ํ๊ณ: API๋ ํ์์ ์ด๊ณ , ์ ๊ทผ์ ์ ์ฝ์ด ์์ผ๋ฉฐ, ๋ํ์ด๋ NFT์ ๊ฐ์ Web3 ํ๋กํ ์ฝ๊ณผ ์ฝ๊ฒ ํตํฉ๋์ง ์๋๋ค.
- AI์์ ๊ด๋ จ์ฑ: ์์จ ์์ด์ ํธ๊ฐ ์ ์ ๋์ด๋๋ ์ถ์ธ์์, ๋ธ๋ก์ฒด์ธ ์ ์์ฐ์ ์ง์ ์กฐ์ํ ์ ์์ด์ผ ์๋ํ์ ํ์ค์ ํ๋ ฅ์ด ๊ฐ๋ฅํด์ง๋ค.
3. How It Works¶
๐ 3.1 Project Approach¶
- ํต์ฌ ์์ด๋์ด: AI๊ฐ Solana๋ฅผ ์ ์ดํ ์ ์๋๋ก ํ์คํ๋ ํ๋ฌ๊ทธ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณต
- ์ฐจ๋ณ์ : ์ง๊ฐ ๊ด๋ฆฌ, RPC(Remote Procedure Call ๋ค๋ฅธ ์ปดํจํฐ์ ์๋ ํจ์๋ฅผ ๋ง์น ๋ด ์ปดํจํฐ์ฒ๋ผ ํธ์ถํ๋ ๊ธฐ์ ) ํธ์ถ, ํ๋กํ ์ฝ ๋ณ ๋ก์ง์ ์ถ์ํํ์ฌ ๊ฐ๋ฐ์ ๋ถ๋ด ์ต์ํ
๐๏ธ 3.2 Architecture¶
- AI ๋ชจ๋ธ (์: GPT-4o, Claude ๋ฑ)
- ๋ค์ํ ํ๋ฌ๊ทธ์ธ(Token, NFT, DeFi, Misc, Blinks ๋ฑ)
- Solana RPC/์ง๊ฐ
- ์จ์ฒด์ธ ํ๋กํ ์ฝ(Jupiter, Raydium, Metaplex)
- ์ฌ์ฉ์ ์ ๋ ฅ โ AI ์์ด์ ํธ โ Solana Agent Kit โ ํ๋ฌ๊ทธ์ธ โ Solana ํ๋กํ ์ฝ
๐ฏ 3.3 Core Components¶
- Token Plugin: SPL(Solana Program Library) ํ ํฐ ์ ์ก, ๋ฐํ, ์ค์
- NFT Plugin: ๋ฏผํ , ํ๋งค, ๋ฉํ๋ฐ์ดํฐ ๊ด๋ฆฌ
- DeFi Plugin: ๋์ถ, ์คํ ์ดํน, ํ์์ํ ์ฐ๋
- Misc Plugin: ๊ฐ๊ฒฉ ์กฐํ, SNS ๋๋ฉ์ธ, ์์ด๋๋ ๋ฑ
- Blinks Plungin: ๋ฏธ๋๊ฒ์, JulSOL ์ฐธ์ฌ ๋ฑ
๐ 3.4 Workflow Overview¶
AI ์์ด์ ํธ ์จ์ฒด์ธ ์์
ํ๋ฆ:
1. ์ฌ์ฉ์ ์
๋ ฅ
- ์์ฐ์ด ๋ช
๋ น: "1 SOL ์คํ
์ดํนํด์ค"
2. AI ๋ช
๋ น ๋ถ์
- ํ๋ ํ์
: ์คํ
์ดํน
- ์์ฐ ์ข
๋ฅ: SOL
- ์๋: 1
- ๋ช
๋ น์ด ์จ์ฒด์ธ ํธ๋์ญ์
์ด๋ผ๋ ์ ์ธ์
3. Solana Agent Kit ํธ์ถ
- AI๊ฐ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ Agent Kit์ผ๋ก ์ ๋ฌ
- ์ ์ ํ ํ๋ฌ๊ทธ์ธ ๊ฒฐ์
4. ์คํ
์ดํน ํ๋ฌ๊ทธ์ธ ์คํ
- ์คํ
์ดํน ํธ๋์ญ์
์์ฑ
- ์ฌ์ฉ์ ์ง๊ฐ๊ณผ RPC ์ฐ๊ฒฐ
- Solana ๋ธ๋ก์ฒด์ธ์ผ๋ก ํธ๋์ญ์
์ ์ก
5. ํธ๋์ญ์
๊ฒฐ๊ณผ ๋ฐํ
- ์ฑ๊ณต ์ฌ๋ถ ํ์ธ
- ํธ๋์ญ์
ํด์ ๋ฐํ
- ์ฌ์ฉ์์๊ฒ ํผ๋๋ฐฑ
6. ์ค๋ฅ ์ฒ๋ฆฌ / ์์จ ์ฌ์๋
- ์คํจ ์:
- ์ฌ์๋
- ๋ค๋ฅธ ํ๋กํ ์ฝ๋ก ์ฐํ
- ์ฌ์ฉ์์๊ฒ ์ํฉ ์๋ด
4. Token Economy¶
- ์์ฒด ํ ํฐ ์์
- ์ฐ๋๋๋ ํ ํฐ: $SEND (SendAI), $USDC, $JUP ๋ฑ๊ณผ ์ํธ์์ฉ ๊ฐ๋ฅ
- ๊ฒฝ์ ์ ์ธ์ผํฐ๋ธ: Agent Kit ์์ฒด์๋ ์์, ์ฐ๋๋ ํ๋กํ ์ฝ์์ ํ ํฐ ๊ฒฝ์ ์๋
5. Project Status & Plan¶
- ํํฉ: ์คํ์์ค๋ก ๋ฆด๋ฆฌ์ฆ๋จ(v2 ๊ธฐ์ค, ์ฌ์ฉ ๊ฐ๋ฅ)
- ์ปค๋ฎค๋ํฐ: GitHub ๊ธฐ์ค Star 1.4k+, Fork 700+
- ํ์/์ฐธ์ฌ: Solana Foundation ์ง์, AI ํด์ปคํค ์๊ฐ
- Solana Agent Kit ๋น๊ณต์ ๋ก๋๋งต
Solana Agent Kit ๋น๊ณต์ ๋ก๋๋งต | ๋จ๊ณ | ์ฃผ์ ๋ด์ฉ | ์ํ | |------|-----------|------| | v2 ๋ฆด๋ฆฌ์ฆ | ํ๋ฌ๊ทธ์ธ ๊ธฐ๋ฐ ๊ตฌ์กฐ, LangChain/Vercel AI SDK ํตํฉ, zk airdrop ์ง์ | ์๋ฃ | | ์์ด์ ํธ ๋ชจ๋ ๊ณ ๋ํ | ์์จํ ์์ด์ ํธ ๋ฐ๋ณต ์คํ, ์ค๋ฅ ๋ณต๊ตฌ, ๋ฉํฐ ์ก์ ์ฒ๋ฆฌ | ์งํ ์ค | | ๋ชจ๋ฐ์ผ/React Native ์ง์ | ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ์์ด์ ํธ ์คํ ๊ฐ๋ฅ | ์ผ๋ถ ๊ตฌํ๋จ | | ์๋ฒ ๋๋ ์ง๊ฐ ํตํฉ | Turnkey, Privy ๋ฑ๊ณผ ์ฐ๋ํ์ฌ ๋ณด์ ๊ฐํ | ์ง์ ์ค | | LangChain ํ๊ฐ ์์คํ (Evals) | ํ๋กฌํํธ ์ฑ๋ฅ ๋ฒค์น๋งํฌ ๋ด์ฅ | ์ ์ฉ๋จ | | MCP Adapter ๊ฐ๋ฐ | Claude Desktop ๋ฑ ์ธ๋ถ AI์์ ์ฐ๋ | ๊ฐ๋ฐ ์ค | | ๋ ๋ง์ ํ๋กํ ์ฝ ํตํฉ | Drift, Meteora, Adrena ๋ฑ ๋ํ์ด/์ ๋ฌผ ํ์ฅ | ์ง์ ์ค | | SendAI ์ํ๊ณ ํตํฉ | SEND ํ ํฐ, JupSOL, Arcade ๋ฑ๊ณผ ์ฐ๊ณ ๊ฐํ | ํ์ฅ ์ค | | ํ ์คํธ๋ท/์๋ฎฌ๋ ์ด์ ํ๊ฒฝ | ๊ฐ๋ฐ์์ฉ ํ ์คํธ ํ๊ฒฝ ์ ๊ณต ์์ | ๊ณํ ๋จ๊ณ |
6. User Experience & Hands-on Review (if applicable)¶
Solana Agent ์์ ์ฝ๋ (Balance Check)¶
import { SolanaAgentKit, createSolanaTools } from "solana-agent-kit";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
import { ChatOpenAI } from "@langchain/openai";
import { MemorySaver } from "@langchain/langgraph";
import * as dotenv from "dotenv";
dotenv.config();
// LLM ์ค์
const llm = new ChatOpenAI({
modelName: process.env.SOLANA_AGENT_OPENAI_MODEL || "gpt-4",
temperature: 0.7,
apiKey: process.env.OPENAI_API_KEY,
});
// SolanaAgentKit ์ธ์คํด์ค ์์ฑ
const agentKit = new SolanaAgentKit(
process.env.SOLANA_PRIVATE_KEY!,
process.env.RPC_URL || "https://api.mainnet-beta.solana.com",
process.env.OPENAI_API_KEY!
);
// Solana ํด์
์์ฑ
const tools = createSolanaTools(agentKit);
// ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์ ์์ฑ
const memory = new MemorySaver();
// Agent ์์ฑ
const agent = await createReactAgent({
llm,
tools,
checkpointSaver: memory,
});
// ์ง๊ฐ ์ฃผ์ ์
๋ ฅ
const walletAddress = "Wallet Address"; // ์: "9LKK..."
async function main() {
const prompt = "๋ด ์๋ผ๋ ์ง๊ฐ ์์ก ์ผ๋ง๋ ๋ผ?";
console.log(`์ฌ์ฉ์ ์
๋ ฅ: ${prompt}`);
const res = await agent.invoke({
input: prompt,
config: {
metadata: {
userId: "test-user-001",
wallets: [{ address: walletAddress, chain: "solana" }],
},
},
});
console.log("Agent ์๋ต:\n", res.output);
}
main();
ํ์ํ ๊ธฐ๋ฅ¶
SolanaAgentKit
์ ํ์ฉํด Solana ์ง๊ฐ๊ณผ ์ฐ๊ฒฐ๋ AI ์์ด์ ํธ ๊ตฌ์ฑ- ์ฌ์ฉ์ ํ๋กฌํํธ๋ก ์ง๊ฐ ์์ก ์กฐํ
- ์ ์ฒด ๊ตฌ์ฑ ํ๋ฆ:
- OpenAI API ๊ธฐ๋ฐ LLM ์ค์
- LangChain Graph ๊ธฐ๋ฐ ์์ด์ ํธ ์์ฑ
- Solana ๋๊ตฌ ์ธํธ ํตํฉ
- ์ฌ์ฉ์ ์ง๊ฐ ์ฃผ์ ๊ธฐ๋ฐ ์์ฒญ ์ฒ๋ฆฌ
๋จ๊ณ๋ณ ๊ตฌํ ๊ณผ์ ¶
- GitHub์์
solana-agent-kit
ํด๋ก .env
ํ์ผ์ ํ๊ฒฝ ๋ณ์ ์ค์ - ์:
SOLANA_PRIVATE_KEY
,RPC_URL
,OPENAI_API_KEY
index.ts
์์ฑ ๋ฐ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ๊ตฌ์ฑ- ์ธ๋ถ ํจํค์ง ์๋ ์ค์น
solana-agent-kit
,@langchain/openai
,@langchain/langgraph
,bs58
๋ฑ- TypeScript ๋ชจ๋ ๊ฒฝ๋ก ๋ฌธ์ ํด๊ฒฐ
tsconfig.json
์paths
์ค์ ์ถ๊ฐ- VS Code TS ์๋ฒ ์ฌ์์
- ๊ตฌ์ API โ ์ ๋ฒ์ API ๋ง์ด๊ทธ๋ ์ด์
createAgent
โcreateReactAgent
Solana
โSolanaAgentKit
,createOpenAITools
- ์ต์ข ์คํ: ์ง๊ฐ ์ฃผ์ ๊ธฐ๋ฐ์ผ๋ก ์์ก ์ง์ ๋ฐ ์๋ต ํ์ธ
์จ๋ณด๋ฉ ๊ฒฝํ¶
- ๋์ด๋: ์ค๊ฐ~์ด๋ ค์
- ์ด์ :
- ๊ตฌ๋ฒ์ (v1)๊ณผ ์ ๋ฒ์ (v2) API๊ฐ ๋ฌธ์์ ํผ์ฉ๋์ด ์์ด ํผ๋
- ์๋ฌ ๋ฉ์์ง์ ๋ฌธ์ ์ฌ์ด์ ๊ดด๋ฆฌ๊ฐ ์์
๊ธฐ์กด ์๋น์ค์์ ์ฐจ๋ณ์ ¶
- ์์ฐ์ด๋ก ๋ธ๋ก์ฒด์ธ ๋ฐ์ดํฐ(์ง๊ฐ ์์ก ๋ฑ)์ ์ ๊ทผ ๊ฐ๋ฅํ ์๋ก์ด ์ฌ์ฉ์ ๊ฒฝํ
- ์ ํต์ ์ธ non-blockchain API ์๋น์ค์ ๋นํด:
- ๋ ๋ง์ ์ค์ ํ์
- ๋ถ์ฐ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ํธ์์ฉ
์ ๋ ์ & ๋ถ์กฑํ ์ ¶
์ ๋ ์ โ | ๋ถ์กฑํ ์ โ |
---|---|
์์ฐ์ด ๊ธฐ๋ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค | ๋ณต์กํ ์ด๊ธฐ ํ๊ฒฝ ์ค์ |
์ง๊ฐ ์ฐ๊ฒฐ ๋ฐ ์ค์๊ฐ ์๋ต ์ฒ๋ฆฌ | API ๋ฒ์ ํผ์ฉ์ผ๋ก ์ธํ ๋๋ฒ๊น ๋น์ฉ |
Langchain๊ณผ Solana๋ฅผ ๋งค๋๋ฝ๊ฒ ์ฐ๊ฒฐ | ๋ฌธ์ํ ๋ถ์กฑ์ผ๋ก ์ธํ ํ์ต ๊ณก์ |
7. Why Blockchain¶
- ํ์์ฑ: AI๊ฐ ํ ๊ฒฐ์ ์ ํฌ๋ช ํ๊ฒ ๊ธฐ๋กํ๊ณ , ๋์ค์ ๋๊ตฌ๋ ๊ฒ์ฆํ ์ ์๋ค.
- ์ ํต ๊ธฐ์ ๋ก๋ ๋ถ๊ฐ๋ฅํ ์ : ์ค๋งํธ ์ปจํธ๋ํธ ๊ธฐ๋ฐ ์คํ, ๊ฑฐ๋ฒ๋์ค ๋ฐ ๊ฒฝ์ ์ ๋๊ธฐ ๋ถ์ฌ, ๋ฌดํ๊ฐ ํ์ค์ ๋คํธ์ํฌ ์ ๊ทผ
8. Insights & Limitations¶
โ Key Takeaways¶
- ํ๋ฌ๊ทธ์ธ ๊ตฌ์กฐ๋ก AI ๊ฐ๋ฐ์๋ค์ด ์ฝ๊ฒ ํ์ฅ ๊ฐ๋ฅ
- ๋ค์ํ Solana ํ๋กํ ์ฝ์ ํฌ๊ด
โ Limitations / Open Questions¶
- ์์ฒด ์ธ์ผํฐ๋ธ ํ ํฐ ๋ถ์ฌ
- ๊ณ ๊ธ ๊ธฐ๋ฅ์ ๋ํ ๋ฌธ์ ๋ถ์กฑ
9. Reflections & Discussion¶
๐ก Personal Reflections¶
- LangChain๊ณผ Solana ์ฐ๊ณ๊ฐ ์๊ฐ๋ณด๋ค ๋งค๋๋ฌ์ ๋๋๋ค.
- ์์ผ๋ก Web3์์ ์์จ ์์ด์ ํธ ์ธํฐํ์ด์ค๊ฐ ์ผ๋ง๋ ์ค์ํ์ง ์ฒด๊ฐํ ์ ์์๋ค.
โ Discussion Questions¶
- AI๊ฐ ์ง๊ฐ์ ์์จ์ ์ผ๋ก ์ด์ํด๋ ๋ ๊น?
- AI์ ์ค์๋ ์ฌ๊ณ ์ ๋ํ ์ฑ ์์ ๋๊ฐ ์ง๊น?
10. Insight from others¶
After each presentation in class, we will form small groups for each case for discussion. At that time, please discuss with your group the questions posed in Section 9, and write any key points or insights from your discussion group here.