feat(integrations): add OpenSandbox environment - #6785
Open
jianpingpei wants to merge 3 commits into
Open
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
jianpingpei
marked this pull request as ready for review
August 19, 2026 07:19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link to Issue or Description of Change
1. Link to an existing issue (if applicable):
2. Or, if no issue exists, describe the change:
Problem:
ADK's environment abstraction supports local, E2B, and Daytona execution, but users of a self-hosted OpenSandbox deployment cannot select it as an environment backend.
Solution:
Add an experimental
OpenSandboxEnvironmentthat implements the existingBaseEnvironmentcontract for command execution, file I/O, lifecycle renewal, owned-sandbox cleanup, and attachment to an existing sandbox. The change also adds an optionalopensandboxdependency, feature registration, focused unit coverage, and a runnable sample.Testing Plan
Unit Tests:
I have added or updated unit tests for my change.
All unit tests pass locally.
Focused OpenSandbox, E2B, Daytona, and
EnvironmentToolsetregression suite: 60 passed.Full tox suite passed on Python 3.10, 3.11, 3.12, and 3.14.
Python 3.13 completed with 12112 passed and 2 failed in
tests/unittests/test_import_loading.py. Both failures are caused by the local interpreter preloadingsitecustomize; the same two failures reproduce on an unmodifiedupstream/mainworktree.pre-commit run --from-ref upstream/main --to-ref HEAD: passed../scripts/update_constraints.sh --check: passed for Python 3.10 through 3.14.Wheel build and installation into a clean virtual environment: passed;
OpenSandboxEnvironmentimports with the publishedopensandbox==0.1.15SDK.Manual End-to-End (E2E) Tests:
Tested against a local Docker OpenSandbox server using a public Python image:
OpenSandboxEnvironment.close()releases the SDK client without destroying the sandbox.WriteFile,Execute, andReadFile; verified the marker in both the agent result and sandbox file.Checklist
The two unchecked test boxes reflect only the Python 3.13 ambient
sitecustomizefailures described above; they reproduce unchanged on upstreammain.Additional context
OpenSandbox is used here as a self-hosted backend. This contribution does not imply or require an official hosted OpenSandbox service.