diff --git a/en/deploy/settings.mdx b/en/deploy/settings.mdx index d2ec4f3ae..6b13344bb 100644 --- a/en/deploy/settings.mdx +++ b/en/deploy/settings.mdx @@ -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. diff --git a/en/usage/sandbox/config.mdx b/en/usage/sandbox/config.mdx index c6efb339a..0e4a1da82 100644 --- a/en/usage/sandbox/config.mdx +++ b/en/usage/sandbox/config.mdx @@ -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. 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} ``` @@ -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` | diff --git a/ja/deploy/settings.mdx b/ja/deploy/settings.mdx index 3be25c516..705a95eff 100644 --- a/ja/deploy/settings.mdx +++ b/ja/deploy/settings.mdx @@ -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。 diff --git a/ja/usage/sandbox/config.mdx b/ja/usage/sandbox/config.mdx index 39b4f92ff..4082b8524 100644 --- a/ja/usage/sandbox/config.mdx +++ b/ja/usage/sandbox/config.mdx @@ -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 制限は維持します。 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} ``` @@ -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` | diff --git a/zh/deploy/settings.mdx b/zh/deploy/settings.mdx index 9a64e2fbb..f21aaf430 100644 --- a/zh/deploy/settings.mdx +++ b/zh/deploy/settings.mdx @@ -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。 diff --git a/zh/usage/sandbox/config.mdx b/zh/usage/sandbox/config.mdx index 42114d37a..826b851bf 100644 --- a/zh/usage/sandbox/config.mdx +++ b/zh/usage/sandbox/config.mdx @@ -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 限制仍然保留。 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} ``` @@ -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` |