Two Ways Agents Use Nullspace
| Shape | What Runs In Nullspace | Typical Owner |
|---|---|---|
| Direct sandbox workspace | Commands, files, PTY, SSH, desktop, templates, volumes, and preview services. | Your app, CLI script, local MCP agent, or in-sandbox coding agent. |
| Agent Deployment | A bundled local project with install and entrypoint metadata. | Nullspace operates the deployed job or service; your app owns framework state. |
Deployment Objects
| Object | Description |
|---|---|
| Agent project | The local directory you deploy. It contains app code, dependencies, and nullspace.agent.toml. |
| Config | The nullspace.agent.toml contract: name, mode, template, workdir, install, entrypoint, env names, permissions, service port, and outputs. |
| Bundle | The uploaded file set selected by [bundle] include and exclude, with local secrets and generated directories excluded. |
| Version | The immutable uploaded bundle plus config digest that a deployment can run. |
| Deployment | The stable name users operate with nullspace agent run, url, logs, status, sandbox, restart, stop, and delete. |
| Job run | One finite execution of a job deployment. It has a run ID, status, logs, outputs, and a backing sandbox. |
| Service instance | A long-running execution of a service deployment. It has a service ID, status, logs, URL metadata, and a backing sandbox. |
| Backing sandbox | The actual sandbox created for a run or service. It can be retained for PTY, SSH, command, file, or desktop debugging. |
| Outputs | Files or directories declared in [outputs] and published as run metadata after a job exits. |
| Framework state | OpenAI Agents SDK traces and approvals, Claude sessions, LangGraph thread IDs and checkpoints, CrewAI memory, or custom state. This stays app-owned. |
Runtime Shapes
Current live modes arejob and service.
| Mode | Use For | Execution |
|---|---|---|
job | Finite work such as report generation, repository review, evaluation, CrewAI runs, or Claude Agent SDK tasks. | Creates a run record, starts a sandbox, executes the entrypoint, records logs and outputs, then exits. |
service | HTTP/WebSocket servers, LangGraph APIs, chat backends, or custom coordinators. | Starts a process in a sandbox, checks readiness, and optionally exposes a public URL. |
worker, triggered, workspace, and interactive are reserved for future
deployment models. Do not build public docs or configs that imply they are
currently live.
State Boundary
Nullspace run IDs are not conversation session IDs. Framework session, thread, checkpoint, or flow state stays app-owned. Use volumes, retained sandboxes, hibernate/auto-resume, or an external database for durable state. This boundary matters in framework integrations:- OpenAI Agents SDK tracing, handoffs, and approval state stay in the Agents SDK app.
- Claude Agent SDK or Claude Code session files should live in a volume or app-managed storage if they must survive sandbox cleanup.
- LangGraph thread IDs and checkpoints stay in your checkpointer storage.
- CrewAI flow state and memory remain app-owned.
Warm Pool Decisions
Agents should create and wait for a template warm pool before a burst when many sandboxes should start from the same ready custom template and cold fallback is either expensive or unacceptable. Use fork when agents should branch from one running mutable setup. Use hibernate or auto-resume when one sandbox should pause and continue later. Use volumes when data must survive sandbox cleanup. Template warm pools do not preserve per-run mutable state; a checkout becomes a normal sandbox and is not recycled. Agent recipe:- Build or identify the template.
- Create the pool and wait for
min_ready. - Create sandboxes with explicit
warm_pool=pool.id. - Use
warm_pool_mode="prefer"for latency improvement, orwarm_pool_mode="require"when cold fallback is not acceptable. - Drain or delete the pool after the burst.
Debug Surface
Every Agent Deployment run or service is backed by a normal sandbox. When you retain that sandbox, you can inspect it with the same tools used elsewhere in Nullspace:- PTY for an interactive terminal.
- SSH when local tools expect OpenSSH.
- Commands and files for scripted inspection.
- Desktop Environments when the agent used a GUI.
- Debug retained sandboxes for the retained failure workflow.