Python: [BREAKING] Python: Make executor ID required, improvements around handling rehydrating checkpoints (#832)

* Make executor ID required, improvements around handling rehydrating checkpoints.

* Duplicate executor validation added

* fix remaining issues

---------

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
This commit is contained in:
Evan Mattson
2025-09-20 03:57:09 +09:00
committed by GitHub
Unverified
parent 7cd45e313b
commit aba094b5cf
33 changed files with 1967 additions and 275 deletions
@@ -43,7 +43,7 @@ class DispatchToExperts(Executor):
"""Dispatches the incoming prompt to all expert agent executors for parallel processing (fan out)."""
def __init__(self, expert_ids: list[str], id: str | None = None):
super().__init__(id)
super().__init__(id=id or "dispatch_to_experts")
self._expert_ids = expert_ids
@handler
@@ -71,7 +71,7 @@ class AggregateInsights(Executor):
"""Aggregates expert agent responses into a single consolidated result (fan in)."""
def __init__(self, expert_ids: list[str], id: str | None = None):
super().__init__(id)
super().__init__(id=id or "aggregate_insights")
self._expert_ids = expert_ids
@handler
@@ -61,7 +61,7 @@ class Split(Executor):
def __init__(self, map_executor_ids: list[str], id: str | None = None):
"""Store mapper ids so we can assign non overlapping ranges per mapper."""
super().__init__(id)
super().__init__(id=id or "split")
self._map_executor_ids = map_executor_ids
@handler
@@ -145,7 +145,7 @@ class Shuffle(Executor):
def __init__(self, reducer_ids: list[str], id: str | None = None):
"""Remember reducer ids so we can partition work deterministically."""
super().__init__(id)
super().__init__(id=id or "shuffle")
self._reducer_ids = reducer_ids
@handler