solana-agent 22.0.11__tar.gz → 23.0.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 (35) hide show
  1. {solana_agent-22.0.11 → solana_agent-23.0.0}/PKG-INFO +14 -5
  2. {solana_agent-22.0.11 → solana_agent-23.0.0}/README.md +13 -4
  3. {solana_agent-22.0.11 → solana_agent-23.0.0}/pyproject.toml +2 -2
  4. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/client/solana_agent.py +1 -1
  5. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/interfaces/client/client.py +1 -1
  6. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/interfaces/services/agent.py +1 -1
  7. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/interfaces/services/query.py +1 -1
  8. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/services/agent.py +1 -1
  9. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/services/query.py +1 -1
  10. {solana_agent-22.0.11 → solana_agent-23.0.0}/LICENSE +0 -0
  11. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/__init__.py +0 -0
  12. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/adapters/__init__.py +0 -0
  13. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/adapters/llm_adapter.py +0 -0
  14. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/adapters/mongodb_adapter.py +0 -0
  15. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/client/__init__.py +0 -0
  16. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/domains/__init__.py +0 -0
  17. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/domains/agent.py +0 -0
  18. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/domains/routing.py +0 -0
  19. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/factories/__init__.py +0 -0
  20. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/factories/agent_factory.py +0 -0
  21. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/interfaces/__init__.py +0 -0
  22. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/interfaces/plugins/plugins.py +0 -0
  23. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/interfaces/providers/data_storage.py +0 -0
  24. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/interfaces/providers/llm.py +0 -0
  25. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/interfaces/providers/memory.py +0 -0
  26. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/interfaces/services/routing.py +0 -0
  27. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/plugins/__init__.py +0 -0
  28. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/plugins/manager.py +0 -0
  29. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/plugins/registry.py +0 -0
  30. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/plugins/tools/__init__.py +0 -0
  31. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/plugins/tools/auto_tool.py +0 -0
  32. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/repositories/__init__.py +0 -0
  33. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/repositories/memory.py +0 -0
  34. {solana_agent-22.0.11 → solana_agent-23.0.0}/solana_agent/services/__init__.py +0 -0
  35. {solana_agent-22.0.11 → solana_agent-23.0.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: 22.0.11
3
+ Version: 23.0.0
4
4
  Summary: Agentic IQ
5
5
  License: MIT
6
6
  Keywords: ai,openai,ai agents,agi
@@ -244,10 +244,18 @@ config = {
244
244
  }
245
245
  ```
246
246
 
247
- ### Disable Internet Searching
247
+ ### Internet Search
248
+
249
+ This mode is great for text output where the default response from OpenAI is enough.
250
+
251
+ However, it is also found to sometimes not not call tools when the tool should be called.
252
+
253
+ It is faster than calling `search_internet` from `sakit` and saves at least 2 API calls.
254
+
255
+ The default mode is disabled due to the issue of not calling tools properly.
248
256
 
249
257
  ```python
250
- async for response in solana_agent.process("user123", "Write me a poem.", internet_search=False):
258
+ async for response in solana_agent.process("user123", "Write me a poem.", internet_search=True):
251
259
  print(response, end="")
252
260
  ```
253
261
 
@@ -292,7 +300,8 @@ config = {
292
300
  },
293
301
  "tools": {
294
302
  "search_internet": {
295
- "api_key": "your-perplexity-api-key",
303
+ "api_key": "your-api-key", # Required - either a Perplexity or OpenAI API key
304
+ "provider": "perplexity", # Optional, defaults to perplexity - can also be openai (lowercase)
296
305
  },
297
306
  },
298
307
  "agents": [
@@ -312,7 +321,7 @@ config = {
312
321
 
313
322
  solana_agent = SolanaAgent(config=config)
314
323
 
315
- async for response in solana_agent.process("user123", "What are the latest AI developments?", internet_search=False):
324
+ async for response in solana_agent.process("user123", "What are the latest AI developments?"):
316
325
  print(response, end="")
317
326
  ```
318
327
 
@@ -220,10 +220,18 @@ config = {
220
220
  }
221
221
  ```
222
222
 
223
- ### Disable Internet Searching
223
+ ### Internet Search
224
+
225
+ This mode is great for text output where the default response from OpenAI is enough.
226
+
227
+ However, it is also found to sometimes not not call tools when the tool should be called.
228
+
229
+ It is faster than calling `search_internet` from `sakit` and saves at least 2 API calls.
230
+
231
+ The default mode is disabled due to the issue of not calling tools properly.
224
232
 
225
233
  ```python
226
- async for response in solana_agent.process("user123", "Write me a poem.", internet_search=False):
234
+ async for response in solana_agent.process("user123", "Write me a poem.", internet_search=True):
227
235
  print(response, end="")
228
236
  ```
229
237
 
@@ -268,7 +276,8 @@ config = {
268
276
  },
269
277
  "tools": {
270
278
  "search_internet": {
271
- "api_key": "your-perplexity-api-key",
279
+ "api_key": "your-api-key", # Required - either a Perplexity or OpenAI API key
280
+ "provider": "perplexity", # Optional, defaults to perplexity - can also be openai (lowercase)
272
281
  },
273
282
  },
274
283
  "agents": [
@@ -288,7 +297,7 @@ config = {
288
297
 
289
298
  solana_agent = SolanaAgent(config=config)
290
299
 
291
- async for response in solana_agent.process("user123", "What are the latest AI developments?", internet_search=False):
300
+ async for response in solana_agent.process("user123", "What are the latest AI developments?"):
292
301
  print(response, end="")
293
302
  ```
294
303
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "solana-agent"
3
- version = "22.0.11"
3
+ version = "23.0.0"
4
4
  description = "Agentic IQ"
5
5
  authors = ["Bevan Hunt <bevan@bevanhunt.com>"]
6
6
  license = "MIT"
@@ -30,7 +30,7 @@ zep-cloud = "^2.9.0"
30
30
 
31
31
  [tool.poetry.group.dev.dependencies]
32
32
  pytest = "^8.3.5"
33
- pytest-cov = "^6.1.0"
33
+ pytest-cov = "^6.1.1"
34
34
  pytest-asyncio = "^0.26.0"
35
35
  pytest-mock = "^3.14.0"
36
36
  pytest-github-actions-annotate-failures = "^0.3.0"
@@ -56,7 +56,7 @@ class SolanaAgent(SolanaAgentInterface):
56
56
  "flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
57
57
  ] = "mp4",
