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.
- {solana_agent-17.0.7 → solana_agent-17.1.0}/PKG-INFO +17 -40
- {solana_agent-17.0.7 → solana_agent-17.1.0}/README.md +15 -38
- {solana_agent-17.0.7 → solana_agent-17.1.0}/pyproject.toml +3 -2
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/client/solana_agent.py +26 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/client/client.py +7 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/LICENSE +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/__init__.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/adapters/__init__.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/adapters/llm_adapter.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/adapters/mongodb_adapter.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/client/__init__.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/domains/__init__.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/domains/agent.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/domains/routing.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/factories/__init__.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/factories/agent_factory.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/__init__.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/plugins/plugins.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/providers/data_storage.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/providers/llm.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/providers/memory.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/repositories/agent.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/services/agent.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/services/query.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/services/routing.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/plugins/__init__.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/plugins/manager.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/plugins/registry.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/plugins/tools/__init__.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/plugins/tools/auto_tool.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/repositories/__init__.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/repositories/agent.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/repositories/memory.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/services/__init__.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/services/agent.py +0 -0
- {solana_agent-17.0.7 → solana_agent-17.1.0}/solana_agent/services/query.py +0 -0
- {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
|
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.
|
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
|
-
|
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
|
58
|
-
* Powerful tool integration
|
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) -
|
54
|
+
* [Python](https://python.org) - Programming Language
|
63
55
|
* [OpenAI](https://openai.com) - LLMs
|
64
|
-
* [MongoDB](https://mongodb.com) -
|
65
|
-
* [Zep](https://getzep.com) -
|
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
|
72
|
+
"mission_statement": "To provide users with a one-stop shop for their queries.",
|
85
73
|
"values": {
|
86
|
-
"
|
87
|
-
"
|
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
|
-
"
|
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": "
|
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
|
-
|
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
|
35
|
-
* Powerful tool integration
|
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) -
|
31
|
+
* [Python](https://python.org) - Programming Language
|
40
32
|
* [OpenAI](https://openai.com) - LLMs
|
41
|
-
* [MongoDB](https://mongodb.com) -
|
42
|
-
* [Zep](https://getzep.com) -
|
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
|
49
|
+
"mission_statement": "To provide users with a one-stop shop for their queries.",
|
62
50
|
"values": {
|
63
|
-
"
|
64
|
-
"
|
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
|
-
"
|
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": "
|
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
|
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.
|
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
|
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-17.0.7 → solana_agent-17.1.0}/solana_agent/interfaces/providers/data_storage.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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|