Catalog/W family/W04
Proposed specificationSource-located exemplarH1

Orchestrator-workers

Generate and delegate subtasks dynamically.

JOIN POINTdynamic_task_decompositionRECORD STATUSCandidate · v0.1.0
UML class view for Orchestrator-workers, showing participant roles, received calls, and analytical dependencies
FIG. W04 / UML CLASS VIEW
Object interaction diagram for Orchestrator-workers, showing role collaboration and a numbered message sequence
FIG. W04 / OBJECT INTERACTIONS
Context
A lead agent can generate tasks rather than call a fixed pipeline.
Trigger
The orchestrator decomposes a goal or dispatches a subtask.
Structure
Task plan, worker selection, delegation envelope, and synthesis step.
Effect
Synthesized output accounts for generated task results and delegated authority.
Requires
Workers advertise capabilities and share a task/result protocol.
Ensures
Every dispatched task has a result or failure and the final answer links them.
Invariant
Dynamic dispatch cannot create unbounded uncounted worker expansion.
Violation
Unsplittable, failed, or duplicate work is reflected in synthesis.

Negative control

A fixed sequence of sub-agents is W01 rather than dynamic W04.

Permitted variation

Planner-executor, manager-worker, sub-agent registry, and dynamic graph.

Test obligation

Test decomposition quality, worker failure, duplicate task, and recursion cap.

Evolution question

Did fixed chains evolve into runtime task planning?

PROMPT SKETCH
Decompose the task into worker-sized units, dispatch each with a task record, and require a result or failure for every dispatched task before composing the answer.
CODE DESIGN / PYTHON
def orchestrate(task, workers):
    tasks = planner.decompose(task)
    pending = {item.id: workers.dispatch(item) for item in tasks}
    results = {}
    for task_id, handle in pending.items():
        results[task_id] = handle.result_or_failure()
    if any(isinstance(result, Failure) for result in results.values()):
        return PartialResult(results)
    return composer.compose(results)

Illustrative design sketch. Dynamic decomposition is bounded by the result ledger, not by the planner's confidence. This example is a teaching aid, not implementation evidence or a conformance claim.

Join point
dynamic_task_decomposition
Source locator
Anthropic
Lexical cue
(?i)\b(?:orchestrator|orchestrate|task[_-]?decomposition|worker[_-]?agent|dynamic[_-]?dispatch)\bFrozen expression, v0.1.0. A match is a retrieval cue, not a confirmed implementation.
Aliases
None
Canonical exemplar
OpenHands/software-agent-sdkexamples/01_standalone_sdk/42_file_based_subagents.py:24Support: tests/sdk/subagent/test_subagent_registry.py:1
Negative control
A fixed sequence of sub-agents is W01 rather than dynamic W04.

Scope-anchored review. pohe-agent analyze <repo> --pattern W04 anchors the cue to its enclosing declaration and checks a separate operational signature for all four pointcut dimensions. Missing roles and negative-control risks remain visible; a structural match is not E2/E3. Calibration report ↗

Source-located exemplar

A concrete source anchor is available for this proposed record. It is one exemplar, not evidence that all repositories—or every contract field—conform.

Review boundary: this candidate and its specification come from an AI-assisted study. Independent human validation remains open.

ANY-EVIDENCE FAMILY COVERAGE30/36

83.3% of repository families in the frozen panel have at least one current cue, historical cue, or canonical source layer. This is not confirmed prevalence.

Current lexical-cue repositories: 33 / 41
Canonical source anchorOpenHands/software-agent-sdk 5c524ad65d81examples/01_standalone_sdk/42_file_based_subagents.py:24

Primary agent delegates to registered subagents.

Exploratory retrieval cue Regex / v0.1.0
(?i)\b(?:orchestrator|orchestrate|task[_-]?decomposition|worker[_-]?agent|dynamic[_-]?dispatch)\b

This expression is a discovery instrument only. A match is a retrieval cue—not a confirmed implementation, pointcut match, or contract proof.