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.
Files changed (39) hide show
  1. {solana_agent-27.3.2 → solana_agent-27.3.4}/PKG-INFO +58 -45
  2. {solana_agent-27.3.2 → solana_agent-27.3.4}/README.md +56 -43
  3. {solana_agent-27.3.2 → solana_agent-27.3.4}/pyproject.toml +2 -2
  4. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/repositories/memory.py +0 -14
  5. {solana_agent-27.3.2 → solana_agent-27.3.4}/LICENSE +0 -0
  6. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/__init__.py +0 -0
  7. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/adapters/__init__.py +0 -0
  8. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/adapters/mongodb_adapter.py +0 -0
  9. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/adapters/openai_adapter.py +0 -0
  10. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/adapters/pinecone_adapter.py +0 -0
  11. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/client/__init__.py +0 -0
  12. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/client/solana_agent.py +0 -0
  13. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/domains/__init__.py +0 -0
  14. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/domains/agent.py +0 -0
  15. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/domains/routing.py +0 -0
  16. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/factories/__init__.py +0 -0
  17. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/factories/agent_factory.py +0 -0
  18. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/__init__.py +0 -0
  19. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/client/client.py +0 -0
  20. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/plugins/plugins.py +0 -0
  21. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/providers/data_storage.py +0 -0
  22. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/providers/llm.py +0 -0
  23. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/providers/memory.py +0 -0
  24. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/providers/vector_storage.py +0 -0
  25. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/services/agent.py +0 -0
  26. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/services/knowledge_base.py +0 -0
  27. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/services/query.py +0 -0
  28. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/interfaces/services/routing.py +0 -0
  29. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/plugins/__init__.py +0 -0
  30. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/plugins/manager.py +0 -0
  31. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/plugins/registry.py +0 -0
  32. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/plugins/tools/__init__.py +0 -0
  33. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/plugins/tools/auto_tool.py +0 -0
  34. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/repositories/__init__.py +0 -0
  35. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/services/__init__.py +0 -0
  36. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/services/agent.py +0 -0
  37. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/services/knowledge_base.py +0 -0
  38. {solana_agent-27.3.2 → solana_agent-27.3.4}/solana_agent/services/query.py +0 -0
  39. {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.2
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.74.0,<2.0.0)
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": "research_specialist",
476
- "instructions": "You are an expert researcher who synthesizes complex information clearly. You use your search_internet tool to get the latest information.",
477
- "specialization": "Research and knowledge synthesis",
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
- ### Solana Actions
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
- "solana": {
497
- # Core Solana Settings
498
- "private_key": "YOUR_SOLANA_WALLET_PRIVATE_KEY", # Required (unless generate_wallet=True): Your wallet's private key (base58 encoded string).
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
- "ai_agents": [
535
+ "agents": [
523
536
  {
524
- "name": "solana_expert",
525
- "instructions": "You are an expert Solana blockchain assistant. You always use the Solana tool to perform actions on the Solana blockchain.",
526
- "specialization": "Solana blockchain interaction",
527
- "tools": ["solana"], # Enable the tool for this agent
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", "What is my SOL balance?"):
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": "research_specialist",
447
- "instructions": "You are an expert researcher who synthesizes complex information clearly. You use your search_internet tool to get the latest information.",
448
- "specialization": "Research and knowledge synthesis",
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
- ### Solana Actions
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
- "solana": {
468
- # Core Solana Settings
469
- "private_key": "YOUR_SOLANA_WALLET_PRIVATE_KEY", # Required (unless generate_wallet=True): Your wallet's private key (base58 encoded string).
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
- "ai_agents": [
506
+ "agents": [
494
507
  {
495
- "name": "solana_expert",
496
- "instructions": "You are an expert Solana blockchain assistant. You always use the Solana tool to perform actions on the Solana blockchain.",
497
- "specialization": "Solana blockchain interaction",
498
- "tools": ["solana"], # Enable the tool for this agent
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", "What is my SOL balance?"):
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.2"
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.74.0"
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