Prerequisites
- An agent you can modify, and a configured LLM model
- The MCP manager reachable from the worker, since the shell tool calls its sandbox control plane
- Familiarity with sandbox sessions — the sandbox belongs to the task, so files persist between commands within one task
Steps
Equip the agent with the shell tool
The shell is a built-in code tool named The response carries the agent’s
agentarea/shell. Add it when creating
the agent:id. Keep it for the next step.Verify
Poll the task until it reaches a terminal state:0 alongside its captured stdout. A
non-zero exit code means the command ran and failed, which is different from the
tool failing to run it — the distinction matters when debugging.
To confirm the sandbox itself was allocated, look for a pod labelled with the
task ID:
Troubleshooting
The agent says it has no shell tool, or never calls bash
The agent says it has no shell tool, or never calls bash
Built-in tools are disclosed progressively rather than all being present in
every prompt, so the agent may need to activate the tool source before the
tool appears. Check the event stream for an
activate_tool_source call. If
the agent is not activating it, make the instruction explicit about using
the shell tool. Confirm the tool name is exactly agentarea/shell — an
unknown name is equipped without error and simply never resolves.The tool returns "shell tool is not configured"
The tool returns "shell tool is not configured"
The worker has no MCP manager URL, so there is no sandbox control plane to
call. This is a deployment problem rather than an agent one: check the
worker’s MCP manager setting and that the manager is reachable from the
worker.
A long command reaches its deadline
A long command reaches its deadline
The Go manager resolves an omitted timeout from
SANDBOX_DEFAULT_EXECUTION_TIMEOUT_SECONDS and rejects values above
SANDBOX_MAX_EXECUTION_TIMEOUT_SECONDS ; the data-plane provider cannot
silently shorten the persisted command contract. See
limits .Files written by one command are missing in the next
Files written by one command are missing in the next
Within a single task they should persist, because commands execute in the
same pod. If they do not, the provider session was likely reclaimed between
commands — check whether the task idled past its lease, and see
debug a failed task .
pip install or npm install fails with a read-only or permission error
pip install or npm install fails with a read-only or permission error
The task does not select an
allowed or locked profile. The operator owns
the single runtime image and filesystem/network policy for the deployment.
Inspect that runtime and its isolation attestation; see
sandbox isolation .Related
Collect artifacts and logs
Getting output out
Limits
The ceilings that apply
Sandbox isolation
Deployment-owned runtime policy
Debug a failed task
When a command misbehaves
Sandbox sessions
Why state persists per task