Skip to main content
LangBot の実行設定は 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_keyX-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 が空ならリンクのみを生成します。
グローバル API キー、JWT シークレット、DB/S3 認証情報、メールプロバイダーのシークレット、E2B キーは機密情報です。本番では環境変数を優先し、実値を Git にコミットせず、認証対象のエンドポイントは HTTPS で公開してください。

受付・容量制限

  • concurrency は実行中・待機中のパイプライン処理をインスタンス全体および Workspace 単位で制限します。
  • webhooks は Workspace ごとの有効な宛先数とインスタンス全体の送信中リクエスト数を制限します。
  • cloud.directory は 1 つの Cloud 論理インスタンスに対する運用上の安全上限であり、サブスクリプション権限ではありません。上限超過の権威ディレクトリ更新は切り捨てず、全体を拒否します。通常のセルフホストでは既定値を維持してください。
  • system.blocking_executor、各 *_retentionresponse_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_databasedatabase.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_limitsauto_cleanup は大きなページ、CSV、offset、古いレコードがメモリや PostgreSQL を独占しないようにします。

Box サンドボックス

  • box.enabled は総合スイッチです。無効にするとネイティブサンドボックスツール、Skill の追加/編集、stdio MCP も無効になりますが、読み取り専用 Skill 一覧と HTTP/SSE MCP は利用できます。
  • box.backendlocaldockernsjaile2b から選び、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.urlmodels_gateway_api_urloauth_authorize_url は Space OAuth/API と MaaS の接続先です。2 つの disable_* でモデルサービスとテレメトリーを個別に無効化できます。

環境変数による上書き

ネストしたキーを大文字にし、階層を二重アンダースコアで連結します。
  • API__PORTapi.port
  • WORKSPACE__INVITATIONS__PUBLIC_WEB_URLworkspace.invitations.public_web_url
  • CONCURRENCY__PENDING_QUERIES_PER_WORKSPACEconcurrency.pending_queries_per_workspace
  • DATABASE__POSTGRESQL__POOL_SIZEdatabase.postgresql.pool_size
  • STORAGE__CLEANUP__MAX_FILES_PER_RUNstorage.cleanup.max_files_per_run
  • PLUGIN__WORKER__MAX_TOTAL_MEMORY_MBplugin.worker.max_total_memory_mb
  • MCP__STDIO__ENABLEDmcp.stdio.enabled
  • BOX__DEFAULT_MEMORY_MBbox.default_memory_mb
起動時に LangBot が環境変数を適用し、結果を data/config.yaml に書き込みます。
Docker では統一された BOX__* 環境変数を langbot サービスに設定してください。LangBot は INIT RPC で Box 設定を langbot_box へ渡すため、langbot_box に直接設定した変数は読み取られません。