@@ -457,27 +457,28 @@ def _execute_event_loop_cycle(self, callback_handler: Callable, kwargs: dict[str
457
457
Returns:
458
458
The result of the event loop cycle.
459
459
"""
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
469
470
470
471
try :
471
472
# Execute the main event loop cycle
472
473
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 ,
481
482
agent = self ,
482
483
event_loop_parent_span = self .trace_span ,
483
484
** kwargs ,
@@ -488,8 +489,8 @@ def _execute_event_loop_cycle(self, callback_handler: Callable, kwargs: dict[str
488
489
except ContextWindowOverflowException as e :
489
490
# Try reducing the context size and retrying
490
491
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 )
493
494
494
495
def _record_tool_execution (
495
496
self ,
0 commit comments