Skip to content

ja usage sandbox config

langbot-wiki-sync[bot] edited this page Jul 29, 2026 · 1 revision

サンドボックス設定

サンドボックス設定は LangBot メインプロセスが管理し、Box Runtime が実際の実行を担当します。通常のデプロイでは、バックエンド、ワークスペースディレクトリ、セキュリティプロファイルだけを決めれば十分です。

Note

このページの box.* 設定はすべて data/config.yaml に記述します。ファイルの場所と読み込みの仕組みはシステム環境設定を参照してください。

推奨設定

box:
  enabled: true
  backend: 'local'        # Docker / Nsjail から利用可能なものを自動選択
  local:
    profile: 'default'
    host_root: './data/box'
    skills_root: 'skills'
  docker:
    cpu_limit_enabled: true
  • enabled:サンドボックスのマスタースイッチ。false にすると、サンドボックス組み込みツール、Skill の追加 / 編集、stdio MCP のホスティングなど Box 依存の機能はすべて無効になります。
  • backend:下記「バックエンドの選択」を参照。
  • 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/ へのフォールバックは行いません。

バックエンドの選択

サンドボックスはローカルコンテナまたはクラウドで動作させられます。box.backend でどちらを使うかを指定します:

backend 実行場所 動作
local(既定) ローカルコンテナ Docker / Nsjail から利用可能なものを自動選択(Docker 優先)
docker ローカルコンテナ Docker を強制使用。Docker daemon が必要
nsjail ローカルコンテナ Nsjail を強制使用(Linux のみ)。カスタムイメージ非対応
e2b クラウド E2B クラウドサンドボックスを使用。API キーが必要

local は「自動選択」のショートハンドであり、docker / nsjail と並列の 4 つ目のバックエンドではありません。ローカル系バックエンド(local / docker / nsjail)は box.local.* 設定セクションを共有し、クラウドバックエンドは box.e2b.* を使います。

Note

backend は強制値です。docker を指定して Docker が使えない場合、Nsjail や E2B に自動でフォールバックしません。自動 fan-out するのは local だけです。

環境変数 BOX__BACKENDbox.backend を上書きできます(config.yaml より優先)。

セキュリティプロファイル

box.local.profile はローカル系バックエンドのネットワーク、マウント、リソース制限を制御します:

Profile ネットワーク マウント リソース 推奨シーン
default オフ 読み書き 既定制限 既定の選択
offline_readonly オフ 読み取り専用 より厳格 信頼できないファイルの読み込み
network_basic 基本ネットワーク 読み書き 既定制限 API アクセス、依存関係インストール
network_extended フルネットワーク 読み書き 緩和 開発、デバッグ、複雑なタスク

最小権限を優先:ネットワークが不要なら default または offline_readonlyallowed_mount_roots には必要なディレクトリのみを追加。

ローカル系バックエンド設定(box.local.*)

ローカル系バックエンド(local / docker / nsjail)は以下を共有します:

設定項目 既定値 説明
local.profile default 上記「セキュリティプロファイル」を参照
local.image Docker バックエンドのカスタムイメージ。空 = プロファイル既定を使用
local.host_root ./data/box ホスト作業ディレクトリのベース。サンドボックス内の /workspace にマップ
local.default_workspace 既定ワークスペース名。空 = <host_root>/default
local.skills_root skills Skill パッケージディレクトリ。相対パスは host_root 配下に解決
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' を指定したうえで設定します:

設定項目 既定値 説明
e2b.api_key E2B API キー。環境変数 E2B_API_KEY でも設定可
e2b.api_url セルフホスト E2B のエンドポイント。環境変数 E2B_API_URL でも設定可
e2b.template 既定の E2B テンプレート ID

E2B はホスト側に Docker や Nsjail を必要とせず、毎回の実行をリモートサンドボックスで行います。

Docker Compose デプロイ

Docker Compose では、サンドボックス設定は langbot サービス側に記述します。LangBot は起動時に INIT RPC で設定を langbot_box に転送します。

services:
  langbot_box:
    image: rockchin/langbot:latest
    container_name: langbot_box
    profiles: ["box", "all"]
    volumes:
      - ${LANGBOT_BOX_ROOT:-${PWD}/data/box}:${LANGBOT_BOX_ROOT:-${PWD}/data/box}
      - /var/run/docker.sock:/var/run/docker.sock
    command: ["uv", "run", "--no-sync", "-m", "langbot_plugin.cli.__init__", "box"]

  langbot:
    image: rockchin/langbot:latest
    volumes:
      - ./data:/app/data
    environment:
      - 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

langbot_box は Docker daemon にアクセスします。docker.sock のマウントは信頼できる環境でのみ行い、Box のルートパスをホストと langbot_box コンテナ内で一致させてください。

外部の Box Runtime(リモートホストなど)に接続する場合は box.runtime.endpoint で URL を指定します:

box:
  runtime:
    endpoint: 'ws://192.168.1.10:5410'

環境変数

環境変数 対応する設定
BOX__ENABLED box.enabled
BOX__BACKEND box.backend
BOX__LOCAL__PROFILE box.local.profile
BOX__LOCAL__IMAGE box.local.image
BOX__LOCAL__HOST_ROOT box.local.host_root
BOX__LOCAL__DEFAULT_WORKSPACE box.local.default_workspace
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

Note

langbot_box サービス側には BOX__*LANGBOT_BOX_* を設定しないでください。Box Runtime はこれらを直接読みません——設定は LangBot から INIT RPC 経由で渡されます。

LangBot Documentation

Home

简体中文
指南
开发者
API 参考
Other pages
English
Guides
Developers
API Reference
Other pages
日本語
ガイド
開発者
API リファレンス
Other pages

Clone this wiki locally