data/config.yaml にあります。初回起動時に既定テンプレートから生成されます。以下の例は src/langbot/templates/config.yaml と同期しています。
通常のセルフホストで変更が必要なのは主に公開 URL、DB/ベクトルストア、オブジェクトストレージ、Box Runtime です。用途を理解していない容量・Cloud 安全上限は既定値を維持してください。
完全なデフォルト設定
設定グループの説明
API、WebUI、招待
api.portは HTTP API と WebUI のポートです。api.webhook_prefixはプラットフォームのコールバック URL を生成する公開ベース URL で、本番環境では通常 HTTPS リバースプロキシのオリジンを指定します。- WebUI と API のオリジンが異なる場合は
api.webui_urlを設定します。OAuth リダイレクトはこのサーバー側設定とwebhook_prefixのみを信頼し、リクエストのHost/Originヘッダーは信頼しません。 api.global_api_keyはX-API-KeyまたはAuthorization: Bearerで HTTP Service API と組み込み MCP サーバーを認証します。ログインセッションや DB 保存のlbk_キーは不要で、空文字列は無効を意味します。workspace.invitations.public_web_urlは招待リンクの公開 URL です。空の場合はapi.webui_url、次にapi.webhook_prefixへフォールバックします。メール配信はresendまたはsmtpを選び、providerが空ならリンクのみを生成します。
受付・容量制限
concurrencyは実行中・待機中のパイプライン処理をインスタンス全体および Workspace 単位で制限します。webhooksは Workspace ごとの有効な宛先数とインスタンス全体の送信中リクエスト数を制限します。cloud.directoryは 1 つの Cloud 論理インスタンスに対する運用上の安全上限であり、サブスクリプション権限ではありません。上限超過の権威ディレクトリ更新は切り捨てず、全体を拒否します。通常のセルフホストでは既定値を維持してください。system.blocking_executor、各*_retention、response_limitsはスレッド、キャッシュ、ソケット、上流レスポンスのメモリ使用を有界にします。system.limitationの-1は無制限です。force_box_session_id_templateは SaaS のサンドボックス制約用で、通常のセルフホストでは空のままにします。
データベースとベクトルストア
database.useで SQLite または PostgreSQL を選択します。database.postgresql.urlが空でなければ分割された接続項目より優先され、TLS/クエリオプションも保持できます。- PostgreSQL のプールとタイムアウトは共有ランタイム資源を制限します。
database.cloud_migration.operator_dsn_envは運用者専用のマイグレーション DSN を格納する環境変数名で、ランタイムロールとは分離してください。 vdb.useで利用するベクトルバックエンドを選びます。実際に選択したバックエンドだけを設定します。vdb.use: seekdbは、ソースデプロイではuv sync --extra seekdb、パッケージデプロイではuvx --from 'langbot[seekdb]@latest' langbotが必要です。公式 Docker/Kubernetes イメージには依存関係がすでに含まれており、追加のビルド引数は不要です。vdb.pgvector.use_business_databaseはdatabase.postgresqlを再利用します。allowed_dimensionsはリリースマイグレーションが作成する ANN インデックスの次元を制御します。- Valkey Search には Search モジュール入りの Valkey(例:
valkey/valkey-bundle:9.1.0)が必要です。
ストレージ、プラグイン、MCP、監視
storage.max_object_read_bytesは Core のメモリへ読み込む 1 オブジェクトの上限です。クリーンアップ項目は 1 回のファイル走査量を、s3.max_concurrencyはワーカースレッドへ委譲する boto3 操作数を制限します。plugin.workerは各インストールとインスタンス全体のハード上限です。プラグイン manifest から緩和できません。再起動関連項目は Runtime の再起動ストームを抑制します。mcp.lifecycle_concurrencyは MCP の起動・停止バーストを制限します。mcp.stdio.enabledは HTTP/SSE MCP を維持したままローカル stdio MCP だけを無効化できます。monitoring.query_limitsとauto_cleanupは大きなページ、CSV、offset、古いレコードがメモリや PostgreSQL を独占しないようにします。
Box サンドボックス
box.enabledは総合スイッチです。無効にするとネイティブサンドボックスツール、Skill の追加/編集、stdio MCP も無効になりますが、読み取り専用 Skill 一覧と HTTP/SSE MCP は利用できます。box.backendはlocal、docker、nsjail、e2bから選び、runtime.endpointは外部 WebSocket Runtime への接続に使います。box.limitsはセッション、プロセス、Workspace 走査、保持する受付フェンス、RPC ファイルサイズを制限します。box.admissionは Cloud v2 の強制受付ポリシーです。OSS の既定値はrequired: falseで、パイプラインや Workspace 権限、ツール呼び出しから Runtime 所有の上限を緩和できません。- Docker では
box.local.host_rootに Box コンテナからマウント可能な絶対ホストパスを指定します。 box.default_memory_mbは各 stdio MCP プロセスの nsjail cgroup メモリ既定値です。Node.js MCP は Python MCP より多く必要になりやすく、低すぎる場合は終了コード137がよく発生します。
LangBot Space
space.url、models_gateway_api_url、oauth_authorize_url は Space OAuth/API と MaaS の接続先です。2 つの disable_* でモデルサービスとテレメトリーを個別に無効化できます。
環境変数による上書き
ネストしたキーを大文字にし、階層を二重アンダースコアで連結します。API__PORT→api.portWORKSPACE__INVITATIONS__PUBLIC_WEB_URL→workspace.invitations.public_web_urlCONCURRENCY__PENDING_QUERIES_PER_WORKSPACE→concurrency.pending_queries_per_workspaceDATABASE__POSTGRESQL__POOL_SIZE→database.postgresql.pool_sizeSTORAGE__CLEANUP__MAX_FILES_PER_RUN→storage.cleanup.max_files_per_runPLUGIN__WORKER__MAX_TOTAL_MEMORY_MB→plugin.worker.max_total_memory_mbMCP__STDIO__ENABLED→mcp.stdio.enabledBOX__DEFAULT_MEMORY_MB→box.default_memory_mb
data/config.yaml に書き込みます。
Docker では統一された
BOX__* 環境変数を langbot サービスに設定してください。LangBot は INIT RPC で Box 設定を langbot_box へ渡すため、langbot_box に直接設定した変数は読み取られません。