solana-agent 23.0.0__tar.gz → 23.0.2__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 (35) hide show
  1. {solana_agent-23.0.0 → solana_agent-23.0.2}/PKG-INFO +79 -6
  2. {solana_agent-23.0.0 → solana_agent-23.0.2}/README.md +78 -5
  3. {solana_agent-23.0.0 → solana_agent-23.0.2}/pyproject.toml +1 -1
  4. {solana_agent-23.0.0 → solana_agent-23.0.2}/LICENSE +0 -0
  5. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/__init__.py +0 -0
  6. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/adapters/__init__.py +0 -0
  7. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/adapters/llm_adapter.py +0 -0
  8. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/adapters/mongodb_adapter.py +0 -0
  9. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/client/__init__.py +0 -0
  10. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/client/solana_agent.py +0 -0
  11. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/domains/__init__.py +0 -0
  12. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/domains/agent.py +0 -0
  13. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/domains/routing.py +0 -0
  14. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/factories/__init__.py +0 -0
  15. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/factories/agent_factory.py +0 -0
  16. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/interfaces/__init__.py +0 -0
  17. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/interfaces/client/client.py +0 -0
  18. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/interfaces/plugins/plugins.py +0 -0
  19. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/interfaces/providers/data_storage.py +0 -0
  20. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/interfaces/providers/llm.py +0 -0
  21. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/interfaces/providers/memory.py +0 -0
  22. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/interfaces/services/agent.py +0 -0
  23. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/interfaces/services/query.py +0 -0
  24. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/interfaces/services/routing.py +0 -0
  25. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/plugins/__init__.py +0 -0
  26. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/plugins/manager.py +0 -0
  27. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/plugins/registry.py +0 -0
  28. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/plugins/tools/__init__.py +0 -0
  29. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/plugins/tools/auto_tool.py +0 -0
  30. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/repositories/__init__.py +0 -0
  31. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/repositories/memory.py +0 -0
  32. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/services/__init__.py +0 -0
  33. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/services/agent.py +0 -0
  34. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/services/query.py +0 -0
  35. {solana_agent-23.0.0 → solana_agent-23.0.2}/solana_agent/services/routing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: solana-agent
3
- Version: 23.0.0
3
+ Version: 23.0.2
4
4
  Summary: Agentic IQ
5
5
  License: MIT
6
6
  Keywords: ai,openai,ai agents,agi
@@ -81,6 +81,51 @@ You can install Solana Agent using pip:
81
81
 
82
82
  `pip install solana-agent`
83
83
 
84
+ ## Flows
85
+
86
+ In both flows of single and multiple agents - it is one user query to one agent using one tool (if needed).
87
+
88
+ An agent can have multiple tools and will choose the best one to answer the user query.
89
+
90
+ Routing is determined by optimal domain expertise of the agent for the user query.
91
+
92
+ When the agent uses a tool it feeds the tool output back into the agent to generate the final response.
93
+
94
+ This is important as tools generally output unstructured and unformatted data that the agent needs to prepare for the user.
95
+
96
+ Keep this in mind while designing your agentic systems using Solana Agent.
97
+
98
+ ```ascii
99
+ Single Agent
100
+
101
+ ┌────────┐ ┌─────────┐ ┌────────┐
102
+ │ │ │ │ │ │
103
+ │ │ │ │ │ │
104
+ │ User │◄──────►│ Agent │◄──────►│ Tool │
105
+ │ │ │ │ │ │
106
+ │ │ │ │ │ │
107
+ └────────┘ └─────────┘ └────────┘
108
+
109
+
110
+
111
+
112
+
113
+ Multiple Agents
114
+
115
+ ┌────────┐ ┌──────────┐ ┌─────────┐ ┌────────┐
116
+ │ │ │ │ │ │ │ │
117
+ │ │ │ │ │ │ │ │
118
+ ┌───►│ User ├───────►│ Router ├───────►│ Agent │◄──────►│ Tool │
119
+ │ │ │ │ │ │ │ │ │
120
+ │ │ │ │ │ │ │ │ │
121
+ │ └────────┘ └──────────┘ └────┬────┘ └────────┘
122
+ │ │
123
+ │ │
124
+ │ │
125
+ │ │
126
+ └───────────────────────────────────────────────┘
127
+ ```
128
+
84
129
  ## Usage
85
130
 
86
131
  ### Text/Text Streaming
