solana-agent 27.3.2__tar.gz → 27.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {solana_agent-27.3.2 → solana_agent-27.3.4}/PKG-INFO +58 -45
- {solana_agent-27.3.2 → solana_agent-27.3.4}/README.md +56 -43
- {solana_agent-27.3.2 → solana_agent-27.3.4}/pyproject.toml +2 -2
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/repositories/memory.py +0 -14
- {solana_agent-27.3.2 → solana_agent-27.3.4}/LICENSE +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/__init__.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/adapters/__init__.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/adapters/mongodb_adapter.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/adapters/openai_adapter.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/adapters/pinecone_adapter.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/client/__init__.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/client/solana_agent.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/domains/__init__.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/domains/agent.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/domains/routing.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/factories/__init__.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/factories/agent_factory.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/__init__.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/client/client.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/plugins/plugins.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/providers/data_storage.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/providers/llm.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/providers/memory.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/providers/vector_storage.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/services/agent.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/services/knowledge_base.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/services/query.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/services/routing.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/plugins/__init__.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/plugins/manager.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/plugins/registry.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/plugins/tools/__init__.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/plugins/tools/auto_tool.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/repositories/__init__.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/services/__init__.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/services/agent.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/services/knowledge_base.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/services/query.py +0 -0
- {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/services/routing.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: solana-agent
|
3
|
-
Version: 27.3.
|
3
|
+
Version: 27.3.4
|
4
4
|
Summary: Agentic IQ
|
5
5
|
License: MIT
|
6
6
|
Keywords: ai,openai,ai agents,agi
|
@@ -17,7 +17,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
17
17
|
Requires-Dist: instructor (>=1.7.9,<2.0.0)
|
18
18
|
Requires-Dist: llama-index-core (>=0.12.30,<0.13.0)
|
19
19
|
Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
|
20
|
-
Requires-Dist: openai (>=1.
|
20
|
+
Requires-Dist: openai (>=1.75.0,<2.0.0)
|
21
21
|
Requires-Dist: pinecone (>=6.0.2,<7.0.0)
|
22
22
|
Requires-Dist: pydantic (>=2)
|
23
23
|
Requires-Dist: pymongo (>=4.12.0,<5.0.0)
|
@@ -47,7 +47,7 @@ Build your AI business in three lines of code!
|
|
47
47
|
## Why?
|
48
48
|
* Three lines of code setup
|
49
49
|
* Fast Responses
|
50
|
-
* Solana Integration
|
50
|
+
* Solana Ecosystem Integration
|
51
51
|
* Multi-Agent Swarm
|
52
52
|
* Multi-Modal Streaming (Text & Audio)
|
53
53
|
* Conversational Memory & History
|
@@ -65,7 +65,7 @@ Build your AI business in three lines of code!
|
|
65
65
|
|
66
66
|
* Easy three lines of code setup
|
67
67
|
* Fast AI responses
|
68
|
-
* Solana Integration via [AgentiPy](https://github.com/niceberginc/agentipy)
|
68
|
+
* Solana Ecosystem Integration via [AgentiPy](https://github.com/niceberginc/agentipy)
|
69
69
|
* Designed for a multi-agent swarm
|
70
70
|
* Seamless text and audio streaming with real-time multi-modal processing
|
71
71
|
* Configurable audio voice characteristics via prompting
|
@@ -454,6 +454,34 @@ Tools can be used from plugins like Solana Agent Kit (sakit) or via inline tools
|
|
454
454
|
* Solana Agent doesn't use OpenAI function calling (tools) as they don't support async functions
|
455
455
|
* Solana Agent tools are async functions
|
456
456
|
|
457
|
+
### Solana
|
458
|
+
|
459
|
+
`pip install sakit`
|
460
|
+
|
461
|
+
```python
|
462
|
+
config = {
|
463
|
+
"tools": {
|
464
|
+
"solana": {
|
465
|
+
"private_key": "your-solana-wallet-private-key", # base58 encoded string
|
466
|
+
"rpc_url": "your-solana-rpc-url",
|
467
|
+
},
|
468
|
+
},
|
469
|
+
"ai_agents": [
|
470
|
+
{
|
471
|
+
"name": "solana_expert",
|
472
|
+
"instructions": "You are an expert Solana blockchain assistant. You always use the Solana tool to perform actions on the Solana blockchain.",
|
473
|
+
"specialization": "Solana blockchain interaction",
|
474
|
+
"tools": ["solana"], # Enable the tool for this agent
|
475
|
+
}
|
476
|
+
]
|
477
|
+
}
|
478
|
+
|
479
|
+
solana_agent = SolanaAgent(config=config)
|
480
|
+
|
481
|
+
async for response in solana_agent.process("user123", "What is my SOL balance?"):
|
482
|
+
print(response, end="")
|
483
|
+
```
|
484
|
+
|
457
485
|
### Internet Search
|
458
486
|
|
459
487
|
`pip install sakit`
|
@@ -472,66 +500,51 @@ config = {
|
|
472
500
|
},
|
473
501
|
"agents": [
|
474
502
|
{
|
475
|
-
"name": "
|
476
|
-
"instructions": "You are an expert
|
477
|
-
"specialization": "
|
478
|
-
"tools": ["search_internet"],
|
479
|
-
},
|
480
|
-
{
|
481
|
-
"name": "customer_support",
|
482
|
-
"instructions": "You provide friendly, helpful customer support responses.",
|
483
|
-
"specialization": "Customer inquiries",
|
503
|
+
"name": "news_specialist",
|
504
|
+
"instructions": "You are an expert news agent. You use your search_internet tool to get the latest information.",
|
505
|
+
"specialization": "News researcher and specialist",
|
506
|
+
"tools": ["search_internet"], # Enable the tool for this agent
|
484
507
|
}
|
485
508
|
],
|
486
509
|
}
|
510
|
+
|
511
|
+
solana_agent = SolanaAgent(config=config)
|
512
|
+
|
513
|
+
async for response in solana_agent.process("user123", "What is the latest news on Elon Musk?"):
|
514
|
+
print(response, end="")
|
487
515
|
```
|
488
516
|
|
489
|
-
###
|
517
|
+
### MCP
|
518
|
+
|
519
|
+
[Zapier](https://zapier.com) MCP has been tested, works, and is supported.
|
520
|
+
|
521
|
+
Other MCP servers may work but are not supported.
|
490
522
|
|
491
523
|
`pip install sakit`
|
492
524
|
|
493
525
|
```python
|
526
|
+
|
527
|
+
from solana_agent import SolanaAgent
|
528
|
+
|
494
529
|
config = {
|
495
530
|
"tools": {
|
496
|
-
"
|
497
|
-
|
498
|
-
|
499
|
-
"rpc_url": "https://api.mainnet-beta.solana.com", # Optional: Defaults to Solana mainnet RPC.
|
500
|
-
"generate_wallet": False, # Optional: If True, ignores private_key and generates a new wallet. Defaults to False.
|
501
|
-
|
502
|
-
# Optional RPC/Service API Keys & URLs
|
503
|
-
"helius_api_key": "YOUR_HELIUS_API_KEY", # Optional: Helius API key for enhanced data/RPC.
|
504
|
-
"helius_rpc_url": "YOUR_HELIUS_RPC_URL", # Optional: Specific Helius RPC URL.
|
505
|
-
"quicknode_rpc_url": "YOUR_QUICKNODE_RPC_URL", # Optional: QuickNode RPC URL.
|
506
|
-
"jito_block_engine_url": "YOUR_JITO_BLOCK_ENGINE_URL", # Optional: Jito block engine URL for bundles.
|
507
|
-
"jito_uuid": "YOUR_JITO_UUID", # Optional: Jito authentication UUID.
|
508
|
-
|
509
|
-
# Optional Integration API Keys
|
510
|
-
"openai_api_key": "YOUR_OPENAI_API_KEY", # Optional: OpenAI API key (if needed by specific agentipy features).
|
511
|
-
"backpack_api_key": "YOUR_BACKPACK_API_KEY", # Optional: Backpack Exchange API key.
|
512
|
-
"backpack_api_secret": "YOUR_BACKPACK_API_SECRET", # Optional: Backpack Exchange API secret.
|
513
|
-
"stork_api_key": "YOUR_STORK_API_KEY", # Optional: Stork oracle API key.
|
514
|
-
"coingecko_api_key": "YOUR_COINGECKO_PRO_API_KEY", # Optional: CoinGecko Pro API key.
|
515
|
-
"coingecko_demo_api_key": "YOUR_COINGECKO_DEMO_KEY", # Optional: CoinGecko Demo API key.
|
516
|
-
"elfa_ai_api_key": "YOUR_ELFA_AI_API_KEY", # Optional: Elfa AI API key.
|
517
|
-
"flexland_api_key": "YOUR_FLEXLAND_API_KEY", # Optional: Flexlend API key.
|
518
|
-
"allora_api_key": "YOUR_ALLORA_API_KEY", # Optional: Allora Network API key.
|
519
|
-
"solutiofi_api_key": "YOUR_SOLUTIOFI_API_KEY" # Optional: Solutio Finance API key.
|
520
|
-
},
|
531
|
+
"mcp": {
|
532
|
+
"urls": ["my-zapier-mcp-url"],
|
533
|
+
}
|
521
534
|
},
|
522
|
-
"
|
535
|
+
"agents": [
|
523
536
|
{
|
524
|
-
"name": "
|
525
|
-
"instructions": "You are an expert
|
526
|
-
"specialization": "
|
527
|
-
"tools": ["
|
537
|
+
"name": "zapier_expert",
|
538
|
+
"instructions": "You are an expert in using Zapier integrations using MCP. You always use the mcp tool to perform Zapier AI like actions.",
|
539
|
+
"specialization": "Zapier service integration expert",
|
540
|
+
"tools": ["mcp"], # Enable the tool for this agent
|
528
541
|
}
|
529
542
|
]
|
530
543
|
}
|
531
544
|
|
532
545
|
solana_agent = SolanaAgent(config=config)
|
533
546
|
|
534
|
-
async for response in solana_agent.process("user123", "
|
547
|
+
async for response in solana_agent.process("user123", "Send an email to bob@bob.com to clean his room!"):
|
535
548
|
print(response, end="")
|
536
549
|
```
|
537
550
|
|
@@ -18,7 +18,7 @@ Build your AI business in three lines of code!
|
|
18
18
|
## Why?
|
19
19
|
* Three lines of code setup
|
20
20
|
* Fast Responses
|
21
|
-
* Solana Integration
|
21
|
+
* Solana Ecosystem Integration
|
22
22
|
* Multi-Agent Swarm
|
23
23
|
* Multi-Modal Streaming (Text & Audio)
|
24
24
|
* Conversational Memory & History
|
@@ -36,7 +36,7 @@ Build your AI business in three lines of code!
|
|
36
36
|
|
37
37
|
* Easy three lines of code setup
|
38
38
|
* Fast AI responses
|
39
|
-
* Solana Integration via [AgentiPy](https://github.com/niceberginc/agentipy)
|
39
|
+
* Solana Ecosystem Integration via [AgentiPy](https://github.com/niceberginc/agentipy)
|
40
40
|
* Designed for a multi-agent swarm
|
41
41
|
* Seamless text and audio streaming with real-time multi-modal processing
|
42
42
|
* Configurable audio voice characteristics via prompting
|
@@ -425,6 +425,34 @@ Tools can be used from plugins like Solana Agent Kit (sakit) or via inline tools
|
|
425
425
|
* Solana Agent doesn't use OpenAI function calling (tools) as they don't support async functions
|
426
426
|
* Solana Agent tools are async functions
|
427
427
|
|
428
|
+
### Solana
|
429
|
+
|
430
|
+
`pip install sakit`
|
431
|
+
|
432
|
+
```python
|
433
|
+
config = {
|
434
|
+
"tools": {
|
435
|
+
"solana": {
|
436
|
+
"private_key": "your-solana-wallet-private-key", # base58 encoded string
|
437
|
+
"rpc_url": "your-solana-rpc-url",
|
438
|
+
},
|
439
|
+
},
|
440
|
+
"ai_agents": [
|
441
|
+
{
|
442
|
+
"name": "solana_expert",
|
443
|
+
"instructions": "You are an expert Solana blockchain assistant. You always use the Solana tool to perform actions on the Solana blockchain.",
|
444
|
+
"specialization": "Solana blockchain interaction",
|
445
|
+
"tools": ["solana"], # Enable the tool for this agent
|
446
|
+
}
|
447
|
+
]
|
448
|
+
}
|
449
|
+
|
450
|
+
solana_agent = SolanaAgent(config=config)
|
451
|
+
|
452
|
+
async for response in solana_agent.process("user123", "What is my SOL balance?"):
|
453
|
+
print(response, end="")
|
454
|
+
```
|
455
|
+
|
428
456
|
### Internet Search
|
429
457
|
|
430
458
|
`pip install sakit`
|
@@ -443,66 +471,51 @@ config = {
|
|
443
471
|
},
|
444
472
|
"agents": [
|
445
473
|
{
|
446
|
-
"name": "
|
447
|
-
"instructions": "You are an expert
|
448
|
-
"specialization": "
|
449
|
-
"tools": ["search_internet"],
|
450
|
-
},
|
451
|
-
{
|
452
|
-
"name": "customer_support",
|
453
|
-
"instructions": "You provide friendly, helpful customer support responses.",
|
454
|
-
"specialization": "Customer inquiries",
|
474
|
+
"name": "news_specialist",
|
475
|
+
"instructions": "You are an expert news agent. You use your search_internet tool to get the latest information.",
|
476
|
+
"specialization": "News researcher and specialist",
|
477
|
+
"tools": ["search_internet"], # Enable the tool for this agent
|
455
478
|
}
|
456
479
|
],
|
457
480
|
}
|
481
|
+
|
482
|
+
solana_agent = SolanaAgent(config=config)
|
483
|
+
|
484
|
+
async for response in solana_agent.process("user123", "What is the latest news on Elon Musk?"):
|
485
|
+
print(response, end="")
|
458
486
|
```
|
459
487
|
|
460
|
-
###
|
488
|
+
### MCP
|
489
|
+
|
490
|
+
[Zapier](https://zapier.com) MCP has been tested, works, and is supported.
|
491
|
+
|
492
|
+
Other MCP servers may work but are not supported.
|
461
493
|
|
462
494
|
`pip install sakit`
|
463
495
|
|
464
496
|
```python
|
497
|
+
|
498
|
+
from solana_agent import SolanaAgent
|
499
|
+
|
465
500
|
config = {
|
466
501
|
"tools": {
|
467
|
-
"
|
468
|
-
|
469
|
-
|
470
|
-
"rpc_url": "https://api.mainnet-beta.solana.com", # Optional: Defaults to Solana mainnet RPC.
|
471
|
-
"generate_wallet": False, # Optional: If True, ignores private_key and generates a new wallet. Defaults to False.
|
472
|
-
|
473
|
-
# Optional RPC/Service API Keys & URLs
|
474
|
-
"helius_api_key": "YOUR_HELIUS_API_KEY", # Optional: Helius API key for enhanced data/RPC.
|
475
|
-
"helius_rpc_url": "YOUR_HELIUS_RPC_URL", # Optional: Specific Helius RPC URL.
|
476
|
-
"quicknode_rpc_url": "YOUR_QUICKNODE_RPC_URL", # Optional: QuickNode RPC URL.
|
477
|
-
"jito_block_engine_url": "YOUR_JITO_BLOCK_ENGINE_URL", # Optional: Jito block engine URL for bundles.
|
478
|
-
"jito_uuid": "YOUR_JITO_UUID", # Optional: Jito authentication UUID.
|
479
|
-
|
480
|
-
# Optional Integration API Keys
|
481
|
-
"openai_api_key": "YOUR_OPENAI_API_KEY", # Optional: OpenAI API key (if needed by specific agentipy features).
|
482
|
-
"backpack_api_key": "YOUR_BACKPACK_API_KEY", # Optional: Backpack Exchange API key.
|
483
|
-
"backpack_api_secret": "YOUR_BACKPACK_API_SECRET", # Optional: Backpack Exchange API secret.
|
484
|
-
"stork_api_key": "YOUR_STORK_API_KEY", # Optional: Stork oracle API key.
|
485
|
-
"coingecko_api_key": "YOUR_COINGECKO_PRO_API_KEY", # Optional: CoinGecko Pro API key.
|
486
|
-
"coingecko_demo_api_key": "YOUR_COINGECKO_DEMO_KEY", # Optional: CoinGecko Demo API key.
|
487
|
-
"elfa_ai_api_key": "YOUR_ELFA_AI_API_KEY", # Optional: Elfa AI API key.
|
488
|
-
"flexland_api_key": "YOUR_FLEXLAND_API_KEY", # Optional: Flexlend API key.
|
489
|
-
"allora_api_key": "YOUR_ALLORA_API_KEY", # Optional: Allora Network API key.
|
490
|
-
"solutiofi_api_key": "YOUR_SOLUTIOFI_API_KEY" # Optional: Solutio Finance API key.
|
491
|
-
},
|
502
|
+
"mcp": {
|
503
|
+
"urls": ["my-zapier-mcp-url"],
|
504
|
+
}
|
492
505
|
},
|
493
|
-
"
|
506
|
+
"agents": [
|
494
507
|
{
|
495
|
-
"name": "
|
496
|
-
"instructions": "You are an expert
|
497
|
-
"specialization": "
|
498
|
-
"tools": ["
|
508
|
+
"name": "zapier_expert",
|
509
|
+
"instructions": "You are an expert in using Zapier integrations using MCP. You always use the mcp tool to perform Zapier AI like actions.",
|
510
|
+
"specialization": "Zapier service integration expert",
|
511
|
+
"tools": ["mcp"], # Enable the tool for this agent
|
499
512
|
}
|
500
513
|
]
|
501
514
|
}
|
502
515
|
|
503
516
|
solana_agent = SolanaAgent(config=config)
|
504
517
|
|
505
|
-
async for response in solana_agent.process("user123", "
|
518
|
+
async for response in solana_agent.process("user123", "Send an email to bob@bob.com to clean his room!"):
|
506
519
|
print(response, end="")
|
507
520
|
```
|
508
521
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "solana-agent"
|
3
|
-
version = "27.3.
|
3
|
+
version = "27.3.4"
|
4
4
|
description = "Agentic IQ"
|
5
5
|
authors = ["Bevan Hunt <bevan@bevanhunt.com>"]
|
6
6
|
license = "MIT"
|
@@ -23,7 +23,7 @@ python_paths = [".", "tests"]
|
|
23
23
|
|
24
24
|
[tool.poetry.dependencies]
|
25
25
|
python = ">=3.12,<4.0"
|
26
|
-
openai = "^1.
|
26
|
+
openai = "^1.75.0"
|
27
27
|
pydantic = ">=2"
|
28
28
|
pymongo = "^4.12.0"
|
29
29
|
zep-cloud = "^2.10.1"
|
@@ -127,20 +127,6 @@ class MemoryRepository(MemoryProvider):
|
|
127
127
|
memory = await self.zep.memory.get(session_id=user_id)
|
128
128
|
if memory and memory.context:
|
129
129
|
memories = memory.context
|
130
|
-
if self.mongo:
|
131
|
-
mongo_memory = self.mongo.find(
|
132
|
-
self.collection,
|
133
|
-
{"user_id": user_id},
|
134
|
-
sort=[("timestamp", -1)],
|
135
|
-
limit=3
|
136
|
-
)
|
137
|
-
if mongo_memory:
|
138
|
-
# Concatenate MongoDB memory with Zep memory
|
139
|
-
mongo_memory = [
|
140
|
-
f"{msg['user_message']} {msg['assistant_message']}"
|
141
|
-
for msg in mongo_memory
|
142
|
-
]
|
143
|
-
memories += " ".join(mongo_memory)
|
144
130
|
return memories
|
145
131
|
|
146
132
|
except Exception as e:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/providers/data_storage.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/providers/vector_storage.py
RENAMED
File without changes
|
File without changes
|
{solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/services/knowledge_base.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|