@@ -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