NAI OS
Orchestrator, subagent, tool — the shape multiple systems share.
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 · bank · mailbox · 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 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.
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.
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.
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.
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 →