Lightning AI sandbox integration for Deep Agents
Project description
langchain-lightning
Lightning AI sandbox integration for Deep Agents.
Quick Install
pip install langchain-lightning
Deep Agents SDK
from lightning_sdk.sandbox import Sandbox
from langchain_lightning import LightningSandbox, ensure_workdir
# python313 ships python3, which Deep Agents file tools require.
sandbox = Sandbox.create(
instance_type="cpu-1",
runtime="python313",
persistent=True, # optional: stop/resume by id across runs
)
ensure_workdir(sandbox, "/root")
backend = LightningSandbox(sandbox=sandbox)
try:
result = backend.execute("python3 --version && echo hello")
print(result.output)
finally:
sandbox.delete()
Reconnect to a durable sandbox (auto-resumes when paused):
from lightning_sdk.sandbox import Sandbox
from langchain_lightning import LightningSandbox, ensure_workdir, resume_if_needed
sandbox = resume_if_needed(Sandbox().get("sbx_..."))
ensure_workdir(sandbox, "/root")
backend = LightningSandbox(sandbox=sandbox)
The backend also works with async Deep Agents via the inherited aexecute,
aupload_files, adownload_files, and related methods (the Lightning SDK is
synchronous, so these run on a worker thread).
Deep Agents Code
Install langchain-lightning into the dcode environment, then run with the
Lightning sandbox provider:
dcode --install langchain-lightning --package
export LIGHTNING_API_KEY=...
dcode --sandbox lightning
The provider defaults:
| Setting | Default |
|---|---|
| runtime | python313 (has python3) |
| instance type | cpu-1 |
| sandbox lifetime | 30 minutes |
| workdir | /root |
| persistent | false |
Optional env vars: LIGHTNING_SANDBOX_RUNTIME, LIGHTNING_SANDBOX_IMAGE,
LIGHTNING_SANDBOX_INSTANCE_TYPE, LIGHTNING_SANDBOX_TIMEOUT (seconds),
LIGHTNING_SANDBOX_PERSISTENT, LIGHTNING_SANDBOX_NETWORK_POLICY,
LIGHTNING_CLOUD_URL.
When reconnecting by sandbox id, the provider resumes paused/stopped persistent sandboxes and ensures the workdir exists.
What is this?
langchain-lightning adapts an existing Lightning AI sandbox to the Deep Agents
sandbox protocol. It implements the execute, upload_files, and
download_files primitives over the lightning_sdk.sandbox SDK; Deep Agents
derives the rest of the filesystem operations (ls, read, write, edit,
grep, glob) from those.
Commands run detached and are awaited so per-command timeouts are honored. File transfer is bridged through base64 so arbitrary binary content round-trips losslessly despite Lightning's text-based file API.
For SDK use, this package intentionally does not hide Lightning sandbox
lifecycle management. Use the Lightning SDK to create, connect to, configure,
and delete sandboxes, then pass the sandbox object to LightningSandbox.
For Deep Agents Code, the package also exposes a dcode sandbox provider entry
point. The provider creates, reconnects to, and deletes Lightning sandboxes for
dcode --sandbox lightning.
[!NOTE] Deep Agents runs its file operations with
python3inside the sandbox, so create sandboxes with a runtime that ships a Python interpreter (e.g.runtime="python313", the default for the provider). The bare default CPU image does not include Python.
Contributing
Contributions are welcome. Keep the adapter focused on implementing the Deep Agents sandbox backend protocol over the official Lightning SDK.
Development
uv sync --group test
make test
make lint
Integration tests require LIGHTNING_API_KEY and hit the real Lightning API
(create / shell / files / pause-resume):
export LIGHTNING_API_KEY=...
make integration_tests
CI runs unit tests on every PR and live integration tests when the
LIGHTNING_API_KEY repository secret is available (same-repo PRs, pushes to
main, nightly schedule, and manual workflow_dispatch).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file langchain_lightning-1.0.1.tar.gz.
File metadata
- Download URL: langchain_lightning-1.0.1.tar.gz
- Upload date:
- Size: 246.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b637418139e31450a8f3a723df905a140de818a1d1685b377230ec66ffd07eb2
|
|
| MD5 |
37bc037b64743eed6c3094b73b42382b
|
|
| BLAKE2b-256 |
5092a0511bdaec90d19b93db71d240d0b869029efa4ae4371bd983a35bd35582
|
Provenance
The following attestation bundles were made for langchain_lightning-1.0.1.tar.gz:
Publisher:
release.yml on Lightning-AI/langchain-lightning
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
langchain_lightning-1.0.1.tar.gz -
Subject digest:
b637418139e31450a8f3a723df905a140de818a1d1685b377230ec66ffd07eb2 - Sigstore transparency entry: 2138248065
- Sigstore integration time:
-
Permalink:
Lightning-AI/langchain-lightning@4012271ff1a2ecfe3876c2306f19cb0244c05b31 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/Lightning-AI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4012271ff1a2ecfe3876c2306f19cb0244c05b31 -
Trigger Event:
release
-
Statement type:
File details
Details for the file langchain_lightning-1.0.1-py3-none-any.whl.
File metadata
- Download URL: langchain_lightning-1.0.1-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20c6493ca4e486a13bb609b5abf4a6f14c6535182e7742450a3b86b175c7e75d
|
|
| MD5 |
17c315f110b113f90c9b638ebfe91194
|
|
| BLAKE2b-256 |
70b82cf7a99b188fe3e0bc68503125d0072c6c8d5768e84a3917622a62039283
|
Provenance
The following attestation bundles were made for langchain_lightning-1.0.1-py3-none-any.whl:
Publisher:
release.yml on Lightning-AI/langchain-lightning
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
langchain_lightning-1.0.1-py3-none-any.whl -
Subject digest:
20c6493ca4e486a13bb609b5abf4a6f14c6535182e7742450a3b86b175c7e75d - Sigstore transparency entry: 2138248077
- Sigstore integration time:
-
Permalink:
Lightning-AI/langchain-lightning@4012271ff1a2ecfe3876c2306f19cb0244c05b31 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/Lightning-AI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4012271ff1a2ecfe3876c2306f19cb0244c05b31 -
Trigger Event:
release
-
Statement type: