Processes and Threads Are Back, as Agents and Sub-Agents
OS solved the concurrency problem decades ago. The same trade-offs (isolation vs shared state, overhead vs speed, fault containment vs blast radius) are showing up in multi-agent Systems
Operating systems solved the “one program at a time” problem decades ago. Processes run in their own memory space. Isolated. One crashes, the others survive. Threads share the parent’s memory. Lighter, faster to create, but a rogue thread takes down the whole process.
AI coding agents are walking the same path right now.
A single agent runs inside one context window. Sequential reasoning, all tasks in one stream. Anthropic’s own architecture taxonomy, from their 2026 Agentic Coding Trends Report, puts it plainly: “one context window, sequential processing, all tasks in one thread.” That works fine for a bug fix. It breaks the moment the task outgrows what fits in a single context.
Multi-agent systems mirror multi-process design. Each agent gets its own context window, reasons independently, and works in parallel. One agent’s hallucination stays contained in its own context, just like a segfault stays contained in its own process. But passing context between agents is the IPC of the AI world, and every handoff burns tokens.
When Opus 4.6 shipped in February 2026, it introduced Agent Teams, a feature that gives multiple Claude Code instances their own separate context windows. Anthropic tested the capability at scale: 16 agents, each in its own context window, each working on a different subsystem of a C compiler written in Rust. A lead agent coordinated through message passing — the agent equivalent of IPC. Two weeks of autonomous, parallel execution produced 100,000 lines of code that pass 99% of compiler torture tests. The bill came to $20,000. Full isolation, full parallelism, and $20,000 worth of coordination overhead.
Sub-agents are the threads. An orchestrator decomposes a task and hands pieces to specialists that inherit the parent’s understanding. Faster to spin up, cheaper to run. According to an Anthropic customer story, one of the top frontline hiring platforms uses an orchestrator that coordinates sub-agents for candidate screening and document generation, cutting fulfillment center staffing from weeks to 72 hours. But if a sub-agent hallucinates into the shared context, it poisons the whole task. Same failure mode as a thread corrupting the heap.
The engineering question hasn’t changed in 40 years: when do you need isolation (separate agents, separate context windows, contained failures) and when do you need shared state (sub-agents, inherited context, accepted blast radius)?
We already know this design space. The vocabulary changed. The trade-offs didn’t.



