Proposal: OpenSandbox as an optional community SandboxProvider #4856
jianpingpei
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
The ask
Would the team be open to an optional OpenSandbox-backed
SandboxProviderfor DeerFlow?A tested prototype is available, but I would like to align on scope and packaging before opening a pull request.
Why
Teams that already use OpenSandbox cannot currently configure DeerFlow to reuse that sandbox control plane. They need to operate a separate DeerFlow-specific backend or maintain a private adapter.
The goal is to make OpenSandbox selectable through the existing
sandbox.usemechanism without changing the default provider or the behavior of existing AIO, E2B, BoxLite, or Tenki users.This proposal is related to the runtime evaluation discussed in #3213, but it has a narrower goal: provider/control-plane integration. It does not claim that running the same AIO image through OpenSandbox reduces per-sandbox memory, and it does not replace the ongoing AIO profiling work in that issue.
Proposed integration
The direct-provider form would be selected with configuration like:
The provider would:
SandboxandSandboxProvidercontracts;list_dir,glob, andgrepwith DeerFlow-compatible result semantics;/mnt/user-datadownload boundary and 100 MiB streaming download cap;deerflow-harness[opensandbox]dependency.No default behavior would change.
Alternatives considered
OpenSandbox as an AIO provisioning backend
This could reuse
AioSandboxand its browser/Jupyter-oriented tool surface, but it requires broader changes for endpoint headers, remote thread-data and skill materialization, and AIO-specific lifecycle behavior.External provider package
DeerFlow class-path loading already makes this technically possible. However, the existing E2B, BoxLite, and Tenki integrations suggest that an in-tree
communityprovider may also be appropriate.Prototype status
A current-main prototype is available here:
https://github.com/jianpingpei/deer-flow/tree/feat/opensandbox-provider-current-main
It includes the provider, optional dependency metadata, public configuration documentation, and focused unit tests. The focused provider/packaging suite, lint, lock validation, a full non-live backend test run, a live provider lifecycle flow, and a model-driven DeerFlow
bashflow have been exercised. Deployment-specific endpoints, images, resource identifiers, and status payloads are intentionally omitted.The current prototype deliberately treats capacity as a per-Gateway-process soft cap. Cross-process discovery and ownership coordination are not claimed in the first version.
Questions for maintainers
deerflow.community.opensandboxprovider or as an external package?SandboxProviderapproach appropriate for a first version, or should OpenSandbox instead provision the DeerFlow AIO image?Happy to adapt the prototype to the preferred scope before opening a PR.
All reactions