Orchestration is converging on coordination written as code. Instead of a model emitting one tool call per worker, harnesses drive fan-out from a program (Deep Agents' dynamic subagents), generate a harness per task (Claude Code Dynamic Workflows), or let a plain JavaScript or Python script spawn Claude Code, Codex, and other agents side by side. Control flow becomes deterministic, testable code around non-deterministic agents, and mixing providers becomes a lever for decorrelated errors.
Topology is a cost decision. A central orchestrator is easy to trace but is a throughput bottleneck and a single point of failure; removing it cut task cost about 50% in one study. The value sits in the interface contracts between agents (structured handoffs, explicit roles, what context each sub-agent sees), not in how many agents run.
The runtime substrate is load-bearing. Where each sub-agent runs, what files and state it sees, and how work survives a crash decide reliability. Options span a Postgres recipe (SKIP LOCKED dispatch, primary-key checkpoints, leases), purpose-built queues with leases and dead-letter states, and Google's Kubernetes-style AX.
Harnesses are becoming managed platforms. Microsoft's Agent Framework and Foundry Hosted Agents are GA, LangChain's Managed Deep Agents is in beta, and OpenAI's Agents API sells the Codex harness as a service. Enterprises already run Strands, LangGraph, and Deep Agents in production (see multi-agent). The counterweight is portability: AWS argues for patterns that survive a multi-framework, multi-model estate, and a practitioner guide reserves graph frameworks for long-running stateful workflows.
The open question is which layer to own. Managed runtimes remove the plumbing but tie durable state, memory, and evals to one vendor. Code-driven, provider-agnostic orchestration keeps you portable at the cost of running the substrate yourself.