Skip to main content
A deep agent is a multi-step agent that runs durable, code-executing work — it plans, composes other agents, and keeps a working filesystem across steps. It is built on the same authoring surface as any agent — the Agent contract — so there is no separate framework to learn. “Deep agents” is a concept word for that behavior, not a platform module: the depth is durable, code-executing behavior, not a new kind of object. There is no separate “deep agent” module or framework behind them: a deep agent is registered and run exactly like any other agent, against the same Agent ABC.

Sub-agents

The contract carries a neutral sub-agent descriptor. An agent declares the sub-agents it can call, and the agents runtime constructs the live, typed sub-agent from that descriptor at run time. This is how a top-level agent delegates part of its work to a more specialised one and assembles a multi-step result. Because sub-agents are ordinary agents, everything on the agents page applies to them: the same registration, the same typed stream events, and the same run tool.

The ready-made agents

The platform ships ready-made deep agents you enable from the manifest, rather than authoring them yourself. They are part of the batteries-included default set — usable platform content — so their usage lives in-site: see the agents plugin for the per-agent reference and the guide for enabling and running each one.

Durable execution via the sandbox

A deep agent reaches the same sandbox seam every code-executing agent does, and there are two patterns for how it does so. In the session-driving pattern the agent drives an external code runtime inside a sandbox session over the SandboxSession contract. In the durable-scratch-backend pattern the agent’s working filesystem is a sandbox backend over that same contract, so its scratch files persist and reap under the operator’s durability settings. Either way the sandbox is a hard prerequisite: an agent whose scratch backend is the sandbox fails loudly when no sandbox provider is installed, so installing one is not an optional add-on.

Crash-resume

A long detached run can be re-driven from its durable checkpoint plus its persistent workspace after a process recycle — when the operator turns crash-resume on. Re-drive is at-least-once. With crash-resume off, a recycled run accepts the risk and surfaces loudly. It is a setting, not a default.

Authored deep agents

A deep agent’s configuration can itself be saved and versioned as an authored agent — a preset that bakes the agent’s preset-bakeable fields and rides the versioning spine. That lets you evolve a multi-step agent’s wiring over time without breaking the callers that run it. See the author-an-agent guide for the authoring path, the use-the-ready-made-agents guide for worked runs, operate/sandbox for installing a provider, and the Python SDK reference for the sub-agent descriptor and the Agent ABC.