NAI OS

The pattern

Orchestrator, subagent, tool — the shape multiple systems share.

The pattern

Every system here is the same three parts. Learn them once and all three read quickly.

%%{init: {'theme':'neutral', 'flowchart':{'nodeSpacing':50,'rankSpacing':70}}}%%
flowchart TD
    H["You type a slash command"]

    subgraph TOP ["what you see: one command in, one result out"]
        direction LR
        C["ORCHESTRATOR<br/>decides what to do,<br/>dispatches in waves,<br/>synthesizes the answer"]
        OUT["Something you check,<br/>then act on yourself"]
    end

    H --> C
    C ==> OUT

    C -->|"Wave 1"| A1["SUBAGENT<br/>one job<br/>own context"]
    C -->|"Wave 1"| A2["SUBAGENT<br/>one job<br/>own context"]
    C -->|"Wave 2<br/>needs a file<br/>Wave 1 wrote"| A3["SUBAGENT<br/>one job<br/>own context"]

    A1 -.->|"one line back"| C
    A2 -.-> C
    A3 -.-> C

    A1 --> T["TOOLS<br/>web &middot; bank &middot; mailbox &middot; files<br/>the only route out"]
    A2 --> T
    A3 --> T

    classDef orch fill:#dcefe9,stroke:#0f6f63,stroke-width:2px
    classDef tool fill:#f4f1ea,stroke:#8a7a5a,stroke-width:2px
    classDef human fill:#fdf3e0,stroke:#8a5a00,stroke-width:2px
    classDef agent fill:#fff,stroke:#555
    class C orch
    class T tool
    class H,OUT human
    class A1,A2,A3 agent
    style TOP fill:#fcfbf9,stroke:#8a7a5a,stroke-width:1px
The shape shared across multiple systems. Solid arrows are dispatch; dotted arrows are handoffs — a file on disk, or a one-line summary back.

Orchestrator

The file behind the slash command, in .claude/commands/. It holds the judgement: which subagents to run, in what order, what to do when one reports missing data, and how to synthesize the result. It dispatches in waves — everything independent goes out in one message and runs at once; anything that needs another's output waits for the next wave.

Subagent

One job, in .claude/agents/, running in its own context. That isolation is the point: a collector can page through hundreds of bank transactions and none of that noise reaches the orchestrator, which only ever sees a one-line summary. Subagents hand off to each other through files on disk, never through conversation — which is what lets each one stay in its own context.

Tool

The only route out. Web, bank, mailbox, local files — if it is not a tool, the agent cannot touch it. Each subagent declares exactly which tools it may use, and that list is the entire extent of what it can do. Which turns out to be the whole trick — see why the promise holds and the vocabulary.

The promise

Each system takes a recurring job that used to eat an afternoon and hands back something ready to check. A morning briefing. A tax pack. A newsletter draft. You type one command; you read one result.

The rule everything else serves

They prepare. You decide and execute. No agent files a tax return, pays anyone, sends an email, or publishes a post. Every system stops one step short and hands you the work.

That is not a promise written in prose and hoped for. It is enforced by the tool layer above — by what each agent is physically able to reach. The boundary shows the mechanism.

If you remember one thing about this workspace, remember that the agents are built so they cannot take the last step, not merely instructed not to.

NextFour shapes of verification