Initialize the tool executor. Args: main_agent_tool_manager: Tool manager for main agent sub_agent_tool_managers: Dictionary of tool managers for sub-agents output_formatter: Formatter for tool results task_log: Logger for task execut
(
self,
main_agent_tool_manager: ToolManager,
sub_agent_tool_managers: Dict[str, ToolManager],
output_formatter: OutputFormatter,
task_log: TaskLog,
stream_handler: StreamHandler,
max_consecutive_rollbacks: int = 5,
)
| 36 | """ |
| 37 | |
| 38 | def __init__( |
| 39 | self, |
| 40 | main_agent_tool_manager: ToolManager, |
| 41 | sub_agent_tool_managers: Dict[str, ToolManager], |
| 42 | output_formatter: OutputFormatter, |
| 43 | task_log: TaskLog, |
| 44 | stream_handler: StreamHandler, |
| 45 | max_consecutive_rollbacks: int = 5, |
| 46 | ): |
| 47 | """ |
| 48 | Initialize the tool executor. |
| 49 | |
| 50 | Args: |
| 51 | main_agent_tool_manager: Tool manager for main agent |
| 52 | sub_agent_tool_managers: Dictionary of tool managers for sub-agents |
| 53 | output_formatter: Formatter for tool results |
| 54 | task_log: Logger for task execution |
| 55 | stream_handler: Handler for streaming events |
| 56 | max_consecutive_rollbacks: Maximum allowed consecutive rollbacks |
| 57 | """ |
| 58 | self.main_agent_tool_manager = main_agent_tool_manager |
| 59 | self.sub_agent_tool_managers = sub_agent_tool_managers |
| 60 | self.output_formatter = output_formatter |
| 61 | self.task_log = task_log |
| 62 | self.stream = stream_handler |
| 63 | self.max_consecutive_rollbacks = max_consecutive_rollbacks |
| 64 | |
| 65 | # Track used queries to detect duplicates |
| 66 | self.used_queries: Dict[str, Dict[str, int]] = {} |
| 67 | |
| 68 | def fix_tool_call_arguments(self, tool_name: str, arguments: dict) -> dict: |
| 69 | """ |
nothing calls this directly
no outgoing calls
no test coverage detected