Skip to content

Commit 0d9da63

Browse files
committed
docs: use native provider entries in extension guides
1 parent aea5412 commit 0d9da63

11 files changed

Lines changed: 31 additions & 18 deletions

File tree

‎.agents/evidence/verify/2026-10-18-standard-provider-convergence.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,13 @@ PASS/24 SKIP/10 integration deselected in120.01s; earlier2193 count included tho
6060
ten tests. No skipped test is promoted to pass. Prior real Express and hosted
6161
server-matrix receipts remain unchanged; no new cloud resources created.
6262
Latest-head CI follows push. Conditional enabled pause/snapshot remains blocked.
63+
64+
## Native example follow-up
65+
66+
A second maintained-guide scan found six newly accepted native Volume/data-plane/
67+
existing-account pages still importing synchronous root Sandbox. Corrected both
68+
languages to explicit ProviderSandbox. The older native adoption page now links
69+
the separate standard migration route. SDK/provider skills and provider reference
70+
now state canonical native ABX credentials, standard-only E2B mapping and separate
71+
AK/SK control-plane authorization. No runtime/code changes or cloud resources.
72+
Hygiene/health/import smoke and latest-head hosted CI are checked separately.

‎CHANGELOG.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
1414
- Reserve create positional arguments for templates and natural language for `--prompt` in the CLI; document migration, source attribution and backend capability limits.
1515

1616
### Fixed
17+
- Use explicit native ProviderSandbox in Volume/data-plane adoption examples and distinguish native runtime credentials from control-plane AK/SK in agent guides.
1718

1819
- Reject undeclared native Express PTY before session/context or wire access.
1920

‎agent-sandbox-provider/SKILL.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ https://registry.agent-sandbox.com. The installer index is
4343
| `exec` | the manifest plus a process that speaks EPP/1 on stdin/stdout | The API is not E2B-shaped. Any language. No code runs at install time |
4444
| `node` | `provider.mjs` with `export default create(kit)` | The backend is E2B-shaped but needs a tweak (proxy dial, optional token, other paths). Loaded in the host process; one implementation serves the CLI and every SDK |
4545

46-
Do not start from the Express engine. Do not copy `E2B_API_KEY` into the new provider. That key is Express only.
46+
Do not start from the Express engine. Do not copy the Express `ABX_SANDBOX_API_KEY` or its standard-entry `E2B_API_KEY` setting into the new provider. Credentials belong to their selected backend.
4747

4848
## Credentials
4949

‎agent-sandbox-sdk/SKILL.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,11 @@ asyncio.run(main())
8282
- Files on `sb.files`: `write`, `read`, `read_bytes`, `list`, `exists`, `remove`, `make_dir`, `upload`, `download`. On Express, `sb.files.upload_url` and `sb.files.download_url` return an envd URL that still needs header `X-Access-Token`. A provider that does not declare `files.transfer` raises `E8004`. `sb.upload_url` and `sb.download_url` always refuse. Do not invent a signature-only URL.
8383
- The context manager kills the sandbox. Otherwise call `await sb.kill()`.
8484
- ProviderSandbox defaults to alicloud-express. Use its configured provider transport; do not hardcode a local engine socket or spawn a separate provider implementation.
85-
- The only built-in provider is `alicloud-express`. `opensandbox`, `alicloud-container`, `cubesandbox`, and `e2b` are not part of this package. Install them from the catalog with `python -m agent_sandbox.providers install registry:<id> --yes`, then pass that id to `Sandbox.create`. Their notes are in `awesome-providers/<id>/docs/README.md`. Only Express reads `E2B_API_KEY`.
85+
- The only built-in provider is `alicloud-express`. `opensandbox`, `alicloud-container`, `cubesandbox`, and `e2b` are not part of this package. Install them from the catalog with `python -m agent_sandbox.providers install registry:<id> --yes`, then pass that id to `Sandbox.create`. Their notes are in `awesome-providers/<id>/docs/README.md`. Native ProviderSandbox reads canonical `ABX_SANDBOX_API_KEY`; only the standard entry maps `E2B_*` settings.
8686

8787
| id | What it is | Required environment |
8888
|---|---|---|
89-
| `alicloud-express` | Alibaba Cloud Express. The default. Built into the SDK. | `E2B_API_KEY`, or AK/SK |
89+
| `alicloud-express` | Alibaba Cloud Express. The default. Built into the SDK. | `ABX_SANDBOX_API_KEY`; AK/SK separately authorizes control-plane operations |
9090

