docs(sandbox): document Docker CPU limit toggle

This commit is contained in:
RockChinQ
2026-06-24 23:31:53 -04:00
parent c93a1c76a2
commit ba8219f29f
6 changed files with 39 additions and 0 deletions
+2
View File
@@ -129,6 +129,8 @@ box:
- './data/box'
- '/tmp'
workspace_quota_mb: null # Optional disk quota override (>= 0). null = profile default.
docker:
cpu_limit_enabled: true # When false, Docker sandbox containers are started without --cpus. Memory and PID limits still apply.
e2b:
api_key: '' # Can also be set via E2B_API_KEY env var.
api_url: '' # Custom API URL for self-hosted deployments.
+11
View File
@@ -19,6 +19,8 @@ box:
profile: 'default'
host_root: './data/box'
skills_root: 'skills'
docker:
cpu_limit_enabled: true
```
- `enabled`: master switch. When `false`, all Box-dependent features are disabled (sandbox tools, skill add/edit, stdio MCP hosting).
@@ -26,6 +28,7 @@ box:
- `local.profile`: security profile — controls network, mounts, and resource limits.
- `local.host_root`: host workspace directory, mapped to `/workspace` inside the sandbox.
- `local.skills_root`: skill package directory; relative paths resolve under `host_root` (defaults to `host_root/skills`).
- `docker.cpu_limit_enabled`: whether Docker sandbox containers get a CPU limit; set to `false` to omit `docker run --cpus` while keeping memory and PID limits.
<Note>
Skills are loaded only from the Box-managed skill store. When Box Runtime or the backend is unavailable, the skill list is empty and create/edit/`register_skill` are disabled — there's no fallback to `data/skills/`.
@@ -77,6 +80,12 @@ The local backends (`local` / `docker` / `nsjail`) share these settings:
| `local.allowed_mount_roots` | `[host_root]` | Allowlist of host directories the Agent can mount |
| `local.workspace_quota_mb` | `null` | Workspace disk quota (MB); `null` = use profile default |
## Docker Backend Configuration (box.docker.*)
| Setting | Default | Notes |
|---------|---------|-------|
| `docker.cpu_limit_enabled` | `true` | Docker backend only. When `false`, sandbox containers start without `--cpus`; `--memory` and `--pids-limit` still apply. |
## Cloud Backend Configuration (box.e2b.*)
Configure after setting `backend: 'e2b'`:
@@ -112,6 +121,7 @@ services:
- BOX__LOCAL__HOST_ROOT=${LANGBOT_BOX_ROOT:-${PWD}/data/box}
- BOX__LOCAL__SKILLS_ROOT=skills
- BOX__LOCAL__ALLOWED_MOUNT_ROOTS=${LANGBOT_BOX_ROOT:-${PWD}/data/box}
- BOX__DOCKER__CPU_LIMIT_ENABLED=${LANGBOT_BOX_DOCKER_CPU_LIMIT_ENABLED:-true}
```
<Warning>
@@ -139,6 +149,7 @@ box:
| `BOX__LOCAL__SKILLS_ROOT` | `box.local.skills_root` |
| `BOX__LOCAL__ALLOWED_MOUNT_ROOTS` | `box.local.allowed_mount_roots`, comma-separated |
| `BOX__LOCAL__WORKSPACE_QUOTA_MB` | `box.local.workspace_quota_mb` |
| `BOX__DOCKER__CPU_LIMIT_ENABLED` | `box.docker.cpu_limit_enabled` |
| `BOX__E2B__API_KEY` | `box.e2b.api_key` |
| `BOX__E2B__API_URL` | `box.e2b.api_url` |
| `BOX__E2B__TEMPLATE` | `box.e2b.template` |
+2
View File
@@ -128,6 +128,8 @@ box:
- './data/box'
- '/tmp'
workspace_quota_mb: null # オプションのディスククォータオーバーライド (>= 0)。null = プロファイルデフォルト。
docker:
cpu_limit_enabled: true # false の場合、Docker サンドボックスコンテナは --cpus なしで起動します。メモリと PID 制限は維持されます。
e2b:
api_key: '' # E2B_API_KEY 環境変数でも設定可能。
api_url: '' # セルフホストデプロイ用のカスタム API URL。
+11
View File
@@ -19,6 +19,8 @@ box:
profile: 'default'
host_root: './data/box'
skills_root: 'skills'
docker:
cpu_limit_enabled: true
```
- `enabled`:サンドボックスのマスタースイッチ。`false` にすると、サンドボックス組み込みツール、Skill の追加 / 編集、stdio MCP のホスティングなど Box 依存の機能はすべて無効になります。
@@ -26,6 +28,7 @@ box:
- `local.profile`:セキュリティプロファイル。ネットワーク、マウント、リソース制限を制御。
- `local.host_root`:ホスト側のサンドボックス作業ディレクトリ。サンドボックス内では `/workspace` にマウントされます。
- `local.skills_root`:Skill パッケージのディレクトリ。相対パスは `host_root` 配下に解決され、デフォルトは `host_root/skills`。
- `docker.cpu_limit_enabled`:Docker サンドボックスコンテナに CPU 制限を付けるかどうか。`false` にすると `docker run --cpus` を省略し、メモリと PID 制限は維持します。
<Note>
Skill は Box Runtime が管理する skill store からのみ読み込まれます。Box Runtime またはバックエンドが利用できない場合、Skill 一覧は空になり、追加 / 編集 / `register_skill` も使えません。`data/skills/` へのフォールバックは行いません。
@@ -77,6 +80,12 @@ Skill は Box Runtime が管理する skill store からのみ読み込まれま
| `local.allowed_mount_roots` | `[host_root]` | Agent がマウント要求できるホストディレクトリの許可リスト |
| `local.workspace_quota_mb` | `null` | ワークスペースのディスク配額(MB)。`null` = プロファイル既定 |
## Docker バックエンド設定(box.docker.*)
| 設定項目 | 既定値 | 説明 |
|---------|--------|------|
| `docker.cpu_limit_enabled` | `true` | Docker バックエンドのみ有効。`false` の場合、サンドボックスコンテナは `--cpus` なしで起動しますが、`--memory` と `--pids-limit` は引き続き適用されます。 |
## クラウドバックエンド設定(box.e2b.*)
`backend: 'e2b'` を指定したうえで設定します:
@@ -112,6 +121,7 @@ services:
- BOX__LOCAL__HOST_ROOT=${LANGBOT_BOX_ROOT:-${PWD}/data/box}
- BOX__LOCAL__SKILLS_ROOT=skills
- BOX__LOCAL__ALLOWED_MOUNT_ROOTS=${LANGBOT_BOX_ROOT:-${PWD}/data/box}
- BOX__DOCKER__CPU_LIMIT_ENABLED=${LANGBOT_BOX_DOCKER_CPU_LIMIT_ENABLED:-true}
```
<Warning>
@@ -139,6 +149,7 @@ box:
| `BOX__LOCAL__SKILLS_ROOT` | `box.local.skills_root` |
| `BOX__LOCAL__ALLOWED_MOUNT_ROOTS` | `box.local.allowed_mount_roots`、カンマ区切り |
| `BOX__LOCAL__WORKSPACE_QUOTA_MB` | `box.local.workspace_quota_mb` |
| `BOX__DOCKER__CPU_LIMIT_ENABLED` | `box.docker.cpu_limit_enabled` |
| `BOX__E2B__API_KEY` | `box.e2b.api_key` |
| `BOX__E2B__API_URL` | `box.e2b.api_url` |
| `BOX__E2B__TEMPLATE` | `box.e2b.template` |
+2
View File
@@ -129,6 +129,8 @@ box:
- './data/box'
- '/tmp'
workspace_quota_mb: null # 可选磁盘配额覆盖 (>= 0)。null 表示使用 profile 默认值。
docker:
cpu_limit_enabled: true # false 时 Docker 沙箱容器不传 --cpus;内存和 PID 限制仍然生效。
e2b:
api_key: '' # 也可通过 E2B_API_KEY 环境变量设置。
api_url: '' # 自托管部署的自定义 API URL。
+11
View File
@@ -19,6 +19,8 @@ box:
profile: 'default'
host_root: './data/box'
skills_root: 'skills'
docker:
cpu_limit_enabled: true
```
- `enabled`:沙箱总开关。设为 `false` 时,沙箱内置工具、Skill 添加/编辑、stdio MCP 托管等依赖 Box 的能力都不可用。
@@ -26,6 +28,7 @@ box:
- `local.profile`:安全预设,控制网络、挂载和资源限制。
- `local.host_root`:主机上的沙箱工作目录,会映射为沙箱内的 `/workspace`。
- `local.skills_root`:Skill 包目录;相对路径解析到 `host_root` 下,默认 `host_root/skills`。
- `docker.cpu_limit_enabled`:是否为 Docker 沙箱容器启用 CPU 限制;设为 `false` 时不传 `docker run --cpus`,内存和 PID 限制仍然保留。
<Note>
Skills 只从 Box Runtime 管理的 skill store 加载。Box Runtime 或后端不可用时 Skill 列表为空,新增 / 编辑 / `register_skill` 都不可用;不会回退扫描 `data/skills/`。
@@ -77,6 +80,12 @@ Skills 只从 Box Runtime 管理的 skill store 加载。Box Runtime 或后端
| `local.allowed_mount_roots` | `[host_root]` | Agent 可请求挂载的主机目录白名单 |
| `local.workspace_quota_mb` | `null` | 工作区磁盘配额(MB),`null` = 用 profile 默认 |
## Docker 后端配置(box.docker.*)
| 配置项 | 默认值 | 说明 |
|--------|--------|------|
| `docker.cpu_limit_enabled` | `true` | 仅 Docker 后端生效。设为 `false` 时,Docker 沙箱容器启动时不会附带 `--cpus`;`--memory` 和 `--pids-limit` 仍会照常应用。 |
## 云端后端配置(box.e2b.*)
设为 `backend: 'e2b'` 后配置:
@@ -112,6 +121,7 @@ services:
- BOX__LOCAL__HOST_ROOT=${LANGBOT_BOX_ROOT:-${PWD}/data/box}
- BOX__LOCAL__SKILLS_ROOT=skills
- BOX__LOCAL__ALLOWED_MOUNT_ROOTS=${LANGBOT_BOX_ROOT:-${PWD}/data/box}
- BOX__DOCKER__CPU_LIMIT_ENABLED=${LANGBOT_BOX_DOCKER_CPU_LIMIT_ENABLED:-true}
```
<Warning>
@@ -139,6 +149,7 @@ box:
| `BOX__LOCAL__SKILLS_ROOT` | `box.local.skills_root` |
| `BOX__LOCAL__ALLOWED_MOUNT_ROOTS` | `box.local.allowed_mount_roots`,逗号分隔 |
| `BOX__LOCAL__WORKSPACE_QUOTA_MB` | `box.local.workspace_quota_mb` |
| `BOX__DOCKER__CPU_LIMIT_ENABLED` | `box.docker.cpu_limit_enabled` |
| `BOX__E2B__API_KEY` | `box.e2b.api_key` |
| `BOX__E2B__API_URL` | `box.e2b.api_url` |
| `BOX__E2B__TEMPLATE` | `box.e2b.template` |