forked from sendaifun/solana-agent-kit
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3cdd45d
commit a537716
Showing
7 changed files
with
122 additions
and
6 deletions.
There are no files selected for viewing
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
# Agent Kit LangGraph Example | ||
|
||
This example demonstrates how to build an advanced Solana agent using LangGraph and the Solana Agent Kit. It showcases a multi-agent system that can handle various Solana-related tasks through a directed workflow. | ||
|
||
## Features | ||
|
||
- Multi-agent architecture using LangGraph's StateGraph | ||
- Specialized agents for different tasks: | ||
- General purpose agent for basic queries | ||
- Transfer/Swap agent for transaction operations | ||
- Read agent for blockchain data queries | ||
- Manager agent for routing and orchestration | ||
- Environment-based configuration | ||
- TypeScript implementation with full type safety | ||
|
||
## Prerequisites | ||
|
||
- Node.js (v16 or higher) | ||
- pnpm package manager | ||
- Solana development environment | ||
|
||
## Installation | ||
|
||
1. Clone the repository and navigate to the example directory: | ||
```bash | ||
cd examples/agent-kit-langgraph | ||
``` | ||
|
||
2. Install dependencies: | ||
```bash | ||
pnpm install | ||
``` | ||
|
||
3. Configure environment variables: | ||
```bash | ||
cp .env.example .env | ||
``` | ||
|
||
Edit the `.env` file with your configuration: | ||
- Add your OpenAI API key | ||
- Configure any other required environment variables | ||
|
||
## Project Structure | ||
|
||
``` | ||
src/ | ||
├── agents/ # Individual agent implementations | ||
├── helper/ # Helper utilities and examples | ||
├── prompts/ # Agent prompts and templates | ||
├── tools/ # Custom tools for agents | ||
└── utils/ # Utility functions and configurations | ||
``` | ||
|
||
## Usage | ||
|
||
To run the example: | ||
|
||
```bash | ||
pnpm dev src/index.ts | ||
``` | ||
|
||
The example demonstrates a workflow where: | ||
1. The manager agent receives the initial query | ||
2. Based on the query type, it routes to the appropriate specialized agent: | ||
- General queries → Generalist Agent | ||
- Transfer/Swap operations → TransferSwap Agent | ||
- Blockchain data queries → Read Agent | ||
|
||
## Dependencies | ||
|
||
- `@langchain/community`: LangChain community tools and utilities | ||
- `@langchain/core`: Core LangChain functionality | ||
- `@langchain/langgraph`: Graph-based agent workflows | ||
- `solana-agent-kit`: Solana Agent Kit for blockchain interactions | ||
- `zod`: Runtime type checking | ||
|
||
## Contributing | ||
|
||
Contributions are welcome! Please feel free to submit a Pull Request. | ||
|
||
## License | ||
|
||
ISC License |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,9 @@ | ||
{ | ||
"node_version": "20", | ||
"dockerfile_lines": [], | ||
"dependencies": ["."], | ||
"graphs": { | ||
"solana-agent": "./index.ts:graph" | ||
"solanaAgent": "./src/index.ts:graph" | ||
}, | ||
"env": ".env", | ||
"node_version": "20" | ||
} | ||
"env": ".env" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import { createReactAgent } from "@langchain/langgraph/prebuilt"; | ||
import { gpt4o } from "../utils/model"; | ||
import { solanaAgentState } from "../utils/state"; | ||
import { HumanMessage } from "@langchain/core/messages"; | ||
import { agentKit } from "../utils/solanaAgent"; | ||
import { | ||
SolanaBalanceTool, | ||
SolanaFetchPriceTool, | ||
} from "solana-agent-kit/dist/langchain"; | ||
|
||
const readAgent = createReactAgent({ | ||
llm: gpt4o, | ||
tools: [new SolanaBalanceTool(agentKit), new SolanaFetchPriceTool(agentKit)], | ||
}); | ||
|
||
export const readNode = async (state: typeof solanaAgentState.State) => { | ||
const { messages } = state; | ||
|
||
const result = await readAgent.invoke({ messages }); | ||
|
||
return { messages: [...result.messages] }; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters