solana-agent 31.2.5__tar.gz → 31.2.6__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-31.2.5 → solana_agent-31.2.6}/PKG-INFO +2 -2
- {solana_agent-31.2.5 → solana_agent-31.2.6}/pyproject.toml +2 -2
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/domains/routing.py +10 -4
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/services/routing.py +17 -22
- {solana_agent-31.2.5 → solana_agent-31.2.6}/LICENSE +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/README.md +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/__init__.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/adapters/__init__.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/adapters/ffmpeg_transcoder.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/adapters/mongodb_adapter.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/adapters/openai_adapter.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/adapters/openai_realtime_ws.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/adapters/pinecone_adapter.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/cli.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/client/__init__.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/client/solana_agent.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/domains/__init__.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/domains/agent.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/factories/__init__.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/factories/agent_factory.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/guardrails/pii.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/__init__.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/client/client.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/guardrails/guardrails.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/plugins/plugins.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/providers/audio.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/providers/data_storage.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/providers/llm.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/providers/memory.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/providers/realtime.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/providers/vector_storage.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/services/agent.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/services/knowledge_base.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/services/query.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/services/routing.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/plugins/__init__.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/plugins/manager.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/plugins/registry.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/plugins/tools/__init__.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/plugins/tools/auto_tool.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/repositories/__init__.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/repositories/memory.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/services/__init__.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/services/agent.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/services/knowledge_base.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/services/query.py +0 -0
- {solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/services/realtime.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: solana-agent
|
3
|
-
Version: 31.2.
|
3
|
+
Version: 31.2.6
|
4
4
|
Summary: AI Agents for Solana
|
5
5
|
License: MIT
|
6
6
|
Keywords: solana,solana ai,solana agent,ai,ai agent,ai agents
|
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
16
16
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
17
17
|
Requires-Dist: instructor (==1.11.3)
|
18
|
-
Requires-Dist: llama-index-core (==0.14.
|
18
|
+
Requires-Dist: llama-index-core (==0.14.1)
|
19
19
|
Requires-Dist: llama-index-embeddings-openai (==0.5.1)
|
20
20
|
Requires-Dist: logfire (==4.7.0)
|
21
21
|
Requires-Dist: openai (==1.107.2)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "solana-agent"
|
3
|
-
version = "31.2.
|
3
|
+
version = "31.2.6"
|
4
4
|
description = "AI Agents for Solana"
|
5
5
|
authors = ["Bevan Hunt <bevan@bevanhunt.com>"]
|
6
6
|
license = "MIT"
|
@@ -30,7 +30,7 @@ pymongo = "4.15.0"
|
|
30
30
|
zep-cloud = "3.4.3"
|
31
31
|
instructor = "1.11.3"
|
32
32
|
pinecone = { version = "7.3.0", extras = ["asyncio"] }
|
33
|
-
llama-index-core = "0.14.
|
33
|
+
llama-index-core = "0.14.1"
|
34
34
|
llama-index-embeddings-openai = "0.5.1"
|
35
35
|
pypdf = "6.0.0"
|
36
36
|
scrubadub = "2.0.1"
|
@@ -10,9 +10,15 @@ class QueryAnalysis(BaseModel):
|
|
10
10
|
description="Name of the primary agent that should handle this query (must be one of the available agent names)",
|
11
11
|
)
|
12
12
|
secondary_agents: List[str] = Field(
|
13
|
-
|
13
|
+
default_factory=list,
|
14
14
|
description="Names of secondary agents that might be helpful (must be from the available agent names)",
|
15
15
|
)
|
16
|
-
complexity_level: int = Field(
|
17
|
-
|
18
|
-
|
16
|
+
complexity_level: int = Field(
|
17
|
+
default=1, description="Complexity level (1-5)", ge=1, le=5
|
18
|
+
)
|
19
|
+
topics: List[str] = Field(
|
20
|
+
default_factory=list, description="Key topics in the query"
|
21
|
+
)
|
22
|
+
confidence: float = Field(
|
23
|
+
default=0.5, description="Confidence in the analysis", ge=0.0, le=1.0
|
24
|
+
)
|
@@ -1,11 +1,3 @@
|
|
1
|
-
"""
|
2
|
-
Routing service implementation.
|
3
|
-
|
4
|
-
This service manages query routing to appropriate agents using an LLM-based
|
5
|
-
analysis. It defaults to a small, low-cost model for routing to minimize
|
6
|
-
overhead while maintaining quality.
|
7
|
-
"""
|
8
|
-
|
9
1
|
import logging
|
10
2
|
from typing import Dict, List, Optional, Any
|
11
3
|
from solana_agent.interfaces.services.routing import (
|
@@ -81,17 +73,18 @@ class RoutingService(RoutingServiceInterface):
|
|
81
73
|
|
82
74
|
USER QUERY: {query}
|
83
75
|
|
76
|
+
ROUTING RULES:
|
77
|
+
- Match the user query to the agent whose specialization best fits the user's intent
|
78
|
+
- Return the EXACT agent name that matches best
|
79
|
+
|
84
80
|
INSTRUCTIONS:
|
85
|
-
-
|
86
|
-
-
|
87
|
-
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
3. complexity_level: 1-5 (5 being most complex)
|
93
|
-
4. topics: Key topics mentioned
|
94
|
-
5. confidence: 0.0-1.0 (how confident you are in this routing decision)
|
81
|
+
- primary_agent: The exact name of the best matching agent (e.g., "onboarding", "event_feedback")
|
82
|
+
- secondary_agents: Other agents that might help (usually empty)
|
83
|
+
- complexity_level: 1-5 (5 being most complex)
|
84
|
+
- topics: Key topics mentioned
|
85
|
+
- confidence: 0.0-1.0 (how confident you are in this routing decision)
|
86
|
+
|
87
|
+
For the query "{query}", which agent should handle it?
|
95
88
|
"""
|
96
89
|
|
97
90
|
try:
|
@@ -114,12 +107,14 @@ class RoutingService(RoutingServiceInterface):
|
|
114
107
|
"confidence": analysis.confidence,
|
115
108
|
}
|
116
109
|
except Exception as e:
|
117
|
-
logger.error(f"Error analyzing query: {e}")
|
110
|
+
logger.error(f"Error analyzing query: {e}")
|
111
|
+
logger.debug(f"Query that failed: {query}")
|
112
|
+
logger.debug(f"Available agents: {list(agents.keys())}")
|
118
113
|
# Return default analysis on error
|
114
|
+
first_agent = list(agents.keys())[0] if agents else "general"
|
115
|
+
logger.debug(f"Defaulting to first agent: {first_agent}")
|
119
116
|
return {
|
120
|
-
"primary_specialization":
|
121
|
-
if agents
|
122
|
-
else "general",
|
117
|
+
"primary_specialization": first_agent,
|
123
118
|
"secondary_specializations": [],
|
124
119
|
"complexity_level": 1,
|
125
120
|
"topics": [],
|
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
|
{solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/guardrails/guardrails.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/providers/data_storage.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/providers/vector_storage.py
RENAMED
File without changes
|
File without changes
|
{solana_agent-31.2.5 → solana_agent-31.2.6}/solana_agent/interfaces/services/knowledge_base.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
|