Currently all tools called by the planner are executed sequentially:
with self._operation_lock:
if self._active_operation is not None:
return ToolResult(
name=name,
result={"error": "another tool operation is still active"},
)
operation = _ToolOperation()
self._active_operation = operation
Read-only tools can be parallelized, while a tool that changes env state must be sequential and blocking. This dependency graph can be automated since all read-only tools are marked with @readonly annotations.
Currently all tools called by the planner are executed sequentially:
Read-only tools can be parallelized, while a tool that changes env state must be sequential and blocking. This dependency graph can be automated since all read-only tools are marked with @readonly annotations.