Research: OpenClaw subagent orchestration v2 architecture #120
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Competitor
Kind/Documentation
Kind/Enhancement
Kind/Epic
Kind/Feature
Kind/Security
Kind/Story
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Scope/Core
Scope/Cross-Plugin
Scope/Plugin-System
Scope/Single-Plugin
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ultanio/cobot#120
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
OpenClaw recently shipped a major subagent refactoring across multiple PRs. This documents their architecture decisions as reference for cobot's own agent orchestration design.
Key Changes
1. Nested Subagent Orchestration (openclaw#14447)
The foundational refactor. Subagents went from fire-and-forget to a proper orchestration system:
subagentstool withlist,steer,killactions — models can manage their own children at runtimemaxSpawnDepth(default 1) andmaxChildrenPerAgentcaps. Depth-1 orchestrators can spawn; leaf workers cannotprocess.pollwith timeout — single long-poll replaces rapid poll loops (reduces token churn)[System Message]— prevents model from leaking internal context as user-visible replies2. Completion Injection into Requester Session (openclaw#26516)
Fixed a gap where direct channel delivery skipped injecting results into the requester session. Orchestration chains would stall because the parent never received the completion signal.
3. Subagent Lifecycle Hooks (openclaw#24925)
Typed internal hook events with exactly-once guarantees:
complete,error,timeout,killedinternalHookEmittedRunIds) prevents double-firing when lifecycle listener andagent.waitrace4. Thread-bound Subagent Routing (openclaw#23913)
Preserves
threadIdin nested announce injections so thread-bound subagents route announcements back to the correct thread.5. Reliability Fixes
SOUL.md,IDENTITY.md,USER.md) added to subagent bootstrap allowlist (openclaw#24979)6. Orchestration v2 Plan (openclaw#27810)
Internal plan doc proposing next phase: typed announce outcomes, explicit state transitions, reconciliation loop.
Architecture Pattern Summary
Key design decisions:
Relevance to Cobot
Cobot's plugin architecture could adopt similar patterns:
This is a reference document, not a direct implementation plan.