Docker sandbox integration for Deep Agents.
This package exposes DockerSandbox as the Deep Agents-compatible backend and DockerSandboxRuntime as the lower-level Docker runtime.
When/if the project is published to PyPI end users should be able to install with:
pip install deepagents-docker-sandboxThe project installs deepagents from PyPI by default, so a standalone checkout can run with uv sync --group test or the test commands below.
from deepagents_docker_sandbox import DockerSandbox
with DockerSandbox.create(default_timeout=120) as sandbox:
result = sandbox.execute("echo hello")
print(result.output)For direct access to the lower-level Docker runtime:
from deepagents_docker_sandbox import DockerSandboxRuntime
with DockerSandboxRuntime.create() as runtime:
runtime.write_file("/tmp/hello.txt", "hello")
result = runtime.run("cat /tmp/hello.txt")
print(result.stdout)This package requires a working Docker daemon for real sandbox execution.
The default runtime creates a container from python:3.11-slim, injects a small helper process, exposes that helper on a random host port, and applies conservative resource and security settings.
Docker isolation depends on the host Docker daemon and container configuration. Do not treat this package as a complete multi-tenant security boundary without additional host hardening, image controls, network controls, and workload isolation.
Default suite:
PYTHONPATH=src uv run --group test pytest -qDocker-gated runtime round trip:
DEEPAGENTS_DOCKER_SANDBOX_TESTS=1 PYTHONPATH=src uv run --group test pytest tests/test_docker_runtime.py::test_optional_docker_runtime_roundtrip -qDeep Agents standard sandbox integration checks:
DEEPAGENTS_DOCKER_SANDBOX_RUN_INTEGRATION=1 PYTHONPATH=src uv run --group test pytest tests/integration_tests -qExample notebooks live in notebooks/ and are not part of the installed library.
Releases are published through GitHub Actions with PyPI Trusted Publishing.
Configure pending trusted publishers on TestPyPI and PyPI for the deepagents-docker-sandbox project:
- Owner:
Alex2Yang97 - Repository:
deepagents_docker_sandbox - Workflow:
publish.yml - TestPyPI environment:
testpypi - PyPI environment:
pypi
In GitHub repository settings, create matching Actions environments:
testpypi: allow manual deployments frommain.pypi: require reviewer approval and restrict deployments to release tags matchingv*when available.
Protect main with pull request reviews, required CI status checks, resolved conversations, and disabled force pushes/deletions before publishing production releases.
- Open a pull request and wait for the CI workflow to pass.
- Run the
Publishworkflow manually frommainto publish the current version to TestPyPI. - Smoke test the TestPyPI package in a clean environment:
python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ deepagents-docker-sandbox==0.0.1
python -c "from deepagents_docker_sandbox import DockerSandboxRuntime; print(DockerSandboxRuntime)"- Create and push a version tag, for example
v0.0.1, to publish the same version to PyPI.
Before tagging a release, keep the version in pyproject.toml and src/deepagents_docker_sandbox/_version.py synchronized.