9191
URLs, headers, and calls that raise `E8004` for Express are in `references/providers.md`. The `abx` CLI loads `alicloud-express` plus installed `node`, `exec` and `rest` plugins. The four catalog providers are `node`. After `abx provider install alibaba-agent-sandbox/awesome-providers//<id> --allow-unpinned --yes`, `abx --provider <id>` works. A manifest with `kind = "python"` cannot be installed. An in-code `Provider` subclass still works from the SDK only.
9292

@@ -237,5 +237,5 @@ Do not upload from a laptop. Do not put a PyPI token in the repo or in chat.
237237
1. Client code imports `agent_sandbox`. `commands.py` imports `agent_sandbox.server` only.
238238
2. Named commands are `@command` and `start()` under `if __name__ == "__main__"`.
239239
3. The default provider's Dockerfile is the FC base image, with no `CMD`.
240-
4. Do not read or write `E2B_*`.
240+
4. Keep native provider configuration on `ABX_*`; standard entry configuration may read `E2B_*`. Never substitute Express credentials for another backend.
241241
5. Do not leak credentials. Do not leave sandboxes running.

‎agent-sandbox-sdk/references/providers.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ python -m agent_sandbox.providers install registry:opensandbox --yes
1212

1313
Each provider's config, paths, and `E8004` list are in `awesome-providers/<id>/docs/README.md`. All four are `runtime.kind = "node"` (an ES module, `provider.mjs`). There is no `python`-kind catalog plugin; a manifest with `kind = "python"` cannot be installed. An in-code `Provider` subclass still works from the SDK. Install with `abx provider install alibaba-agent-sandbox/awesome-providers//<id> --allow-unpinned --yes` or the Python module above, then `abx --provider <id>` or `Sandbox.create(provider="<id>")`. The Python SDK reaches a `node` provider through the local Node engine (`abx provider engine serve`, started on demand; `abx` must be on `PATH` or in `ABX_BIN`) using `EngineProvider`. Python `exec` and `rest` manifests still run in the Python process. The built-in `alicloud-express` is the Python builtin provider.
1414

15-
Express is the only provider that reads `E2B_API_KEY`. Catalog providers keep their provider-specific credentials; do not pass the Express E2B_API_KEY to them implicitly.
15+
Native ProviderSandbox uses `ABX_SANDBOX_API_KEY`, `ABX_SANDBOX_BASE_URL` and `ABX_SANDBOX_DOMAIN`. The standard root entry separately maps E2B settings. Catalog providers keep their provider-specific credentials; never forward the Express key implicitly.
1616

1717
## alicloud-express
1818

19-
Default. Credentials are `E2B_API_KEY`, or `ALICLOUD_ACCESS_KEY_ID` and `ALICLOUD_ACCESS_KEY_SECRET`. Region is `ALIBABA_CLOUD_REGION_ID` (the CLI also stores it with `abx config set region`). Template images for this provider use the FC Dockerfile in `SKILL.md`.
19+
Default. Runtime credentials require `ABX_SANDBOX_API_KEY`. `ALICLOUD_ACCESS_KEY_ID` and `ALICLOUD_ACCESS_KEY_SECRET` separately authorize official control-plane operations and cannot substitute for that runtime key. Region is `ALIBABA_CLOUD_REGION_ID` (the CLI also stores it with `abx config set region`). Template images for this provider use the FC Dockerfile in `SKILL.md`.
2020

2121
This reference describes ProviderSandbox, not the standard root Sandbox/AsyncSandbox. Use the configured provider transport rather than hardcoding engine sockets. Existing Express commands/files use the backend envd connection.

‎docs/en/design/builtin-data-plane.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ stream requests for envd0.5 and Connect envelopes for envd0.6. The sandbox TTL
1212
and the create HTTP request timeout remain separate options.
1313

