Upstash Documentation

LangChain Deep Agents

2 min read

In this guide we'll give a LangChain Deep Agent a real computer to work in. The langchain-upstash-box package wraps an Upstash Box (a secure, isolated cloud container with a full Linux shell, filesystem, git, and a runtime) as a Deep Agents sandbox backend. The agent's shell and file tools then run inside the box instead of on your machine.


1. Installation#

Get a Box API key from the Upstash Console and export it:


2. Create a sandbox backend#

UpstashBoxSandbox.create() provisions a new box, waits until it is ready, and returns a backend that implements the Deep Agents SandboxBackendProtocol:

Info

The API key and base URL can also be passed directly as api_key= and base_url= arguments instead of the UPSTASH_BOX_API_KEY and UPSTASH_BOX_BASE_URL environment variables. The base URL defaults to https://us-east-1.box.upstash.com.

If you already have a box, wrap it by id instead of creating a new one:


3. Use with a Deep Agent#

Pass the sandbox as the agent's backend. Every shell command and file operation the agent performs now runs inside the box:

Note

The model="anthropic:..." shorthand requires langchain-anthropic (install with pip install "langchain[anthropic]") and an ANTHROPIC_API_KEY environment variable. Any LangChain chat model works here.


4. Cleanup#

You own the box lifecycle, so call sandbox.delete() when you are done. An idle box pauses automatically: its compute is released but the filesystem is kept, and it wakes up on the next command. The box itself stays around until you delete it.

Commands have a default execution timeout of 30 minutes. You can override it for the whole backend or per call:

To see everything else a box can do, like snapshots, git, previews, and schedules, check the Box quickstart.