@@ -457,27 +457,28 @@ def _execute_event_loop_cycle(self, callback_handler: Callable, kwargs: dict[str
457457 Returns:
458458 The result of the event loop cycle.
459459 """
460- kwargs .pop ("agent" , None )
461- kwargs .pop ("model" , None )
462- kwargs .pop ("system_prompt" , None )
463- kwargs .pop ("tool_execution_handler" , None )
464- kwargs .pop ("event_loop_metrics" , None )
465- kwargs .pop ("callback_handler" , None )
466- kwargs .pop ("tool_handler" , None )
467- kwargs .pop ("messages" , None )
468- kwargs .pop ("tool_config" , None )
460+ # Extract parameters with fallbacks to instance values
461+ system_prompt = kwargs .pop ("system_prompt" , self .system_prompt )
462+ model = kwargs .pop ("model" , self .model )
463+ tool_execution_handler = kwargs .pop ("tool_execution_handler" , self .thread_pool_wrapper )
464+ event_loop_metrics = kwargs .pop ("event_loop_metrics" , self .event_loop_metrics )
465+ callback_handler_override = kwargs .pop ("callback_handler" , callback_handler )
466+ tool_handler = kwargs .pop ("tool_handler" , self .tool_handler )
467+ messages = kwargs .pop ("messages" , self .messages )
468+ tool_config = kwargs .pop ("tool_config" , self .tool_config )
469+ kwargs .pop ("agent" , None ) # Remove agent to avoid conflicts
469470
470471 try :
471472 # Execute the main event loop cycle
472473 stop_reason , message , metrics , state = event_loop_cycle (
473- model = self . model ,
474- system_prompt = self . system_prompt ,
475- messages = self . messages , # will be modified by event_loop_cycle
476- tool_config = self . tool_config ,
477- callback_handler = callback_handler ,
478- tool_handler = self . tool_handler ,
479- tool_execution_handler = self . thread_pool_wrapper ,
480- event_loop_metrics = self . event_loop_metrics ,
474+ model = model ,
475+ system_prompt = system_prompt ,
476+ messages = messages , # will be modified by event_loop_cycle
477+ tool_config = tool_config ,
478+ callback_handler = callback_handler_override ,
479+ tool_handler = tool_handler ,
480+ tool_execution_handler = tool_execution_handler ,
481+ event_loop_metrics = event_loop_metrics ,
481482 agent = self ,
482483 event_loop_parent_span = self .trace_span ,
483484 ** kwargs ,
@@ -488,8 +489,8 @@ def _execute_event_loop_cycle(self, callback_handler: Callable, kwargs: dict[str
488489 except ContextWindowOverflowException as e :
489490 # Try reducing the context size and retrying
490491
491- self .conversation_manager .reduce_context (self . messages , e = e )
492- return self ._execute_event_loop_cycle (callback_handler , kwargs )
492+ self .conversation_manager .reduce_context (messages , e = e )
493+ return self ._execute_event_loop_cycle (callback_handler_override , kwargs )
493494
494495 def _record_tool_execution (
495496 self ,
0 commit comments