Skip to main content

Agent Sandbox plugin for Harbor — run Terminal-Bench / SWE-bench / Harbor benchmarks on Agent Sandbox pools

Project description

agent-sandbox-harbor

A Harbor environment plugin that runs Harbor benchmarks (Terminal-Bench, SWE-bench, custom datasets) on Agent Sandbox pre-warmed pools — no fork of Harbor required.

Highlights:

  • Zero Harbor source changes. Plugs into Harbor via the official --environment-import-path extension point.
  • Skips Template Build. Agent Sandbox uses a pre-warmed Pod pool with in-place image swap, so the per-task Template Build step that E2B / Novita require is replaced by a single POST /v1/sandboxes call.
  • Internal-mirror friendly. A configurable image-prefix rewrites docker.io/... to your private Distribution / Harbor registry.

Installation

pip install 'harbor[e2b]' agent-sandbox-harbor

The plugin pulls agent-sandbox-e2b as a hard dependency (it calls patch_e2b() at import). harbor is an optional peer dependency, so the package can be inspected / unit-tested without it; in real usage you install harbor[e2b] yourself.

Quick start

# 1. Set credentials (one-off)
cat > agentbox.env <<'EOF'
E2B_API_KEY=agbx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
E2B_DOMAIN=agent-sandbox-data-plane.example.com/agent-sandbox/api/data
E2B_API_URL=https://agent-sandbox-data-plane.example.com/agent-sandbox/api/e2b
AGBX_CLUSTER_ID=cluster-a
AGBX_POOL_NAME=terminal-bench-pool
AGBX_IMAGE_PREFIX=registry.internal/agent-sandbox
EOF

# 2. Run Harbor (use the plugin via the official --environment-import-path flag)
harbor run \
  -d terminal-bench@2.0 \
  -a oracle \
  --environment-import-path agent_sandbox_harbor:AgentSandboxEnvironment \
  -n 16 -y \
  --env-file agentbox.env

Configuration

Variable Required Description
E2B_API_KEY yes Agent Sandbox API key (agbx_...).
AGBX_POOL_NAME yes Pre-warmed pool name.
E2B_DOMAIN no Data-plane gateway, host[:port][/path]. Default is the in-cluster service.
E2B_API_URL no E2B-compatible control-plane URL, including scheme.
AGBX_CLUSTER_ID no Cluster id prefix (e.g. cluster-a). Omit for single-cluster setups.
AGBX_IMAGE_PREFIX no Mirror prefix (e.g. registry.internal/agent-sandbox). docker.io/ is stripped before the prefix is applied.
AGBX_HTTPS no true/false for the data-plane scheme (default true).
AGBX_STARTUP_TIMEOUT no Sandbox startup timeout, seconds (default 300).
AGBX_READY_TIMEOUT no Cold-image readiness ceiling, seconds (default 600).

How it works

AgentSandboxEnvironment subclasses Harbor's E2BEnvironment and overrides three methods:

  • _does_template_exist → always returns True
  • _create_template → no-op
  • _create_sandbox → calls AsyncSandbox.create(template="cluster::pool//image", secure=False, ...)

__init__ calls super().__init__() first, so Harbor's stock Dockerfile parsing still runs (and sets self._workdir from the image's WORKDIR). The constructor then overrides self._template_name with the Agent Sandbox pool shorthand.

At module import, patch_e2b() from agent-sandbox-e2b redirects the e2b SDK to your Agent Sandbox endpoints.

See INTEGRATION.md for full design notes, the --environment-import-path mechanism explanation, and operational guidance.

Compatibility

Each release build is tested against the latest published versions of harbor and e2b. The pinned upper bound in [project.optional-dependencies] is updated automatically by the release CI to reflect the highest verified harbor version.

License

Apache 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agent_sandbox_harbor-0.0.3.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agent_sandbox_harbor-0.0.3-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file agent_sandbox_harbor-0.0.3.tar.gz.

File metadata

  • Download URL: agent_sandbox_harbor-0.0.3.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agent_sandbox_harbor-0.0.3.tar.gz
Algorithm Hash digest
SHA256 777930a96c771f2d39a79d919ab967ca3efbb7af54c50b87e2e7dd5ea6ca184c
MD5 70682e6cc5eee610757744e5826c524f
BLAKE2b-256 98d37541d0ad62ae2ae79c37064b2ad77768d9d06ea51ba82f533717011e82ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_sandbox_harbor-0.0.3.tar.gz:

Publisher: sdk-python-harbor-publish.yml on scitix/Agent-Sandbox

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agent_sandbox_harbor-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for agent_sandbox_harbor-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f7d65a3ca7d5df4d96f487c9893a1f39c095a11930d10cf0b9337276fe0ddf2a
MD5 fec00b6ee95b09a8f877e1b6d3d90566
BLAKE2b-256 00662ffa9191c5866e6f3351eb0ede072d1898273efd1ca7217d041a783be0bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_sandbox_harbor-0.0.3-py3-none-any.whl:

Publisher: sdk-python-harbor-publish.yml on scitix/Agent-Sandbox

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page