@@ -112,6 +157,10 @@ async for response in solana_agent.process("user123", "What are the latest AI de
112
157
  print(response, end="")
113
158
  ```
114
159
 
160
+ OpenAI API calls with no tool call = 1 (text)
161
+
162
+ OpenAI API calls with tool call = 2 (text, text)
163
+
115
164
  ### Audio/Audio Streaming
116
165
 
117
166
  ```python
@@ -143,6 +192,10 @@ async for response in solana_agent.process("user123", audio_content, output_form
143
192
  print(response, end="")
144
193
  ```
145
194
 
195
+ OpenAI API calls with no tool call = 3 (audio transcribe, text, TTS)
196
+
197
+ OpenAI API calls with tool call = 4 (audio transcribe, text, text, TTS)
198
+
146
199
  ### Text/Audio Streaming
147
200
 
148
201
  ```python
@@ -172,6 +225,10 @@ async for response in solana_agent.process("user123", "What is the latest news o
172
225
  print(response, end="")
173
226
  ```
174
227
 
228
+ OpenAI API calls with no tool call = 2 (text, TTS)
229
+
230
+ OpenAI API calls with tool call = 3 (text, text, TTS)
231
+
175
232
  ### Audio/Text Streaming
176
233
 
177
234
  ```python
@@ -203,6 +260,10 @@ async for response in solana_agent.process("user123", audio_content, audio_input
203
260
  print(response, end="")
204
261
  ```
205
262
 
263
+ OpenAI API calls with no tool call = 2 (audio transcribe, text)
264
+
265
+ OpenAI API calls with tool call = 3 (audio transcribe, text, text)
266
+
206
267
  ## Optional Feature Configs
207
268
 
208
269
  ### Business Alignment
@@ -248,14 +309,14 @@ config = {
248
309
 
249
310
  This mode is great for text output where the default response from OpenAI is enough.
250
311
 
251
- However, it is also found to sometimes not not call tools when the tool should be called.
312
+ However, it is also found to sometimes to not call tools when the tool should be called.
252
313
 
253
- It is faster than calling `search_internet` from `sakit` and saves at least 2 API calls.
314
+ It is faster than calling `search_internet` from `sakit` by saving 2 API calls.
254
315
 
255
- The default mode is disabled due to the issue of not calling tools properly.
316
+ The default mode is disabled due to the issue of not calling tools properly and is not suitable for audio output.
256
317
 
257
318
  ```python
258
- async for response in solana_agent.process("user123", "Write me a poem.", internet_search=True):
319
+ async for response in solana_agent.process("user123", "What is the latest news on Canada?", internet_search=True):
259
320
  print(response, end="")
260
321
  ```
261
322
 
@@ -498,7 +559,19 @@ The official example app written in FastAPI and Next.js
498
559
 
499
560
  ## Agent Framework Comparisons
500
561
 
501
- [Compare Python Agent Frameworks](https://github.com/truemagic-coder/solana-agent/blob/main/compare.md)
562
+ [Compare Python Agent Frameworks](https://github.com/truemagic-coder/solana-agent/wiki/Agent-Framework-Comparisons)
563
+
564
+ ## Contributing
565
+
566
+ If you have a question, feedback, or feature request - please open a GitHub discussion.
567
+
568
+ If you find a bug - please open a GitHub issue.
569
+
570
+ We are currently accepting PRs if approved in discussions. Make sure all tests pass and the README & docs are updated.
571
+
572
+ To run the documentation site locally run `make livehtml` in the root directory.
573
+
574
+ To run the test suite locally run `poetry run pytest --cov=solana_agent --cov-report=html` in the root directory.
502
575
 
503
576
  ## License
504
577
 
@@ -57,6 +57,51 @@ You can install Solana Agent using pip:
57
57
 
58
58
  `pip install solana-agent`
59
59
 
60
+ ## Flows
61
+
62
+ In both flows of single and multiple agents - it is one user query to one agent using one tool (if needed).
63
+
64
+ An agent can have multiple tools and will choose the best one to answer the user query.
65
+
66
+ Routing is determined by optimal domain expertise of the agent for the user query.
67
+
68
+ When the agent uses a tool it feeds the tool output back into the agent to generate the final response.
69
+
70
+ This is important as tools generally output unstructured and unformatted data that the agent needs to prepare for the user.
71
+
72
+ Keep this in mind while designing your agentic systems using Solana Agent.
73
+
74
+ ```ascii
75
+ Single Agent
76
+
77
+ ┌────────┐ ┌─────────┐ ┌────────┐
78
+ │ │ │ │ │ │
79
+ │ │ │ │ │ │
80
+ │ User │◄──────►│ Agent │◄──────►│ Tool │
81
+ │ │ │ │ │ │
82
+ │ │ │ │ │ │
83
+ └────────┘ └─────────┘ └────────┘
84
+
85
+
86
+
87
+
88
+
89
+ Multiple Agents
90
+
91
+ ┌────────┐ ┌──────────┐ ┌─────────┐ ┌────────┐
92
+ │ │ │ │ │ │ │ │
93
+ │ │ │ │ │ │ │ │
94
+ ┌───►│ User ├───────►│ Router ├───────►│ Agent │◄──────►│ Tool │
95
+ │ │ │ │ │ │ │ │ │
96
+ │ │ │ │ │ │ │ │ │
97
+ │ └────────┘ └──────────┘ └────┬────┘ └────────┘
98
+ │ │
99
+ │ │
100
+ │ │
101
+ │ │
102
+ └───────────────────────────────────────────────┘
103
+ ```
104
+
60
105
  ## Usage
61
106
 
62
107
  ### Text/Text Streaming
@@ -88,6 +133,10 @@ async for response in solana_agent.process("user123", "What are the latest AI de
88
133
  print(response, end="")
89
134
  ```
90
135
 
136
+ OpenAI API calls with no tool call = 1 (text)
137
+
138
+ OpenAI API calls with tool call = 2 (text, text)
139
+
91
140
  ### Audio/Audio Streaming
92
141
 
93
142
  ```python
@@ -119,6 +168,10 @@ async for response in solana_agent.process("user123", audio_content, output_form
119
168
  print(response, end="")
120
169
  ```
121
170
 
171
+ OpenAI API calls with no tool call = 3 (audio transcribe, text, TTS)
172
+
173
+ OpenAI API calls with tool call = 4 (audio transcribe, text, text, TTS)
174
+
122
175
  ### Text/Audio Streaming
123
176
 
124
177
  ```python
@@ -148,6 +201,10 @@ async for response in solana_agent.process("user123", "What is the latest news o
148
201
  print(response, end="")
149
202
  ```
150
203
 
204
+ OpenAI API calls with no tool call = 2 (text, TTS)
205
+
206
+ OpenAI API calls with tool call = 3 (text, text, TTS)
207
+
151
208
  ### Audio/Text Streaming
152
209
 
153
210
  ```python
@@ -179,6 +236,10 @@ async for response in solana_agent.process("user123", audio_content, audio_input
179
236
  print(response, end="")
180
237
  ```
181
238
 
239
+ OpenAI API calls with no tool call = 2 (audio transcribe, text)
240
+
241
+ OpenAI API calls with tool call = 3 (audio transcribe, text, text)
242
+
182
243
  ## Optional Feature Configs
183
244
 
184
245
  ### Business Alignment
@@ -224,14 +285,14 @@ config = {
224
285
 
225
286
  This mode is great for text output where the default response from OpenAI is enough.
226
287
 
227
- However, it is also found to sometimes not not call tools when the tool should be called.
288
+ However, it is also found to sometimes to not call tools when the tool should be called.
228
289
 
229
- It is faster than calling `search_internet` from `sakit` and saves at least 2 API calls.
290
+ It is faster than calling `search_internet` from `sakit` by saving 2 API calls.
230
291
 
231
- The default mode is disabled due to the issue of not calling tools properly.
292
+ The default mode is disabled due to the issue of not calling tools properly and is not suitable for audio output.
232
293
 
233
294
  ```python
234
- async for response in solana_agent.process("user123", "Write me a poem.", internet_search=True):
295
+ async for response in solana_agent.process("user123", "What is the latest news on Canada?", internet_search=True):
235
296
  print(response, end="")
236
297
  ```
237
298
 
@@ -474,7 +535,19 @@ The official example app written in FastAPI and Next.js
474
535
 
475
536
  ## Agent Framework Comparisons
476
537
 
477
- [Compare Python Agent Frameworks](https://github.com/truemagic-coder/solana-agent/blob/main/compare.md)
538
+ [Compare Python Agent Frameworks](https://github.com/truemagic-coder/solana-agent/wiki/Agent-Framework-Comparisons)
539
+
540
+ ## Contributing
541
+
542
+ If you have a question, feedback, or feature request - please open a GitHub discussion.
543
+
544
+ If you find a bug - please open a GitHub issue.
545
+
546
+ We are currently accepting PRs if approved in discussions. Make sure all tests pass and the README & docs are updated.
547
+
548
+ To run the documentation site locally run `make livehtml` in the root directory.
549
+
550
+ To run the test suite locally run `poetry run pytest --cov=solana_agent --cov-report=html` in the root directory.
478
551
 
479
552
  ## License
480
553
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "solana-agent"
3
- version = "23.0.0"
3
+ version = "23.0.2"
4
4
  description = "Agentic IQ"
5
5
  authors = ["Bevan Hunt <bevan@bevanhunt.com>"]
6
6
  license = "MIT"
File without changes