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.Orchestrator-workers
Generate and delegate subtasks dynamically.
dynamic_task_decompositionRECORD STATUSCandidate · v0.1.0UML class view
The proposed contract drawn as participant roles, received calls, and numbered dependencies.
Object interactions
The same roles and calls as a class collaboration and a numbered message sequence.
Pointcut
Where the mechanism applies. All four dimensions belong to the proposed match, not just its vocabulary.
- 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.
Protected contract
The obligation that clients, operators, and auditors should be able to rely on.
- 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.
Variation & lifecycle
The hot spot is admitted only where the protected semantics survive.
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 + code design
An illustrative prompt and a small design sketch for the proposed contract. Names and APIs are invented; this is not a repository excerpt.
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.
Detection & matching
The frozen rule that retrieves this record, the canonical source exemplar, and the control that should stay unmatched.
- 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-sdk
examples/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 ↗
Repository files
Up to five public files retrieved by the frozen cue and pinned to the audited commit. A match is a place to inspect, not a confirmed implementation.
examples/01_standalone_sdk/42_file_based_subagents.py:24CANONICAL SOURCE02aaif-goose/goosecrates/goose-cli/src/cli.rs:1136RETRIEVAL CUE03agno-agi/agnolibs/agno/agno/eval/accuracy.py:302RETRIEVAL CUE04bytedance/deer-flowbackend/app/gateway/auth/oidc.py:429RETRIEVAL CUE05china-qijizhifeng/agentic-harness-engineeringevolve.py:3715RETRIEVAL CUEEvidence & provenance
Each layer answers a different question. Do not substitute retrieval for review.
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.
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 / 415c524ad65d81examples/01_standalone_sdk/42_file_based_subagents.py:24tests/sdk/subagent/test_subagent_registry.py:1Primary agent delegates to registered subagents.
Exploratory retrieval cue Regex / v0.1.0
(?i)\b(?:orchestrator|orchestrate|task[_-]?decomposition|worker[_-]?agent|dynamic[_-]?dispatch)\bThis expression is a discovery instrument only. A match is a retrieval cue—not a confirmed implementation, pointcut match, or contract proof.