Skip to content

Commit e81b9fa

Browse files
update
1 parent 5cf4772 commit e81b9fa

File tree

3 files changed

+7
-425
lines changed

3 files changed

+7
-425
lines changed

README.md

Lines changed: 5 additions & 205 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Build your AI agents in three lines of code!
4444
* Simple agent definition using JSON
4545
* Fast AI responses
4646
* Multi-vendor support including OpenAI, Grok, and Gemini AI services
47-
* Solana Integration with transfers and swaps
47+
* Solana Integration
4848
* MCP tool usage with first-class support for [Zapier](https://zapier.com/mcp)
4949
* Integrated observability and tracing via [Pydantic Logfire](https://pydantic.dev/logfire)
5050
* Designed for a multi-agent swarm
@@ -620,212 +620,12 @@ Tools empower agents to interact with external systems, fetch data, or perform a
620620

621621
Tools can be used from plugins like Solana Agent Kit (sakit) or via inline tools. Tools available via plugins integrate automatically with Solana Agent.
622622

623-
### Solana Transfer
624-
625-
This plugin enables Solana Agent to transfer SOL and SPL tokens from the agent's wallet to the destination wallet.
626-
627-
Don't use tickers - but mint addresses in your user queries.
628-
629-
`pip install sakit`
630-
631-
```python
632-
config = {
633-
"tools": {
634-
"solana_transfer": {
635-
"rpc_url": "my-rpc-url", # Required - your RPC URL - Helius is recommended
636-
"private_key": "my-private-key", # Required - base58 string - please use env vars to store the key as it is very confidential
637-
},
638-
},
639-
"agents": [
640-
{
641-
"name": "solana_expert",
642-
"instructions": "You are a Solana expert that can transfer tokens.",
643-
"specialization": "Solana Blockchain",
644-
"tools": ["solana_transfer"], # Enable the tool for this agent
645-
}
646-
],
647-
}
648-
649-
solana_agent = SolanaAgent(config=config)
650-
651-
async for response in solana_agent.process("user123", "Transfer 0.01 Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB to DzvqBkUHUhuhHtNKGWSCVEAm2rHdm9bxxdQYC6mZBZyF"):
652-
print(response, end="")
653-
```
654-
655-
### Solana Swap
656-
657-
This plugin enables Solana Agent to trade (swap) tokens using Jupiter.
658-
659-
Don't use tickers - but mint addresses in your user queries.
660-
661-
`pip install sakit`
662-
663-
```python
664-
config = {
665-
"tools": {
666-
"solana_swap": {
667-
"rpc_url": "my-rpc-url", # Required - your RPC URL - Helius is recommended
668-
"private_key": "my-private-key", # Required - base58 string - please use env vars to store the key as it is very confidential
669-
"jupiter_url": "my-custom-url" # Optional - if you are using a custom Jupiter service like Metis from QuickNode
670-
},
671-
},
672-
"agents": [
673-
{
674-
"name": "solana_expert",
675-
"instructions": "You are a Solana expert that can swap tokens.",
676-
"specialization": "Solana Blockchain",
677-
"tools": ["solana_swap"], # Enable the tool for this agent
678-
}
679-
],
680-
}
681-
682-
solana_agent = SolanaAgent(config=config)
683-
684-
async for response in solana_agent.process("user123", "Swap 0.01 Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB to So11111111111111111111111111111111111111112"):
685-
print(response, end="")
686-
```
687-
688-
### Internet Search
689-
690-
`pip install sakit`
691-
692-
```python
693-
from solana_agent import SolanaAgent
694-
695-
config = {
696-
"openai": {
697-
"api_key": "your-openai-api-key",
698-
},
699-
"tools": {
700-
"search_internet": {
701-
"api_key": "your-openai-api-key",
702-
},
703-
},
704-
"agents": [
705-
{
706-
"name": "news_specialist",
707-
"instructions": "You are an expert news agent. You use your search_internet tool to get the latest information.",
708-
"specialization": "News researcher and specialist",
709-
"tools": ["search_internet"], # Enable the tool for this agent
710-
}
711-
],
712-
}
713-
714-
solana_agent = SolanaAgent(config=config)
715-
716-
async for response in solana_agent.process("user123", "What is the latest news on Elon Musk?"):
717-
print(response, end="")
718-
```
719-
720-
### MCP
623+
### Solana Agent Kit
721624

722-
[Zapier](https://zapier.com/mcp) MCP has been tested, works, and is supported.
723-
724-
Zapier integrates over 7,000+ apps with 30,000+ actions that your Solana Agent can utilize.
725-
726-
Other MCP servers may work but are not supported.
727-
728-
`pip install sakit`
729-
730-
```python
731-
from solana_agent import SolanaAgent
732-
733-
config = {
734-
"tools": {
735-
"mcp": {
736-
"url": "my-zapier-mcp-url",
737-
}
738-
},
739-
"agents": [
740-
{
741-
"name": "zapier_expert",
742-
"instructions": "You are an expert in using Zapier integrations using MCP. You always use the mcp tool to perform Zapier AI like actions.",
743-
"specialization": "Zapier service integration expert",
744-
"tools": ["mcp"], # Enable the tool for this agent
745-
}
746-
]
747-
}
748-
749-
solana_agent = SolanaAgent(config=config)
750-
751-
async for response in solana_agent.process("user123", "Send an email to bob@bob.com to clean his room!"):
752-
print(response, end="")
753-
```
754-
755-
### Image Generation
756-
757-
Generate images using OpenAI, Grok, or Gemini image models and upload them to S3-compatible storage.
758-
759-
`pip install sakit`
760-
761-
```python
762-
from solana_agent import SolanaAgent
763-
764-
config = {
765-
"tools": {
766-
"image_gen": {
767-
"provider": "openai", # Required: either "openai", "grok", or "gemini"
768-
"api_key": "your-api-key", # Required: your OpenAI or Grok or Gemini API key
769-
"s3_endpoint_url": "https://your-s3-endpoint.com", # Required: e.g., https://nyc3.digitaloceanspaces.com
770-
"s3_access_key_id": "YOUR_S3_ACCESS_KEY", # Required: Your S3 access key ID
771-
"s3_secret_access_key": "YOUR_S3_SECRET_KEY", # Required: Your S3 secret access key
772-
"s3_bucket_name": "your-bucket-name", # Required: The name of your S3 bucket
773-
"s3_region_name": "your-region", # Optional: e.g., "nyc3", needed by some providers
774-
"s3_public_url_base": "https://your-cdn-or-bucket-url.com/", # Optional: Custom base URL for public links (include trailing slash). If omitted, a standard URL is constructed.
775-
}
776-
},
777-
"agents": [
778-
{
779-
"name": "image_creator",
780-
"instructions": "You are a creative assistant that generates images based on user descriptions. Use the image_gen tool to create and store the image.",
781-
"specialization": "Image generation and storage",
782-
"tools": ["image_gen"], # Enable the tool for this agent
783-
}
784-
]
785-
}
786-
787-
solana_agent = SolanaAgent(config=config)
788-
789-
async for response in solana_agent.process("user123", "Generate an image of a smiling unicorn!"):
790-
print(response, end="")
791-
```
792-
793-
### Nemo Agent
794-
795-
This plugin allows the agent to generate python programs using [Nemo Agent](https://nemo-agent.com) and uploads the files in a ZIP file to s3-compatible storage. It returns the public URL of the zip file.
796-
797-
This has been tested using [Cloudflare R2](https://developers.cloudflare.com/r2/).
798-
799-
```python
800-
from solana_agent import SolanaAgent
801-
802-
config = {
803-
"tools": {
804-
"nemo_agent": {
805-
"provider": "openai", # Required: either "openai" or "gemini"
806-
"api_key": "your-api-key", # Required: your OpenAI or Gemini API key
807-
"s3_endpoint_url": "https://your-s3-endpoint.com", # Required: e.g., https://nyc3.digitaloceanspaces.com
808-
"s3_access_key_id": "YOUR_S3_ACCESS_KEY", # Required: Your S3 access key ID
809-
"s3_secret_access_key": "YOUR_S3_SECRET_KEY", # Required: Your S3 secret access key
810-
"s3_bucket_name": "your-bucket-name", # Required: The name of your S3 bucket
811-
"s3_region_name": "your-region", # Optional: e.g., "nyc3", needed by some providers
812-
"s3_public_url_base": "https://your-cdn-or-bucket-url.com/", # Optional: Custom base URL for public links (include trailing slash). If omitted, a standard URL is constructed.
813-
}
814-
},
815-
"agents": [
816-
{
817-
"name": "python_dev",
818-
"instructions": "You are an expert Python Developer. You always use your nemo_agent tool to generate python code.",
819-
"specialization": "Python Developer",
820-
"tools": ["nemo_agent"], # Enable the tool for this agent
821-
}
822-
]
823-
}
824-
825-
solana_agent = SolanaAgent(config=config)
625+
[Solana Agent Kit](https://github.com/truemagic-coder/solana-agent-kit)
826626

827-
async for response in solana_agent.process("user123", "Generate an example leetcode medium in Python and give me the zip file."):
828-
print(response, end="")
627+
```bash
628+
pip install sakit
829629
```
830630

831631
### Inline Tool Example

0 commit comments

Comments
 (0)