Skip to main content

subagent-io

File-IO protocol for parent ↔ subagent communication. Parent writes input.txt + context.json, subagent appends to output.txt with [ROUND END] sentinels. Used with Monitor tool for live observation.

Zur Installation springen

Quellinformationen

Repository
XHXIAIEIN/orchestrator
Letzte Quellaktivität
26. April 2026 um 18:20
Erkannte Sprache von SKILL.md
Englisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
subagent-io
description
File-IO protocol for parent ↔ subagent communication. Parent writes input.txt + context.json, subagent appends to output.txt with [ROUND END] sentinels. Used with Monitor tool for live observation.
# Subagent IO Protocol ## Identity You are the subagent file-IO protocol. Parent and subagent communicate through a shared `temp/{task_id}/` directory using a fixed file contract: `input.txt` (task spec, parent → subagent), `output.txt` (subagent's turn-by-turn log, subagent → parent), `reply.txt` (parent's mid-task response, parent → subagent), `context.json` (metadata). The `[ROUND END]` sentinel marks turn boundaries in `output.txt` so the parent can use Monitor to tail it. ## How You Work ### Directory Layout ``` temp/{task_id}/ input.txt # task spec (parent writes once at dispatch) output.txt # subagent appends each turn (one round per [ROUND END]) reply.txt # parent writes when injecting mid-task input context.json # absolute paths + metadata _stop.txt # parent writes to abort subagent (consume-once) _keyinfo.txt # parent writes to inject into next prompt prefix (consume-once) _intervene.txt # parent writes [PARENT INTERVENTION] block (consume-once) ``` The `_stop` / `_keyinfo` / `_intervene` files belong to the [subagent-intervention](../subagent-intervention/SKILL.md) skill — they are listed here for completeness of the directory layout. ### File contracts | File | Writer | Reader | Lifetime | Encoding | |------|--------|--------|----------|----------| | `input.txt` | parent (once) | subagent (once at start) | task | UTF-8 | | `output.txt` | subagent (append per turn) | parent (Monitor tail) | task | UTF-8 | | `reply.txt` | parent (overwrite) | subagent (read + delete) | per-turn | UTF-8 | | `context.json` | parent (once) | subagent (read once) | task | UTF-8 JSON | ### context.json schema ```json { "task_id": "abc-123", "temp_dir": "D:/proj/temp/abc-123/", "parent_task": "high-level goal description", "iteration_budget": 20, "verbose": false } ``` All paths in `context.json` MUST be **absolute**. Relative paths break when subagent's CWD differs from parent's. ### output.txt format Each subagent turn appends: ``` <turn content — analysis, tool calls, results> [ROUND END] ``` The literal `[ROUND END]\n` sentinel terminates each turn. Parent's Monitor tail uses this sentinel to detect "subagent finished a turn, OK to inspect / intervene". When `--verbose` (i.e., `context.json.verbose == true`) is set, the subagent also appends raw tool stdin/stdout to `output.txt` between turn content and `[ROUND END]`. ### reply.txt protocol When parent wants to inject input mid-task (without using `_intervene.txt`'s [PARENT INTERVENTION] formatting): 1. Parent writes new content to `temp/{task_id}/reply.txt` (overwrite, not append). 2. Subagent at next turn start checks `reply.txt`; if present, reads content and appends to its prompt. 3. Subagent deletes `reply.txt` after consuming. ### Monitor integration Parent uses the `Monitor` tool to tail `output.txt`: - Each `[ROUND END]` line is a notification trigger. - On notification, parent reads the last turn's content and decides whether to intervene. - Parent never blocks on subagent — Monitor is push-based. ## Output Format When dispatching a subagent with this protocol, the parent emits a setup block: ``` [subagent-io] Dispatching task abc-123 temp_dir: D:/proj/temp/abc-123/ input: <preview of input.txt first 200 chars> context: {"task_id": "abc-123", "iteration_budget": 20} monitor: tailing output.txt for [ROUND END] ``` ## Quality Bar - All paths in `context.json` are absolute. Never relative. - `[ROUND END]` is a literal string with a trailing `\n` — never variant capitalization or punctuation. - Subagent never writes to `_stop` / `_keyinfo` / `_intervene` (those are parent → subagent only). - `temp/{task_id}/` is cleaned by the parent after task completion. Subagent does not delete its own dir. ## Boundaries - This protocol is for sub-agent dispatches that need live parent observability. For one-shot subagent calls (parent waits for full result, no intervention), use the standard Agent tool without this overhead. - File-based IPC is durable across crashes. If parent dies mid-task, the subagent's `output.txt` remains for postmortem. - Step 27 of the impl plan is documentation; runtime adapter wiring is a future code task.
Auf GitHub ansehen