solana-agent 27.5.0__py3-none-any.whl → 28.1.0__py3-none-any.whl
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/adapters/openai_adapter.py +45 -21
- solana_agent/factories/agent_factory.py +31 -86
- solana_agent/interfaces/providers/llm.py +1 -1
- solana_agent/services/agent.py +421 -311
- {solana_agent-27.5.0.dist-info → solana_agent-28.1.0.dist-info}/METADATA +35 -43
- {solana_agent-27.5.0.dist-info → solana_agent-28.1.0.dist-info}/RECORD +8 -8
- {solana_agent-27.5.0.dist-info → solana_agent-28.1.0.dist-info}/LICENSE +0 -0
- {solana_agent-27.5.0.dist-info → solana_agent-28.1.0.dist-info}/WHEEL +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: solana-agent
|
3
|
-
Version:
|
3
|
+
Version: 28.1.0
|
4
4
|
Summary: AI Agents for Solana
|
5
5
|
License: MIT
|
6
6
|
Keywords: solana,solana ai,solana agent,ai,ai agent,ai agents
|
@@ -17,6 +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: logfire (>=3.14.0,<4.0.0)
|
20
21
|
Requires-Dist: openai (>=1.75.0,<2.0.0)
|
21
22
|
Requires-Dist: pinecone (>=6.0.2,<7.0.0)
|
22
23
|
Requires-Dist: pydantic (>=2)
|
@@ -59,9 +60,11 @@ Build your AI agents in three lines of code!
|
|
59
60
|
* Intelligent Routing
|
60
61
|
* Business Alignment
|
61
62
|
* Extensible Tooling
|
63
|
+
* Automatic Tool Workflows
|
62
64
|
* Knowledge Base
|
63
65
|
* MCP Support
|
64
66
|
* Guardrails
|
67
|
+
* Pydantic Logfire
|
65
68
|
* Tested & Secure
|
66
69
|
* Built in Python
|
67
70
|
* Powers [CometHeart](https://cometheart.com)
|
@@ -73,6 +76,7 @@ Build your AI agents in three lines of code!
|
|
73
76
|
* Fast AI responses
|
74
77
|
* Solana Ecosystem Integration via [AgentiPy](https://github.com/niceberginc/agentipy)
|
75
78
|
* MCP tool usage with first-class support for [Zapier](https://zapier.com/mcp)
|
79
|
+
* Integrated observability and tracing via [Pydantic Logfire](https://logfire.pydantic.dev/)
|
76
80
|
* Designed for a multi-agent swarm
|
77
81
|
* Seamless text and audio streaming with real-time multi-modal processing
|
78
82
|
* Persistent memory that preserves context across all agent interactions
|
@@ -84,26 +88,28 @@ Build your AI agents in three lines of code!
|
|
84
88
|
* Assigned tools are utilized by agents automatically and effectively
|
85
89
|
* Integrated Knowledge Base with semantic search and automatic PDF chunking
|
86
90
|
* Input and output guardrails for content filtering, safety, and data sanitization
|
91
|
+
* Automatic sequential tool workflows allowing agents to chain multiple tools
|
87
92
|
|
88
93
|
## Stack
|
89
94
|
|
90
95
|
### Tech
|
91
96
|
|
92
97
|
* [Python](https://python.org) - Programming Language
|
93
|
-
* [OpenAI](https://openai.com)
|
98
|
+
* [OpenAI](https://openai.com) - AI Model Provider
|
94
99
|
* [MongoDB](https://mongodb.com) - Conversational History (optional)
|
95
100
|
* [Zep Cloud](https://getzep.com) - Conversational Memory (optional)
|
96
101
|
* [Pinecone](https://pinecone.io) - Knowledge Base (optional)
|
102
|
+
* [AgentiPy](https://agentipy.fun) - Solana Ecosystem (optional)
|
103
|
+
* [Zapier](https://zapier.com) - App Integrations (optional)
|
104
|
+
* [Pydantic Logfire](https://logfire.pydantic.dev) - Observability and Tracing (optional)
|
97
105
|
|
98
|
-
###
|
106
|
+
### AI Models Used
|
99
107
|
|
100
|
-
* [gpt-4.1
|
108
|
+
* [gpt-4.1](https://platform.openai.com/docs/models/gpt-4.1) (agent)
|
101
109
|
* [gpt-4.1-nano](https://platform.openai.com/docs/models/gpt-4.1-nano) (router)
|
102
110
|
* [text-embedding-3-large](https://platform.openai.com/docs/models/text-embedding-3-large) or [text-embedding-3-small](https://platform.openai.com/docs/models/text-embedding-3-small) (embedding)
|
103
111
|
* [tts-1](https://platform.openai.com/docs/models/tts-1) (audio TTS)
|
104
112
|
* [gpt-4o-mini-transcribe](https://platform.openai.com/docs/models/gpt-4o-mini-transcribe) (audio transcription)
|
105
|
-
* [gemini-2.5-flash-preview](https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview) (optional)
|
106
|
-
* [grok-3-mini-fast-beta](https://docs.x.ai/docs/models#models-and-pricing) (optional)
|
107
113
|
|
108
114
|
## Installation
|
109
115
|
|
@@ -113,13 +119,13 @@ You can install Solana Agent using pip:
|
|
113
119
|
|
114
120
|
## Flows
|
115
121
|
|
116
|
-
In both flows of single and multiple agents - it is one user query to one agent using one
|
122
|
+
In both flows of single and multiple agents - it is one user query to one agent using one or many tools (if needed).
|
117
123
|
|
118
|
-
An agent can have multiple tools and will choose the best
|
124
|
+
An agent can have multiple tools and will choose the best ones to fulfill the user's query.
|
119
125
|
|
120
|
-
Routing is determined by optimal domain expertise of the agent for the user query.
|
126
|
+
Routing is determined by optimal domain expertise of the agent for the user's query.
|
121
127
|
|
122
|
-
When the agent uses
|
128
|
+
When the agent uses tools it feeds the tools output back to itself to generate the final response.
|
123
129
|
|
124
130
|
This is important as tools generally output unstructured and unformatted data that the agent needs to prepare for the user.
|
125
131
|
|
@@ -128,13 +134,13 @@ Keep this in mind while designing your agentic systems using Solana Agent.
|
|
128
134
|
```ascii
|
129
135
|
Single Agent
|
130
136
|
|
131
|
-
┌────────┐ ┌─────────┐
|
132
|
-
│ │ │ │ │
|
133
|
-
│ │ │ │ │
|
134
|
-
│ User │◄──────►│ Agent │◄──────►│
|
135
|
-
│ │ │ │ │
|
136
|
-
│ │ │ │ │
|
137
|
-
└────────┘ └─────────┘
|
137
|
+
┌────────┐ ┌─────────┐ ┌────────-┐
|
138
|
+
│ │ │ │ │ │
|
139
|
+
│ │ │ │ │ │
|
140
|
+
│ User │◄──────►│ Agent │◄──────►│ Tools │
|
141
|
+
│ │ │ │ │ │
|
142
|
+
│ │ │ │ │ │
|
143
|
+
└────────┘ └─────────┘ └────────-┘
|
138
144
|
|
139
145
|
|
140
146
|
|
@@ -142,13 +148,13 @@ Keep this in mind while designing your agentic systems using Solana Agent.
|
|
142
148
|
|
143
149
|
Multiple Agents
|
144
150
|
|
145
|
-
┌────────┐ ┌──────────┐ ┌─────────┐
|
146
|
-
│ │ │ │ │ │ │
|
147
|
-
│ │ │ │ │ │ │
|
148
|
-
┌───►│ User ├───────►│ Router ├───────►│ Agent │◄──────►│
|
149
|
-
│ │ │ │ │ │ │ │
|
150
|
-
│ │ │ │ │ │ │ │
|
151
|
-
│ └────────┘ └──────────┘ └────┬────┘
|
151
|
+
┌────────┐ ┌──────────┐ ┌─────────┐ ┌────────-┐
|
152
|
+
│ │ │ │ │ │ │ │
|
153
|
+
│ │ │ │ │ │ │ │
|
154
|
+
┌───►│ User ├───────►│ Router ├───────►│ Agent │◄──────►│ Tools │
|
155
|
+
│ │ │ │ │ │ │ │ │
|
156
|
+
│ │ │ │ │ │ │ │ │
|
157
|
+
│ └────────┘ └──────────┘ └────┬────┘ └────────-┘
|
152
158
|
│ │
|
153
159
|
│ │
|
154
160
|
│ │
|
@@ -319,26 +325,12 @@ config = {
|
|
319
325
|
}
|
320
326
|
```
|
321
327
|
|
322
|
-
###
|
323
|
-
|
324
|
-
This allows Gemini to replace OpenAI for agent and router.
|
325
|
-
|
326
|
-
```python
|
327
|
-
config = {
|
328
|
-
"gemini": {
|
329
|
-
"api_key": "your-gemini-api-key",
|
330
|
-
},
|
331
|
-
}
|
332
|
-
```
|
333
|
-
|
334
|
-
### Grok
|
335
|
-
|
336
|
-
This allows Grok to replace OpenAI (or Gemini) for agent.
|
328
|
+
### Observability and Tracing
|
337
329
|
|
338
330
|
```python
|
339
331
|
config = {
|
340
|
-
"
|
341
|
-
"api_key": "your-
|
332
|
+
"logfire": {
|
333
|
+
"api_key": "your-logfire-write-token",
|
342
334
|
},
|
343
335
|
}
|
344
336
|
```
|
@@ -533,8 +525,8 @@ class MyOutputGuardrail(OutputGuardrail):
|
|
533
525
|
|
534
526
|
Tools can be used from plugins like Solana Agent Kit (sakit) or via inline tools. Tools available via plugins integrate automatically with Solana Agent.
|
535
527
|
|
536
|
-
* Agents can
|
537
|
-
* Agents choose the best
|
528
|
+
* Agents can use multiple tools per response and should apply the right sequential order (like send an email to bob@bob.com with the latest news on Solana)
|
529
|
+
* Agents choose the best tools for the job
|
538
530
|
* Solana Agent doesn't use OpenAI function calling (tools) as they don't support async functions
|
539
531
|
* Solana Agent tools are async functions
|
540
532
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
solana_agent/__init__.py,sha256=g83qhMOCwcWL19V4CYbQwl0Ykpb0xn49OUh05i-pu3g,1001
|
2
2
|
solana_agent/adapters/__init__.py,sha256=tiEEuuy0NF3ngc_tGEcRTt71zVI58v3dYY9RvMrF2Cg,204
|
3
3
|
solana_agent/adapters/mongodb_adapter.py,sha256=0KWIa6kaFbUFvtKUzuV_0p0RFlPPGKrDVIEU2McVY3k,2734
|
4
|
-
solana_agent/adapters/openai_adapter.py,sha256=
|
4
|
+
solana_agent/adapters/openai_adapter.py,sha256=iDAOKZkN4x2yNarDIrS71w6ufjKnC-wlT3iZFOXCoY4,12099
|
5
5
|
solana_agent/adapters/pinecone_adapter.py,sha256=SDbf_XJMuFDKhNfF25_VXaYG3vrmYyPIo2SyhaniEwg,23048
|
6
6
|
solana_agent/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
7
|
solana_agent/client/solana_agent.py,sha256=jUGWxYJL9ZWxGsVX9C6FrRQyX7r6Cep0ijcfm7cbkJI,10098
|
@@ -9,14 +9,14 @@ solana_agent/domains/__init__.py,sha256=HiC94wVPRy-QDJSSRywCRrhrFfTBeHjfi5z-QfZv
|
|
9
9
|
solana_agent/domains/agent.py,sha256=3Q1wg4eIul0CPpaYBOjEthKTfcdhf1SAiWc2R-IMGO8,2561
|
10
10
|
solana_agent/domains/routing.py,sha256=1yR4IswGcmREGgbOOI6TKCfuM7gYGOhQjLkBqnZ-rNo,582
|
11
11
|
solana_agent/factories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
|
-
solana_agent/factories/agent_factory.py,sha256=
|
12
|
+
solana_agent/factories/agent_factory.py,sha256=_tBCzx-QIAkGg0v47GiGaQIH7xjlF_5zAt7VFEyqu6k,12273
|
13
13
|
solana_agent/guardrails/pii.py,sha256=FCz1IC3mmkr41QFFf5NaC0fwJrVkwFsxgyOCS2POO5I,4428
|
14
14
|
solana_agent/interfaces/__init__.py,sha256=IQs1WIM1FeKP1-kY2FEfyhol_dB-I-VAe2rD6jrVF6k,355
|
15
15
|
solana_agent/interfaces/client/client.py,sha256=hsvaQiQdz3MLMNc77oD6ocvvnyl7Ez2n087ptFDA19M,3687
|
16
16
|
solana_agent/interfaces/guardrails/guardrails.py,sha256=gZCQ1FrirW-mX6s7FoYrbRs6golsp-x269kk4kQiZzc,572
|
17
17
|
solana_agent/interfaces/plugins/plugins.py,sha256=Rz52cWBLdotwf4kV-2mC79tRYlN29zHSu1z9-y1HVPk,3329
|
18
18
|
solana_agent/interfaces/providers/data_storage.py,sha256=Y92Cq8BtC55VlsYLD7bo3ofqQabNnlg7Q4H1Q6CDsLU,1713
|
19
|
-
solana_agent/interfaces/providers/llm.py,sha256=
|
19
|
+
solana_agent/interfaces/providers/llm.py,sha256=Wxn0qXIk7BmpI0FBrhjJVV6DmsfLUpUauZR-pE3brz8,2395
|
20
20
|
solana_agent/interfaces/providers/memory.py,sha256=h3HEOwWCiFGIuFBX49XOv1jFaQW3NGjyKPOfmQloevk,1011
|
21
21
|
solana_agent/interfaces/providers/vector_storage.py,sha256=XPYzvoWrlDVFCS9ItBmoqCFWXXWNYY-d9I7_pvP7YYk,1561
|
22
22
|
solana_agent/interfaces/services/agent.py,sha256=YsxyvBPK3ygBEStLyL4BwmIl84NMrV3dK0PlwCFoyq0,2094
|
@@ -31,11 +31,11 @@ solana_agent/plugins/tools/auto_tool.py,sha256=uihijtlc9CCqCIaRcwPuuN7o1SHIpWL2G
|
|
31
31
|
solana_agent/repositories/__init__.py,sha256=fP83w83CGzXLnSdq-C5wbw9EhWTYtqE2lQTgp46-X_4,163
|
32
32
|
solana_agent/repositories/memory.py,sha256=YYpCyiDVi3a5ZOFYFkzBS6MDjo9g2TnwbEZ5KKfKbII,7204
|
33
33
|
solana_agent/services/__init__.py,sha256=iko0c2MlF8b_SA_nuBGFllr2E3g_JowOrOzGcnU9tkA,162
|
34
|
-
solana_agent/services/agent.py,sha256=
|
34
|
+
solana_agent/services/agent.py,sha256=9FB1Tj7v8JwJVVmZwK8IOSrBbgbV4iFZOtFHzw3gcEs,41780
|
35
35
|
solana_agent/services/knowledge_base.py,sha256=J9V8dNoCCcko3EasiGwK2JJ_A_oG_e-Ni9pgNg0T6wA,33486
|
36
36
|
solana_agent/services/query.py,sha256=bAoUfe_2EBVEVeh99-2E9KZ0zaHUzf7Lqel3rlHyNX8,17459
|
37
37
|
solana_agent/services/routing.py,sha256=-0fNIKDtCn0-TLUYDFYAE4jPLMeI_jCXIpgtgWDpdf8,6986
|
38
|
-
solana_agent-
|
39
|
-
solana_agent-
|
40
|
-
solana_agent-
|
41
|
-
solana_agent-
|
38
|
+
solana_agent-28.1.0.dist-info/LICENSE,sha256=BnSRc-NSFuyF2s496l_4EyrwAP6YimvxWcjPiJ0J7g4,1057
|
39
|
+
solana_agent-28.1.0.dist-info/METADATA,sha256=OP8i0NO-3L_nMBRlXjx8GbWAdrdW7Gub8T1k0_6gMKE,27151
|
40
|
+
solana_agent-28.1.0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
41
|
+
solana_agent-28.1.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|