Skip to content

Commit 4f46209

Browse files
#133 Advanced logic for tools importing
1 parent 165bef2 commit 4f46209

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

sgr_agent_core/agent_factory.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,18 @@ async def create(cls, agent_def: AgentDefinition, task_messages: list[ChatComple
171171
Raises:
172172
ValueError: If agent creation fails
173173
"""
174-
# Resolve base_class (can be string, ImportString, or class)
174+
# Resolve base_class
175+
# Can be:
176+
# 1. Class object (already resolved, or was passed directly)
177+
# 2. String - either registry name or import string to resolve
178+
# Note: ImportString from Pydantic is already resolved to class by this point
175179
BaseClass: Type[Agent] | None = None
176180

177-
if isinstance(agent_def.base_class, str):
178-
# Try import string resolution first (for relative/absolute imports)
181+
if isinstance(agent_def.base_class, type):
182+
# Already a class (either passed directly or resolved from ImportString by Pydantic)
183+
BaseClass = agent_def.base_class
184+
elif isinstance(agent_def.base_class, str):
185+
# String - try import string resolution first (for relative/absolute imports)
179186
if "." in agent_def.base_class:
180187
# Import string - resolve dynamically
181188
try:
@@ -196,9 +203,6 @@ async def create(cls, agent_def: AgentDefinition, task_messages: list[ChatComple
196203
# If not resolved yet, try registry
197204
if BaseClass is None:
198205
BaseClass = AgentRegistry.get(agent_def.base_class)
199-
elif isinstance(agent_def.base_class, type):
200-
# Already a class
201-
BaseClass = agent_def.base_class
202206

203207
if BaseClass is None:
204208
error_msg = (

0 commit comments

Comments
 (0)