58
58
  router: Optional[RoutingInterface] = None,
59
- internet_search: bool = True,
59
+ internet_search: bool = False,
60
60
  ) -> AsyncGenerator[Union[str, bytes], None]: # pragma: no cover
61
61
  """Process a user message and return the response stream.
62
62
 
@@ -24,7 +24,7 @@ class SolanaAgent(ABC):
24
24
  "flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
25
25
  ] = "mp4",
26
26
  router: Optional[RoutingInterface] = None,
27
- internet_search: bool = True,
27
+ internet_search: bool = False,
28
28
  ) -> AsyncGenerator[Union[str, bytes], None]:
29
29
  """Process a user message and return the response stream."""
30
30
  pass
@@ -34,7 +34,7 @@ class AgentService(ABC):
34
34
  "flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
35
35
  ] = "mp4",
36
36
  prompt: Optional[str] = None,
37
- internet_search: bool = True,
37
+ internet_search: bool = False,
38
38
  ) -> AsyncGenerator[Union[str, bytes], None]:
39
39
  """Generate a response from an agent."""
40
40
  pass
@@ -20,7 +20,7 @@ class QueryService(ABC):
20
20
  "flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
21
21
  ] = "mp4",
22
22
  prompt: Optional[str] = None,
23
- internet_search: bool = True,
23
+ internet_search: bool = False,
24
24
  ) -> AsyncGenerator[Union[str, bytes], None]:
25
25
  """Process the user request and generate a response."""
26
26
  pass
@@ -177,7 +177,7 @@ class AgentService(AgentServiceInterface):
177
177
  "flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
178
178
  ] = "mp4",
179
179
  prompt: Optional[str] = None,
180
- internet_search: bool = True,
180
+ internet_search: bool = False,
181
181
  ) -> AsyncGenerator[Union[str, bytes], None]: # pragma: no cover
182
182
  """Generate a response with support for text/audio input/output."""
183
183
  agent = next((a for a in self.agents if a.name == agent_name), None)
@@ -49,7 +49,7 @@ class QueryService(QueryServiceInterface):
49
49
  ] = "mp4",
50
50
  prompt: Optional[str] = None,
51
51
  router: Optional[RoutingServiceInterface] = None,
52
- internet_search: bool = True,
52
+ internet_search: bool = False,
53
53
  ) -> AsyncGenerator[Union[str, bytes], None]: # pragma: no cover
54
54
  """Process the user request with appropriate agent.
55
55
 
File without changes