feat: add forked subagent context

This commit is contained in:
Peter Steinberger
2026-04-23 21:28:45 +01:00
parent abedf9c1f4
commit f5042adf27
19 changed files with 582 additions and 20 deletions

View File

@@ -78,13 +78,15 @@ four lifecycle points:
### Subagent lifecycle (optional)
OpenClaw currently calls one subagent lifecycle hook:
OpenClaw calls two optional subagent lifecycle hooks:
- **prepareSubagentSpawn** — prepare shared context state before a child run
starts. The hook receives parent/child session keys, `contextMode`
(`isolated` or `fork`), available transcript ids/files, and optional TTL.
If it returns a rollback handle, OpenClaw calls it when spawn fails after
preparation succeeds.
- **onSubagentEnded** — clean up when a subagent session completes or is swept.
The `prepareSubagentSpawn` hook is part of the interface for future use, but
the runtime does not invoke it yet.
### System prompt addition
The `assemble` method can return a `systemPromptAddition` string. OpenClaw
@@ -191,7 +193,7 @@ Optional members:
| `bootstrap(params)` | Method | Initialize engine state for a session. Called once when the engine first sees a session (e.g., import history). |
| `ingestBatch(params)` | Method | Ingest a completed turn as a batch. Called after a run completes, with all messages from that turn at once. |
| `afterTurn(params)` | Method | Post-run lifecycle work (persist state, trigger background compaction). |
| `prepareSubagentSpawn(params)` | Method | Set up shared state for a child session. |
| `prepareSubagentSpawn(params)` | Method | Set up shared state for a child session before it starts. |
| `onSubagentEnded(params)` | Method | Clean up after a subagent ends. |
| `dispose()` | Method | Release resources. Called during gateway shutdown or plugin reload — not per-session. |