solana-agent 17.0.7__tar.gz → 17.1.0__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 (37) hide show
  1. {solana_agent-17.0.7 → solana_agent-17.1.0}/PKG-INFO +17 -40
  2. {solana_agent-17.0.7 → solana_agent-17.1.0}/README.md +15 -38
  3. {solana_agent-17.0.7 → solana_agent-17.1.0}/pyproject.toml +3 -2
  4. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/client/solana_agent.py +26 -0
  5. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/client/client.py +7 -0
  6. {solana_agent-17.0.7 → solana_agent-17.1.0}/LICENSE +0 -0
  7. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/__init__.py +0 -0
  8. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/adapters/__init__.py +0 -0
  9. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/adapters/llm_adapter.py +0 -0
  10. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/adapters/mongodb_adapter.py +0 -0
  11. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/client/__init__.py +0 -0
  12. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/domains/__init__.py +0 -0
  13. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/domains/agent.py +0 -0
  14. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/domains/routing.py +0 -0
  15. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/factories/__init__.py +0 -0
  16. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/factories/agent_factory.py +0 -0
  17. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/__init__.py +0 -0
  18. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/plugins/plugins.py +0 -0
  19. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/providers/data_storage.py +0 -0
  20. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/providers/llm.py +0 -0
  21. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/providers/memory.py +0 -0
  22. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/repositories/agent.py +0 -0
  23. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/services/agent.py +0 -0
  24. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/services/query.py +0 -0
  25. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/services/routing.py +0 -0
  26. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/plugins/__init__.py +0 -0
  27. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/plugins/manager.py +0 -0
  28. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/plugins/registry.py +0 -0
  29. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/plugins/tools/__init__.py +0 -0
  30. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/plugins/tools/auto_tool.py +0 -0
  31. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/repositories/__init__.py +0 -0
  32. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/repositories/agent.py +0 -0
  33. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/repositories/memory.py +0 -0
  34. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/services/__init__.py +0 -0
  35. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/services/agent.py +0 -0
  36. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/services/query.py +0 -0
  37. {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/services/routing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: solana-agent
3
- Version: 17.0.7
3
+ Version: 17.1.0
4
4
  Summary: Agentic IQ
5
5
  License: MIT
6
6
  Keywords: ai,openai,ai agents,agi
@@ -16,7 +16,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
16
16
  Requires-Dist: openai (>=1.68.2,<2.0.0)
17
17
  Requires-Dist: pydantic (>=2.10.6,<3.0.0)
18
18
  Requires-Dist: pymongo (>=4.11.3,<5.0.0)
19
- Requires-Dist: zep-cloud (>=2.7.0,<3.0.0)
19
+ Requires-Dist: zep-cloud (>=2.8.0,<3.0.0)
20
20
  Requires-Dist: zep-python (>=2.0.2,<3.0.0)
21
21
  Project-URL: Repository, https://github.com/truemagic-coder/solana-agent
22
22
  Description-Content-Type: text/markdown
@@ -34,35 +34,27 @@ Description-Content-Type: text/markdown
34
34
 
35
35
  ## Agentic IQ
36
36
 
37
- Solana Agent is an AI Agent framework defined on five key dimensions:
38
-
39
- * **Multi-Modal Intelligence:** Agents process both text and audio seamlessly. Users interact naturally through their preferred communication channel.
40
-
41
- * **Episodic Memory:** Agents remember past conversations with users. This eliminates repetitive explanations and builds meaningful relationships.
42
-
43
- * **Cognitive Routing:** Queries go to the most qualified agent automatically. Each specialist has domain-specific knowledge for optimal responses.
44
-
45
- * **Value Alignment:** Every agent follows clear organizational values and ethics. This ensures consistent, principled responses aligned with human priorities.
46
-
47
- * **Extensible Tooling:** Agents recognize when specialized tools are needed. They extend capabilities beyond conversation to take actions via Python package integration.
48
-
49
- This approach creates AI Agents that are intelligent, contextually aware, and aligned with organizational values.
37
+ Power your business using Solana Agent!
50
38
 
39
+ * **Brand:** AI agents will speak in your brand voice
40
+ * **Expert:** The AI agent with the most expertise will answer your users' inquiries
41
+ * **Extend:** Assign tools for your AI agents to perform actions
51
42
 
52
43
  ## Features
53
44
 
54
45
  * Seamless text and audio streaming with real-time multi-modal processing
55
46
  * Persistent memory that preserves context across all agent interactions
56
47
  * Intelligent query routing to agents with optimal domain expertise
57
- * Unified value system ensuring aligned, principled agent responses
58
- * Powerful tool integration that extends capabilities using standard Python packages
48
+ * Unified value system ensuring brand-aligned agent responses
49
+ * Powerful tool integration using standard Python packages
50
+ * Assigned tools are utilized by agents automatically and effectively
59
51
 
60
52
  ## Stack
61
53
 
62
- * [Python](https://python.org) - programming language
54
+ * [Python](https://python.org) - Programming Language
63
55
  * [OpenAI](https://openai.com) - LLMs
64
- * [MongoDB](https://mongodb.com) - database
65
- * [Zep](https://getzep.com) - conversational memory
56
+ * [MongoDB](https://mongodb.com) - Database
57
+ * [Zep](https://getzep.com) - Conversational Memory
66
58
 
67
59
  ## Installation
68
60
 
@@ -70,10 +62,6 @@ You can install Solana Agent using pip:
70
62
 
71
63
  `pip install solana-agent`
72
64
 
73
- ## Documentation
74
-
75
- Each public method has a docstring for real-time IDE hinting.
76
-
77
65
  ## Example App
78
66
 
79
67
  ```python
@@ -81,19 +69,15 @@ from solana_agent import SolanaAgent
81
69
 
82
70
  config = {
83
71
  "organization": {
84
- "mission_statement": "To revolutionize knowledge work through AI-human collaboration that puts people first.",
72
+ "mission_statement": "To provide users with a one-stop shop for their queries.",
85
73
  "values": {
86
- "Human-Centered": "Always prioritize human well-being and augmentation over replacement.",
87
- "Transparency": "Provide clear explanations for decisions and never hide information.",
88
- "Collective Intelligence": "Value diverse perspectives and combine human and AI strengths.",
89
- "Continuous Learning": "Embrace feedback and continuously improve based on experience."
74
+ "Friendliness": "Users must be treated fairly, openly, and with friendliness.",
75
+ "Ethical": "Agents must use a strong ethical framework in their interactions with users.",
90
76
  },
91
77
  "goals": [
92
- "Enable human experts to focus on high-value creative work",
93
- "Reduce administrative overhead through intelligent automation",
94
- "Create seamless knowledge flow across the organization"
78
+ "Empower users with great answers to their queries.",
95
79
  ],
96
- "guidance": "When making decisions, prioritize long-term user success over short-term efficiency."
80
+ "guidance": "Align all interactions with the success of the user while respecting human dignity."
97
81
  },
98
82
  "mongo": {
99
83
  "connection_string": "mongodb://localhost:27017",
@@ -117,19 +101,12 @@ config = {
117
101
  ],
118
102
  }
119
103
 
120
- # Create agent with configuration
121
104
  solana_agent = SolanaAgent(config=config)
122
105
 
123
- # Process a query that can use tools
124
106
  async for response in solana_agent.process("user123", "What are the latest AI developments?"):
125
107
  print(response, end="")
126
108
  ```
127
109
 
128
- ## Models Used
129
- * `gpt-4o-mini`
130
- * `gpt-4o-mini-transcribe`
131
- * `tts-1`
132
-
133
110
  ## Solana Agent Kit
134
111
 
135
112
  A collection of Solana Agent tools
@@ -11,35 +11,27 @@
11
11
 
12
12
  ## Agentic IQ
13
13
 
14
- Solana Agent is an AI Agent framework defined on five key dimensions:
15
-
16
- * **Multi-Modal Intelligence:** Agents process both text and audio seamlessly. Users interact naturally through their preferred communication channel.
17
-
18
- * **Episodic Memory:** Agents remember past conversations with users. This eliminates repetitive explanations and builds meaningful relationships.
19
-
20
- * **Cognitive Routing:** Queries go to the most qualified agent automatically. Each specialist has domain-specific knowledge for optimal responses.
21
-
22
- * **Value Alignment:** Every agent follows clear organizational values and ethics. This ensures consistent, principled responses aligned with human priorities.
23
-
24
- * **Extensible Tooling:** Agents recognize when specialized tools are needed. They extend capabilities beyond conversation to take actions via Python package integration.
25
-
26
- This approach creates AI Agents that are intelligent, contextually aware, and aligned with organizational values.
14
+ Power your business using Solana Agent!
27
15
 
16
+ * **Brand:** AI agents will speak in your brand voice
17
+ * **Expert:** The AI agent with the most expertise will answer your users' inquiries
18
+ * **Extend:** Assign tools for your AI agents to perform actions
28
19
 
29
20
  ## Features
30
21
 
31
22
  * Seamless text and audio streaming with real-time multi-modal processing
32
23
  * Persistent memory that preserves context across all agent interactions
33
24
  * Intelligent query routing to agents with optimal domain expertise
34
- * Unified value system ensuring aligned, principled agent responses
35
- * Powerful tool integration that extends capabilities using standard Python packages
25
+ * Unified value system ensuring brand-aligned agent responses
26
+ * Powerful tool integration using standard Python packages
27
+ * Assigned tools are utilized by agents automatically and effectively
36
28
 
37
29
  ## Stack
38
30
 
39
- * [Python](https://python.org) - programming language
31
+ * [Python](https://python.org) - Programming Language
40
32
  * [OpenAI](https://openai.com) - LLMs
41
- * [MongoDB](https://mongodb.com) - database
42
- * [Zep](https://getzep.com) - conversational memory
33
+ * [MongoDB](https://mongodb.com) - Database
34
+ * [Zep](https://getzep.com) - Conversational Memory
43
35
 
44
36
  ## Installation
45
37
 
@@ -47,10 +39,6 @@ You can install Solana Agent using pip:
47
39
 
48
40
  `pip install solana-agent`
49
41
 
50
- ## Documentation
51
-
52
- Each public method has a docstring for real-time IDE hinting.
53
-
54
42
  ## Example App
55
43
 
56
44
  ```python
@@ -58,19 +46,15 @@ from solana_agent import SolanaAgent
58
46
 
59
47
  config = {
60
48
  "organization": {
61
- "mission_statement": "To revolutionize knowledge work through AI-human collaboration that puts people first.",
49
+ "mission_statement": "To provide users with a one-stop shop for their queries.",
62
50
  "values": {
63
- "Human-Centered": "Always prioritize human well-being and augmentation over replacement.",
64
- "Transparency": "Provide clear explanations for decisions and never hide information.",
65
- "Collective Intelligence": "Value diverse perspectives and combine human and AI strengths.",
66
- "Continuous Learning": "Embrace feedback and continuously improve based on experience."
51
+ "Friendliness": "Users must be treated fairly, openly, and with friendliness.",
52
+ "Ethical": "Agents must use a strong ethical framework in their interactions with users.",
67
53
  },
68
54
  "goals": [
69
- "Enable human experts to focus on high-value creative work",
70
- "Reduce administrative overhead through intelligent automation",
71
- "Create seamless knowledge flow across the organization"
55
+ "Empower users with great answers to their queries.",
72
56
  ],
73
- "guidance": "When making decisions, prioritize long-term user success over short-term efficiency."
57
+ "guidance": "Align all interactions with the success of the user while respecting human dignity."
74
58
  },
75
59
  "mongo": {
76
60
  "connection_string": "mongodb://localhost:27017",
@@ -94,19 +78,12 @@ config = {
94
78
  ],
95
79
  }
96
80
 
97
- # Create agent with configuration
98
81
  solana_agent = SolanaAgent(config=config)
99
82
 
100
- # Process a query that can use tools
101
83
  async for response in solana_agent.process("user123", "What are the latest AI developments?"):
102
84
  print(response, end="")
103
85
  ```
104
86
 
105
- ## Models Used
106
- * `gpt-4o-mini`
107
- * `gpt-4o-mini-transcribe`
108
- * `tts-1`
109
-
110
87
  ## Solana Agent Kit
111
88
 
112
89
  A collection of Solana Agent tools
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "solana-agent"
3
- version = "17.0.7"
3
+ version = "17.1.0"
4
4
  description = "Agentic IQ"
5
5
  authors = ["Bevan Hunt <bevan@bevanhunt.com>"]
6
6
  license = "MIT"
@@ -21,13 +21,14 @@ python = ">=3.12,<4.0"
21
21
  openai = "^1.68.2"
22
22
  pydantic = "^2.10.6"
23
23
  pymongo = "^4.11.3"
24
- zep-cloud = "^2.7.0"
24
+ zep-cloud = "^2.8.0"
25
25
  zep-python = "^2.0.2"
26
26
 
27
27
  [tool.poetry.dev-dependencies]
28
28
  pytest = "^8.3.5"
29
29
  pytest-cov = "^6.0.0"
30
30
  pytest-asyncio = "^0.25.3"
31
+ pytest-github-actions-annotate-failures = "^0.3.0"
31
32
 
32
33
  [build-system]
33
34
  requires = ["poetry-core>=1.0.0"]
@@ -10,6 +10,7 @@ from typing import AsyncGenerator, Dict, Any, Literal, Optional, Union
10
10
 
11
11
  from solana_agent.factories.agent_factory import SolanaAgentFactory
12
12
  from solana_agent.interfaces.client.client import SolanaAgent as SolanaAgentInterface
13
+ from solana_agent.interfaces.plugins.plugins import Tool
13
14
 
14
15
 
15
16
  class SolanaAgent(SolanaAgentInterface):
@@ -109,3 +110,28 @@ class SolanaAgent(SolanaAgentInterface):
109
110
  return await self.query_service.get_user_history(
110
111
  user_id, page_num, page_size, sort_order
111
112
  )
113
+
114
+ def register_tool(self, tool: Tool) -> bool:
115
+ """Register a custom tool for use by agents.
116
+
117
+ Args:
118
+ tool: Tool implementation following the Tool interface
119
+
120
+ Returns:
121
+ bool: True if registration was successful
122
+
123
+ Example:
124
+ ```python
125
+ from solana_agent import SolanaAgent
126
+ from my_tools import CustomTool
127
+
128
+ agent = SolanaAgent(config=config)
129
+ tool = CustomTool()
130
+ agent.register_tool(tool)
131
+ ```
132
+ """
133
+ try:
134
+ return self.query_service.agent_service.tool_registry.register_tool(tool)
135
+ except Exception as e:
136
+ print(f"Error registering tool: {str(e)}")
137
+ return False
@@ -1,6 +1,8 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from typing import Any, AsyncGenerator, Dict, Literal, Union
3
3
 
4
+ from solana_agent.interfaces.plugins.plugins import Tool
5
+
4
6
 
5
7
  class SolanaAgent(ABC):
6
8
  """Interface for the Solana agent system."""
@@ -33,3 +35,8 @@ class SolanaAgent(ABC):
33
35
  ) -> Dict[str, Any]:
34
36
  """Get paginated message history for a user."""
35
37
  pass
38
+
39
+ @abstractmethod
40
+ def register_tool(self, tool: Tool) -> bool:
41
+ """Register a tool in the registry."""
42
+ pass
File without changes