@@ -289,18 +289,22 @@ def __init__(
289
289
config_loader = AgentConfigLoader ()
290
290
configured_agent = config_loader .load_agent (agent_config )
291
291
292
+ # There is an odd mypy type discrepancy in this file for some reason
293
+ # There is a mismatch between src.strands.* and strands.*
294
+ # type/ignore annotations allow type checking to pass
295
+
292
296
# Override config values with any explicitly provided parameters
293
297
if model is not None :
294
298
configured_agent .model = (
295
- BedrockModel () if not model else BedrockModel (model_id = model ) if isinstance (model , str ) else model
299
+ BedrockModel () if not model else BedrockModel (model_id = model ) if isinstance (model , str ) else model # type: ignore
296
300
)
297
301
if messages is not None :
298
302
configured_agent .messages = messages
299
303
if tools is not None :
300
304
# Need to reinitialize tool registry with new tools
301
- configured_agent .tool_registry = ToolRegistry ()
305
+ configured_agent .tool_registry = ToolRegistry () # type: ignore
302
306
configured_agent .tool_registry .process_tools (tools )
303
- configured_agent .tool_registry .initialize_tools (load_tools_from_directory )
307
+ configured_agent .tool_registry .initialize_tools (load_tools_from_directory ) # type: ignore
304
308
if system_prompt is not None :
305
309
configured_agent .system_prompt = system_prompt
306
310
if not isinstance (callback_handler , _DefaultCallbackHandlerSentinel ):
@@ -309,7 +313,7 @@ def __init__(
309
313
else :
310
314
configured_agent .callback_handler = callback_handler
311
315
if conversation_manager is not None :
312
- configured_agent .conversation_manager = conversation_manager
316
+ configured_agent .conversation_manager = conversation_manager # type: ignore
313
317
if trace_attributes is not None :
314
318
configured_agent .trace_attributes = {}
315
319
for k , v in trace_attributes .items ():
@@ -325,17 +329,17 @@ def __init__(
325
329
configured_agent .description = description
326
330
if state is not None :
327
331
if isinstance (state , dict ):
328
- configured_agent .state = AgentState (state )
332
+ configured_agent .state = AgentState (state ) # type: ignore
329
333
elif isinstance (state , AgentState ):
330
- configured_agent .state = state
334
+ configured_agent .state = state # type: ignore
331
335
else :
332
336
raise ValueError ("state must be an AgentState object or a dict" )
333
337
if hooks is not None :
334
338
for hook in hooks :
335
- configured_agent .hooks .add_hook (hook )
339
+ configured_agent .hooks .add_hook (hook ) # type: ignore
336
340
if session_manager is not None :
337
- configured_agent ._session_manager = session_manager
338
- configured_agent .hooks .add_hook (session_manager )
341
+ configured_agent ._session_manager = session_manager # type: ignore
342
+ configured_agent .hooks .add_hook (session_manager ) # type: ignore
339
343
340
344
# Override record_direct_tool_call and load_tools_from_directory only if explicitly provided
341
345
if record_direct_tool_call is not None :
@@ -344,9 +348,9 @@ def __init__(
344
348
configured_agent .load_tools_from_directory = load_tools_from_directory
345
349
if load_tools_from_directory :
346
350
if hasattr (configured_agent , "tool_watcher" ):
347
- configured_agent .tool_watcher = ToolWatcher (tool_registry = configured_agent .tool_registry )
351
+ configured_agent .tool_watcher = ToolWatcher (tool_registry = configured_agent .tool_registry ) # type: ignore
348
352
else :
349
- configured_agent .tool_watcher = ToolWatcher (tool_registry = configured_agent .tool_registry )
353
+ configured_agent .tool_watcher = ToolWatcher (tool_registry = configured_agent .tool_registry ) # type: ignore
350
354
351
355
# Copy all attributes from configured agent to self
352
356
self .__dict__ .update (configured_agent .__dict__ )
@@ -455,10 +459,10 @@ def _load_config(self, config: Union[str, Path, Dict[str, Any]]) -> Dict[str, An
455
459
456
460
if suffix in [".yaml" , ".yml" ]:
457
461
with open (config_path , "r" , encoding = "utf-8" ) as f :
458
- return yaml .safe_load (f )
462
+ return dict [ str , Any ]( yaml .safe_load (f ) )
459
463
elif suffix == ".json" :
460
464
with open (config_path , "r" , encoding = "utf-8" ) as f :
461
- return json .load (f )
465
+ return dict [ str , Any ]( json .load (f ) )
462
466
else :
463
467
raise ValueError (f"Unsupported config file format: { suffix } . Supported formats: .yaml, .yml, .json" )
464
468
0 commit comments