1414
```python
15-
from agent_sandbox import Sandbox
15+
from agent_sandbox import ProviderSandbox as Sandbox
1616

1717
async with await Sandbox.create("base", timeout=300, request_timeout=30) as sb:
1818
result = await sb.commands.run("echo ready")

‎docs/en/guide/migrate-from-alicloud-express.md‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,20 @@
22

33
This changes your client/tooling, not your cloud provider. Keep your account, region,
44
Team, API key, template IDs/aliases, Volumes and RAM roles. Existing resources do not
5-
need to be recreated just to use the client. There is no implemented zero-change or
6-
one-click migration. Review the API calls your application actually uses.
5+
need to be recreated just to use the client. Review the native API calls your application actually uses.
76

87
This guide covers Python and the CLI. The public
98
[Node SDK](https://github.com/Alibaba-Agent-Sandbox/nodejs-sdk/blob/main/README.md)
109
currently provides `ServerClient` and configuration names, not cloud sandbox lifecycle.
1110
Changing an E2B JavaScript import to that package is not a supported migration.
1211

12+
This page adopts the explicit native ProviderSandbox extensions and their ABX configuration. For the standard sync/async E2B-compatible root entries and import-only supported migration, read the [standard migration guide](migrate-from-e2b.md). Existing backend/runtime restrictions still apply.
13+
1314
## What changes
1415

1516
| Existing Express application | Agent Sandbox client |
1617
| --- | --- |
17-
| `from e2b import Sandbox` | `from agent_sandbox import Sandbox` |
18+
| `from e2b import Sandbox` | `from agent_sandbox import ProviderSandbox as Sandbox` |
1819
| Implicit `E2B_API_KEY`, `E2B_API_URL`, `E2B_DOMAIN` | Explicit `ABX_SANDBOX_API_KEY`, `ABX_SANDBOX_BASE_URL`, `ABX_SANDBOX_DOMAIN`; old names are not silently read. |
1920
| `Sandbox.kill(id)` | `Sandbox.kill_by_id(id)` |
2021
| `sandbox.get_host(port)` | `sandbox.network.get_host(port)` |
@@ -45,7 +46,7 @@ After installing a compatible client/server release using the
4546
```python
4647
import asyncio
4748
import os
48-
from agent_sandbox import Sandbox
49+
from agent_sandbox import ProviderSandbox as Sandbox
4950

5051
async def main():
5152
sandbox = await Sandbox.create(

‎docs/en/guide/provider-commands.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ The default provider does not advertise `storage.mount`, `ports.domain` or `netw
1212
The built-in provider accepts `volume_mounts` in `Sandbox.create()` (and `create_sync`):
1313

1414
```python
15-
from agent_sandbox import Sandbox
15+
from agent_sandbox import ProviderSandbox as Sandbox
1616

1717
async with await Sandbox.create(
1818
provider="alicloud-express",

‎docs/zh/design/builtin-data-plane.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ envd0.5 的流请求使用原始 JSON,envd0.6 使用 Connect 封包。
1010
沙箱 TTL 与创建请求的 HTTP 超时仍是两个独立参数。
1111

1212
```python
13-
from agent_sandbox import Sandbox
13+
from agent_sandbox import ProviderSandbox as Sandbox
1414

1515
async with await Sandbox.create("base", timeout=300, request_timeout=30) as sb:
1616
result = await sb.commands.run("echo ready")

‎docs/zh/guide/migrate-from-alicloud-express.md‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
# 在已有极速版账号上使用 Agent Sandbox
22

33
这里更换的是客户端和工具,不是云后端。原账号、地域、Team、API Key、模板 ID/别名、
4-
Volume、RAM 角色都可以继续使用,不必仅为接入客户端而重建资源。目前没有已实现的
5-
零改动或一键迁移;应核对应用实际使用的 API。
4+
Volume、RAM 角色都可以继续使用,不必仅为接入客户端而重建资源。采用原生扩展时,应核对应用实际使用的 API。
65

76
本指南面向 Python 和 CLI。公开的
87
[Node SDK](https://github.com/Alibaba-Agent-Sandbox/nodejs-sdk/blob/main/README.md)
98
当前只有 `ServerClient` 和配置名称,没有云端沙箱生命周期;不支持把 E2B JavaScript
109
应用仅改导入到该包就完成迁移。
1110

11+
本页介绍显式原生 ProviderSandbox 扩展及其 ABX 配置。标准同步/异步 E2B 兼容根入口,以及受支持范围内仅更换导入的迁移路径,见[标准迁移指南](migrate-from-e2b.md)。云端运行时和账号限制仍然适用。
12+
1213
## 需要修改的内容
1314

1415
| 原极速版应用 | Agent Sandbox 客户端 |
1516
| --- | --- |
16-
| `from e2b import Sandbox` | `from agent_sandbox import Sandbox` |
17+
| `from e2b import Sandbox` | `from agent_sandbox import ProviderSandbox as Sandbox` |
1718
| 隐式读取 `E2B_API_KEY`、`E2B_API_URL`、`E2B_DOMAIN` | 显式配置 `ABX_SANDBOX_API_KEY`、`ABX_SANDBOX_BASE_URL`、`ABX_SANDBOX_DOMAIN`,不静默读取旧名称。 |
1819
| `Sandbox.kill(id)` | `Sandbox.kill_by_id(id)` |
1920
| `sandbox.get_host(port)` | `sandbox.network.get_host(port)` |
@@ -40,7 +41,7 @@ AK/SK 及镜像仓库前提。API 的 `api_key`、`api_url`、`domain` 仍是对
4041
```python
4142
import asyncio
4243
import os
43-
from agent_sandbox import Sandbox
44+
from agent_sandbox import ProviderSandbox as Sandbox
4445

4546
async def main():
4647
sandbox = await Sandbox.create(

0 commit comments

Comments
 (0)