--- title: "システム環境設定" description: "LangBot のシステム環境変数とランタイム設定を構成し、AI ボットのデプロイをカスタマイズ。" --- システム動作のための環境情報を設定します。設定ファイルは `data/config.yaml` にあります。 通常、変更は必要ありません。 ```yaml admins: [] api: port: 5300 webhook_prefix: 'http://127.0.0.1:5300' extra_webhook_prefix: '' global_api_key: '' # グローバル API キー。空でない場合、HTTP API と MCP サーバー(/mcp)の両方で、ログインセッション・データベースレコード・`lbk_` プレフィックス不要で認証されます。空 = 無効。平文で保存されるため、信頼できる / 内部デプロイでのみ有効化し、HTTPS で公開してください。 command: enable: true prefix: - '!' - ! privilege: {} concurrency: pipeline: 20 session: 1 proxy: http: '' https: '' system: instance_id: '' edition: community recovery_key: '' allow_modify_login_info: true disabled_adapters: [] limitation: max_bots: -1 max_pipelines: -1 max_extensions: -1 task_retention: # メモリ内に保持する完了済み非同期タスク履歴の最大数 completed_limit: 200 jwt: expire: 604800 secret: '' database: use: sqlite sqlite: path: 'data/langbot.db' postgresql: host: '127.0.0.1' port: 5432 user: 'postgres' password: 'postgres' database: 'postgres' vdb: use: chroma qdrant: url: '' host: localhost port: 6333 api_key: '' seekdb: mode: embedded # 'embedded' または 'server' # 組み込みモード設定: path: './data/seekdb' database: 'langbot' # サーバーモード設定(mode='server' の場合): host: 'localhost' port: 2881 user: 'root' password: '' tenant: '' # OceanBase サーバー向けの任意項目 milvus: uri: 'http://127.0.0.1:19530' token: '' db_name: '' pgvector: host: '127.0.0.1' port: 5433 database: 'langbot' user: 'postgres' password: 'postgres' storage: use: local cleanup: # ローカル/S3 のアップロードファイルと古いログを定期的に削除するか enabled: true # クリーンアップ確認間隔(時間) check_interval_hours: 1 # ストレージルート直下のアップロードファイルを保持する日数 uploaded_file_retention_days: 7 # LangBot ログファイルを保持する日数 log_retention_days: 3 s3: endpoint_url: '' access_key_id: '' secret_access_key: '' region: 'us-east-1' bucket: 'langbot-storage' plugin: enable: true runtime_ws_url: 'ws://langbot_plugin_runtime:5400/control/ws' enable_marketplace: true display_plugin_debug_url: 'ws://localhost:5401/plugin/debug/ws' binary_storage: # 1 つのプラグインバイナリストレージ値の最大バイト数 max_value_bytes: 10485760 monitoring: auto_cleanup: # 期限切れの監視レコードを自動削除するか enabled: true # 監視レコードの保持日数 retention_days: 30 # クリーンアップ確認間隔(時間) check_interval_hours: 1 # 各監視テーブルで 1 回に削除する期限切れ行数 delete_batch_size: 1000 box: backend: 'local' # 'local' (Docker/nsjail), 'docker', 'nsjail', または 'e2b'。BOX__BACKEND で書き込めます。 runtime: endpoint: '' # 外部 Box Runtime ベース URL(例: 'ws://127.0.0.1:5410')。空の場合はローカル自動管理ランタイムを使用。 local: profile: 'default' image: '' # カスタムローカルサンドボックスイメージ。空の場合はプロファイルデフォルトを使用。 host_root: './data/box' # ローカルワークスペースマウント用のホストルートディレクトリ。Docker デプロイ時は langbot_box にマウントする絶対ホストパスを使用。 default_workspace: '' # デフォルトは '/default'。 skills_root: 'skills' # Box が管理する Skill パッケージディレクトリ。相対パスは host_root 配下に解決されます。 allowed_mount_roots: # 空の場合はデフォルトで ['']。 - './data/box' - '/tmp' workspace_quota_mb: null # オプションのディスククォータオーバーライド (>= 0)。null = プロファイルデフォルト。 e2b: api_key: '' # E2B_API_KEY 環境変数でも設定可能。 api_url: '' # セルフホストデプロイ用のカスタム API URL。 template: '' # デフォルトテンプレート ID(例: 'base', 'python-3.11')。 space: # Space サービス URL url: 'https://space.langbot.app' # Space モデルリクエスト API URL(MaaS) models_gateway_api_url: 'https://api.langbot.cloud/v1' # OAuth 認可ページ URL oauth_authorize_url: 'https://space.langbot.app/auth/authorize' disable_models_service: false disable_telemetry: false ``` ## 補足 - `storage.cleanup.uploaded_file_retention_days` はストレージルート直下の一時アップロードファイルのみを削除します。プラグイン設定ファイルやディレクトリ配下の内部オブジェクトは削除しません。 - `storage.cleanup.log_retention_days` はファイル名の日付に基づいて古いログを削除します。デフォルトでは最大 3 日分のログを保持します。 - SQLite をデータベースとして使用している場合、監視レコードの自動削除後にデータベースファイルの空き容量を直接解放します。 - `plugin.binary_storage.max_value_bytes` は 1 つのプラグインバイナリストレージ値のサイズを制限します。デフォルトは 10 MiB です。 - WebUI のサイドバーには「ストレージ分析」ページがあり、データベース、ログ、アップロードファイル、ベクターストア、プラグイン、MCP、一時ファイル、クリーンアップ候補を確認できます。 - `api.global_api_key` はエージェント / 自動化向けのグローバル API キーです。設定すると、HTTP API または組み込み MCP サーバー(`/mcp`)の呼び出し時に `X-API-Key: ` または `Authorization: Bearer *** を送るだけで認証されます(ログインセッションやデータベース保存の `lbk_` キーは不要)。`config.yaml` に平文で保存されるため、信頼できる / 内部デプロイでのみ有効化し、HTTPS で公開してください。[API キー認証](https://github.com/langbot-app/LangBot/blob/master/docs/API_KEY_AUTH.md) を参照。 ## 環境変数による設定 `config.yaml` の設定は環境変数を介して設定できます。環境変数名は大文字で、二重アンダースコアで接続されます。例: `API__PORT` は `api.port` を表します。 - `API__PORT` は `api.port` を表します - `CONCURRENCY__PIPELINE` は `concurrency.pipeline` を表します - `DATABASE__SQLITE__PATH` は `database.sqlite.path` を表します - `STORAGE__CLEANUP__UPLOADED_FILE_RETENTION_DAYS` は `storage.cleanup.uploaded_file_retention_days` を表します - `STORAGE__CLEANUP__LOG_RETENTION_DAYS` は `storage.cleanup.log_retention_days` を表します - `MONITORING__AUTO_CLEANUP__RETENTION_DAYS` は `monitoring.auto_cleanup.retention_days` を表します - `PLUGIN__BINARY_STORAGE__MAX_VALUE_BYTES` は `plugin.binary_storage.max_value_bytes` を表します - `BOX__BACKEND` は `box.backend` を表します - `BOX__LOCAL__HOST_ROOT` は `box.local.host_root` を表します - `BOX__LOCAL__SKILLS_ROOT` は `box.local.skills_root` を表します 起動時、LangBot はすべての環境変数を読み取り、対応する設定を `config.yaml` に適用して `data/config.yaml` ファイルに書き込みます。 Box 関連設定は `langbot` サービスに統一形式の `BOX__*` 環境変数で設定します。LangBot は起動時にそれらを `data/config.yaml` に適用し、INIT RPC 経由で Box 設定を `langbot_box` に渡します。`LANGBOT_BOX_*` や `BOX__*` を `langbot_box` に設定しても直接読み取られません。