Skip to Content
デベロッパーガイドDaemon設定リファレンス

設定リファレンス

概要

このページでは、qwen serve デーモンとそのアダプターに影響を与えるすべての設定(環境変数、CLIフラグ、settings.json のキー、プログラムからのオプション)をまとめています。機能固有のページでは、横断的な設定の詳細が必要な場合にここへリンクしています。

CLIフラグ(qwen serve

フラグデフォルト効果
--hostname <host>string127.0.0.1バインドアドレス。ループバック値: 127.0.0.1localhost::1[::1]。ループバック以外の場合、起動時にベアラートークンが必要です。host:port 形式の入力は拒否され、--port の使用が案内されます。
--port <n>number4170リッスンポート。0 はエフェメラルポートを意味します。
--token <s>stringenvベアラートークン。QWEN_SERVER_TOKEN をオーバーライドし、起動時にトリミングされます。プロセスのコマンドラインに表示されるため、デプロイ時には環境変数の使用を推奨します。
--openbooleanfalseランタイムの準備完了後にマウントされた Web Shell を開きます。設定されたトークンは URL フラグメントとして渡されます。ブラウザ起動が不適格な場合、素の --open はサイレントな no-op のままです。
--open-with-authbooleanfalseループバック上でベアラ認証付きの Web Shell を開きます。有効な Web Shell とビルド済みアセットが必要です。選択された --token / QWEN_SERVER_TOKEN を再利用するか、リッスン前にプロセス生存期間の 256 ビットベアラを生成します。ブラウザ不適格環境では、シークレットを含むフラグメント URL を開始して出力します。ServeOptions や SDK の設定ではありません。
--require-authbooleanfalseベアラ認証をループバックおよび /health に拡張します。トークンなしでは起動が拒否されます。
--workspace <dir>absolute path / repeatableprocess.cwd()起動時のワークスペースランタイム。繰り返して追加の分離されたランタイムを登録できます。最初がプライマリです。すべての値は絶対パスかつディレクトリである必要があります。起動時に正規化されます。
--memory-project-scope <mode>git-root / workspaceworkspaceプロジェクトメモリのパーティション。workspace は正確なワークスペースディレクトリごとに分離します。git-root は同じ Git ルートにあるワークスペース間で共有されるレガシー互換スコープです。QWEN_CODE_MEMORY_PROJECT_SCOPE をオーバーライドします。
--max-sessions <n>number32ワークスペースごとのアクティブセッション上限。0 / Infinity は無制限を意味します。NaN / 負の値はエラーをスローします。
--max-total-sessions <n>number複数の起動時/復元ワークスペース用に導出デーモン全体のアクティブセッション上限。省略時、ワークスペースごとの上限と起動時/復元ワークスペース数から有限のデフォルト値が 1 回だけ導出されます。0 / Infinity は無制限を意味します。
--max-pending-prompts-per-session <n>number5セッションごとに受け入れられたが保留中または実行中のプロンプトの上限。超過したプロンプトは 503 を返します。0 / Infinity は無制限を意味します。負の値または非整数値はエラーをスローします。
--max-connections <n>number256HTTPリスナーの server.maxConnections0 / Infinity は無制限を意味します。
--enable-session-shellbooleanfalsePOST /session/:id/shell の直接実行を有効にします。ベアラートークンが必要であり、すべての呼び出しにセッションにバインドされた X-Qwen-Client-Id を含める必要があります。
--event-ring-size <n>number8000セッションごとのSSEリプレイリング。ソフトキャップは 1_000_000 です。
--compacted-replay-max-bytes <n>positive integer4194304POST /session/:id/load が返す有界インメモリリプレイスナップショットのバイト上限。ハードキャップは 268435456 です。
--max-journal-events <n>positive safe integer10000未完了ターンの liveJournal リプレイエントリのセッションごとのベースライン上限。アダプティブ成長がこれを引き上げることができます(--max-journal-bytes を参照)。いずれかのジャーナルフラグを固定すると成長が無効になります。
--max-journal-bytes <n>positive safe integer8388608(8 MiB)進行中の liveJournal のセッションごとのベースラインバイト上限。ターンがこれを超えると、アダプティブ成長がセッションのキャップを必要に応じて引き上げます。2倍に向かいますが、残りのプールヘッドルームによって制限され、セッションごとの 256 MiB のハードキャップを超えることはありません — 有効な --memory-budget-mb の 5% のデーモン全体のプール内(1024 MB でキャップ。有効な予算が 1024 MB 最小値を下回る場合は 0 — 成長無効)、すべてのワークスペースブリッジで共有。ヘッドルームがない場合、最古のエントリは history_truncated マーカー付きで削除されます。いずれかのジャーナルフラグを固定すると成長が無効になります。
--memory-budget-mb <n>integer in [1024, 1048576]cgroup 制約またはホストメモリの 50%、フラグの最大値(1048576 MB)を上限デーモンプロセスツリーの合計メモリ予算。解決された利用可能メモリの上限でキャップされます。デーモンステータスの limits.memory で報告されます。子プロセスのサイズ決定には使用されません。現在の唯一のコンシューマーはアダプティブな live-journal 成長です(--max-journal-bytes を参照)。起動時は範囲外の値を拒否します。
--memory-pressure-mode <mode>off | observeobserveデーモンが自身の RSS と V8 ヒープからメモリプレッシャーレベルを導出するかどうか。両モードとも runtime.memory.pressure を報告します。observe のみ daemon_memory_pressure を発生させます。ルートプロセスのみ。是正措置はありません。
--child-heap-mode <mode>off | observeobserveデーモンが予算の子ごとのヒープパーティションをモデル化するかどうか。observe はそれを報告し、それを超えたスポーンをカウントします。何も適用されません。off はパーティションを一切公開しません。maxConcurrentChildrenperChildCeilingMb は両方とも null になります。
--http-bridgebooleantrueステージ1ブリッジモード。--no-http-bridge でも http-bridge にフォールバックし、stderrに出力します。
--mcp-client-budget <n>positive integerunsetWorkspaceMcpBudget.clientBudget を設定し、childEnvOverrides を通じてACP子プロセスに転送します。
--mcp-budget-mode <m>off / warn / enforcewarn when budget is set, otherwise offWorkspaceMcpBudget.mode を設定します。enforce には --mcp-client-budget が必要です。
--external-tool-guard-mode <m>off / requiredoff管理された ACP 外部の事前実行ガードを有効にします。required は、ループバックプロバイダーが v1 ハンドシェイクを完了しない限り起動を失敗します。
--external-tool-guard-endpoint <url>loopback HTTP(S) originunsetrequired モードでのみ使用されるプロバイダーオリジン。オリジンのみで、127.0.0.1localhost、または ::1 を使用する必要があります。パス、資格情報、リダイレクト、プロキシルーティングは拒否されます。
--external-tool-guard-timeout-ms <n>integer 100..300003000ハンドシェイクおよび prepare ごとのデッドライン。タイムアウトはハンドシェイク中は起動を失敗させ、ターン中は呼び出しを fail closed します。
--allow-origin <pattern>repeatable stringunsetデフォルトのCORS拒否を置き換えるクロスオリジン許可リスト。* は任意のオリジンを許可しますが、トークンが必要です。
--allow-private-auth-base-urlbooleanfalse/workspace/auth/provider による localhost / プライベートネットワーク認証プロバイダーの baseUrl のインストールを許可します。信頼されたローカル開発環境でのみ使用してください。
--web / --no-webbooleantrueデーモンルートでビルド済み Web Shell SPA を提供します(GET //assets/*、および /session/:id のドキュメントナビゲーション)。これらのエントリーポイントは bearerAuth より前にマウントされます。すべての API ルートはトークン保護されたままです。--no-web でデーモンを API のみにします。
--prompt-deadline-ms <n>positive integerunsetサーバー側のプロンプトの実時間制限(ミリ秒)。タイムアウトすると中止され、エラーが返されます。
--writer-idle-timeout-ms <n>positive integerunsetSSE接続ごとのアイドルタイムアウト(ミリ秒)。この時間イベントが送信されない場合、デーモンはSSE接続を閉じます。
--channel-idle-timeout-ms <n>non-negative integer0最後のセッションが閉じられた後、ACP子プロセスを存続させる時間。0 は即座に回収することを意味します。
--initialize-timeout-ms <n>positive integer10000ACP子プロセスのリクエストタイムアウト。initialize ハンドシェイクを含みます(ミリ秒)。
--session-restore-timeout-ms <n>positive integer60000ACP セッションのロード/再開のタイムアウト(ミリ秒)。このフラグが省略された場合、明示的に指定された initialize タイムアウトは予算を引き上げますが、デフォルト値より下げることはありません。
--permission-response-timeout-ms <n>non-negative integer0通常の権限および ask_user_question レスポンスの共有壁時計タイムアウト。0 またはフラグの省略は無期限に待機します。正の値はタイマーを有効にします。
--session-reap-interval-ms <n>non-negative integer60000セッションリーパーのスキャン間隔。0 で無効になります。
--session-idle-timeout-ms <n>non-negative integer1800000切断されたセッションのアイドル時の回収時間。0 で無効になります。
--rate-limit / --no-rate-limitbooleanenv / offプロンプト、ミューテーション、および読み取りルートに対する階層ごとのHTTPレート制限を有効にします。
--rate-limit-prompt <n>positive integer10ウィンドウごとのプロンプトリクエスト制限。レート制限が有効である必要があります。
--rate-limit-mutation <n>positive integer30ウィンドウごとのミューテーションリクエスト制限。レート制限が有効である必要があります。
--rate-limit-read <n>positive integer120ウィンドウごとの読み取りリクエスト制限。レート制限が有効である必要があります。
--rate-limit-window-ms <n>integer >= 100060000レート制限ウィンドウの長さ。レート制限が有効である必要があります。
フラグなし--QWEN_SERVE_NO_MCP_POOL=1 はプールを完全に無効にします。

環境変数

runQwenServe / Expressミドルウェアによって読み込まれる変数

環境変数効果
QWEN_SERVER_TOKENベアラートークン。起動時にトリミングされます。
QWEN_SERVE_DEBUG1 / true / on / yes(大文字小文字を区別しない)で詳細なstderrログを有効にします。19-observability.md を参照してください。
QWEN_SERVE_NO_MCP_POOL1 でワークスペースMCPトランスポートプールを無効にし、セッションごとの McpClientManager にフォールバックします。capabilitiesは mcp_workspace_pool / mcp_pool_restart を公開しなくなります。
QWEN_SERVE_PROMPT_DEADLINE_MS--prompt-deadline-ms の環境変数フォールバック。
QWEN_SERVE_WRITER_IDLE_TIMEOUT_MS--writer-idle-timeout-ms の環境変数フォールバック。
QWEN_SERVE_RATE_LIMIT1 / true で階層ごとのHTTPレート制限を有効にします。CLIの --rate-limit / --no-rate-limit が優先されます。
QWEN_SERVE_RATE_LIMIT_PROMPT--rate-limit-prompt の環境変数フォールバック。
QWEN_SERVE_RATE_LIMIT_MUTATION--rate-limit-mutation の環境変数フォールバック。
QWEN_SERVE_RATE_LIMIT_READ--rate-limit-read の環境変数フォールバック。
QWEN_SERVE_RATE_LIMIT_WINDOW_MS--rate-limit-window-ms の環境変数フォールバック。
QWEN_SERVE_NEW_FILE_MODEデーモンのテキスト書き込みにおける新規ファイルモードポリシー: owner(デフォルト — 新しいファイルは 0600 で作成され、umask に依存しない)または system(新しいファイルは 0o666 & ~umask に従う)。大文字小文字を区別しません。リテラル 0600owner のエイリアスとして受け付けられます(他の8進モードはサポートされていません)。認識されない値は stderr に警告し、0600 のデフォルトを保持します。既存のファイルは常にモードを保持します。qwen-serve.md — エージェントのテキスト書き込みの新規ファイルモード を参照してください。
QWEN_CODE_MEMORY_PROJECT_SCOPEworkspace はプロジェクトメモリを正確なワークスペースディレクトリごとにキー付けします。git-root はレガシーの共有スコープを選択します。未設定時、デーモンは workspace を注入します。認識されない値は 1 回だけ警告し、レガシーの git-root 動作を保持します。childEnvOverrides ではなくランタイムベース環境経由で伝播します。--memory-project-scope が優先されます。各ワークスペースの remember/forget/dream レーンは保留中タスクを MAX_PENDING = 16 にキャップします。N ワークスペースでは最大 16·N のキューイングされたタスクを許可し、デーモン全体のキャップはありません。

空の QWEN_CODE_MEMORY_PROJECT_SCOPE 値は未設定として扱われ、デフォルトで workspace になります。空でない認識されない値は引き続き 1 回だけ警告し、レガシーの git-root 動作を保持します。

qwen serve CLIラッパーによって読み込まれる変数

環境変数効果
QWEN_CODE_EXTERNAL_TOOL_GUARD_TOKEN制御文字を含まない最大 8192 UTF-16 コード単位の非空白のベアラートークン。required モードでのみ ServeOptions.externalToolGuard にコピーされます。CLI はランタイム環境が凍結される前にアンビエント値を削除します。ACP 子プロセス、チャネルワーカー、および実行環境も防御的にスクラブします。

BridgeOptions.childEnvOverrides を通じてACP子プロセスに転送される変数

runQwenServe はこれらの変数をハンドルごとに構築するため、1つのプロセス内の2つのデーモンが process.env で競合することはありません。budget変数は qwen serve の親プロセス環境変数フォールバックではありません。CLIパスは --mcp-client-budget / --mcp-budget-mode からこれらを生成する必要があります。

環境変数効果
QWEN_SERVE_MCP_CLIENT_BUDGETACP子プロセスの readBudgetFromEnv() によって消費される正の整数文字列。
QWEN_SERVE_MCP_BUDGET_MODEoff / warn / enforce
QWEN_SERVE_MCP_POOL_TRANSPORTSカンマ区切りのトランスポート許可リスト。デフォルトのプールトランスポートは stdio,websocket です。http,sse を明示的に含めることができます。
QWEN_SERVE_MCP_POOL_DRAIN_MSプールエントリのアイドルドレイン遅延。デフォルトは 30000 で、1000..600000 ms にクランプされます。

SDK / アダプターによって読み込まれる変数

環境変数効果
QWEN_DAEMON_URLCLI TUIアダプター、チャネル、およびIDEコンパニオンのデーモンベースURL。
QWEN_DAEMON_TOKENベアラートークン。
QWEN_DAEMON_WORKSPACEPOST /session に送信される cwd をオーバーライドします。

settings.json のキー

デーモンは、各ワークスペースのランタイムをそのワークスペースのマージされた設定と環境オーバーレイから構築します。プロセス全体のリスナー/認証オプションは 1 回だけ解決され、ランタイム固有のサービスと ACP 子プロセスは所有ランタイムのスナップショットを受け取ります。不正な形式の設定は、影響を受けるランタイムに対して文書化された起動フォールバックまたは失敗動作に従います。別のワークスペースの設定が再利用される原因となってはなりません。

キー効果
policy.permissionStrategy'first-responder' | 'designated' | 'consensus' | 'local-only'BridgeOptions.permissionPolicy を設定します。有効な値は policy.permission として /capabilities に表示されます。起動時validatePolicyConfig() を通じて SERVE_CAPABILITY_REGISTRY.permission_mediation.modes に対して検証されます。不明なリテラルは InvalidPolicyConfigError をスローし、起動を明示的に失敗させます。
policy.consensusQuorumpositive integerconsensus ポリシーの N。デフォルトvotersAtIssue.size に対する floor(M/2) + 1 です(M=2 は全会一致、より大きな偶数 M は過半数を意味します)。consensus 以外のポリシーで設定された場合は無視され、起動時にstderrに警告が出力されます。正でない整数は InvalidPolicyConfigError をスローします。04-permission-mediation.md を参照してください。
context.fileNamestringBridgeOptions.contextFilename を通じて getCurrentGeminiMdFilename() をオーバーライドします。
tools.disabledstring[]次のACP子プロセス生成時に無効化されるツール。normalizeDisabledToolList() (packages/cli/src/config/normalizeDisabledTools.ts) を通じて正規化されます。配列以外は [] になり、非文字列エントリはスキップされ、空白はトリミングされ、空のエントリは削除され、重複は最初の出現を保持して削除されます。起動時と restartMcpServer 設定の更新の両方でこの関数が実行されます。ToolRegistry.has(name) は完全一致かつ大文字小文字を区別します。POST /workspace/tools/:name/enabletool_toggled はこのキーを更新します。
tools.approvalMode'default' | 'auto' | ...デフォルトのセッション承認モード。persist: true の場合、POST /session/:id/approval-mode がここに書き込みます。
telemetryobjectOTel設定。キーには enabledotlpEndpointotlpProtocolotlpTracesEndpointotlpLogsEndpointotlpMetricsEndpointtargetoutfileuserIdincludeSensitiveSpanAttributessensitiveSpanAttributeMaxLengthresourceAttributes、および metrics.includeSessionId が含まれます。resolveTelemetrySettings() が起動時にこれを読み取り、initializeTelemetry() を初期化します。userId はプロセス全体であり、デーモンが複数のユーザーにサービスを提供する場合にエンドユーザー ID として設定してはなりません。

ServeOptions(プログラムによる組み込み)

packages/cli/src/serve/types.ts は、パブリックな serve API を通じて渡される型付きオプションを定義します。これは上記の CLI フラグを反映し、以下を追加します。

フィールド効果
eventRingSizeデフォルトのセッションごとのリングサイズをオーバーライドします。
memoryProjectScoperunQwenServe のみ。優先順位はオプション、起動環境変数、そして workspace です。直接の createServeApp 呼び出し元は deps.daemonEnv を使用します。
maxPendingPromptsPerSessionセッションごとの保留中プロンプトの上限。0 / Infinity は無制限を意味します。
mcpPoolActiveプログラムによるスイッチ。デフォルトは QWEN_SERVE_NO_MCP_POOL から取得されます。
externalToolGuardオプションの {mode:'required', endpoint, token, timeoutMs?}。省略時は完全にオフ。required モードはリスニング前にプロバイダーハンドシェイクを実行します。
allowOriginsクロスオリジン許可リスト(string[])。--allow-origin に対応します。
allowPrivateAuthBaseUrlプライベート / localhost 認証プロバイダーの baseUrl のインストールを許可します。
serveWebShellデーモンルートでビルド済み Web Shell SPA を提供します(デフォルト true)。false(CLI の --no-web)はデーモンを API のみにします。ビルドがシェルアセットを省略する場合は効果はありません。
enableSessionShellセッションシェル実行を有効にします。ベアラートークンとセッションにバインドされたクライアントIDは引き続き必要です。
promptDeadlineMsプロンプトの実時間制限。
writerIdleTimeoutMsSSEライターアイドルタイムアウト。
channelIdleTimeoutMs最後のセッションが閉じられた後、ACP子プロセスをウォーム状態に保つ時間。
initializeTimeoutMsACP子プロセスのリクエストタイムアウト。initialize ハンドシェイクを含みます。
sessionRestoreTimeoutMsACP セッションのロード/再開のタイムアウト。優先順位: 明示的な restore 値。それ以外の場合、明示的な initialize 値はデフォルトの 60000 を引き上げますが下げることはありません。それ以外の場合は 60000。
sessionReapIntervalMsセッションリーパーのスキャン間隔。
sessionIdleTimeoutMs切断されたセッションのアイドル時の回収時間。
rateLimit*階層ごとのHTTPレート制限スイッチ、しきい値、およびウィンドウ。

BridgeOptions(プログラムによるブリッジの埋め込み)

packages/acp-bridge/src/bridgeOptions.ts はブリッジオプションを定義します。完全なテーブルについては 03-acp-bridge.md を参照してください。主なフィールドは以下の通りです。

FieldEffect
boundWorkspace必須の正規ワークスペース。
sessionScope'single'(デフォルト)または 'thread'
initializeTimeoutMs, sessionRestoreTimeoutMs, maxSessions, eventRingSize, permissionResponseTimeoutMs, maxPendingPermissionsPerSessionリソース上限のバインド。permissionResponseTimeoutMs は通常の権限と質問で共有されます。0 または省略でタイマーを無効化。
channelFactoryプラグイン可能な ACP 子プロセスファクトリ。デフォルトは defaultSpawnChannelFactory
fileSystemBridgeFileSystem アダプタ。07-workspace-filesystem.md を参照。
permissionPolicy, permissionConsensusQuorum, permissionAuditメディエーターの関連付け。
statusProviderデーモンホストのプレフライトセル。
childEnvOverridesハンドルごとの環境変数の追加または削除。
externalToolGuardオプションのデーモン側のプライベート子から親への prepare RPC のハンドラー。ブリッジはハンドラーの呼び出し前後でチャネルの所有権とアクティブなプロンプトを検証します。
contextFilenamegetCurrentGeminiMdFilename() をオーバーライドします。
channelIdleTimeoutMs最後のセッションが閉じた後に ACP 子プロセスを存続させる時間(ミリ秒)。デフォルトは 0

重要なデフォルト値

ConstantFileValueMeaning
DEFAULT_MAX_SESSIONSbridge.ts32SessionLimitExceededError が発生するまでのセッション上限。
MAX_EVENT_RING_SIZEbridge.ts1_000_000BridgeOptions.eventRingSize のソフトキャップ。タイプミスに対するガード。
DEFAULT_RING_SIZEeventBus.ts8000セッションごとの SSE リプレイリングの深さ。
DEFAULT_MAX_QUEUEDeventBus.ts256サブスクライバーごとのキュー上限。
DEFAULT_MAX_SUBSCRIBERSeventBus.ts64バスごとのサブスクライバー上限。
WARN_THRESHOLD_RATIOeventBus.ts0.75slow_client_warning のトリガー。
WARN_RESET_RATIOeventBus.ts0.375ヒステリシスの再設定しきい値。
DEFAULT_INIT_TIMEOUT_MSbridge.ts10_000ACP initialize ハンドシェイクのタイムアウト。
MCP_RESTART_TIMEOUT_MSbridge.ts300_000/workspace/mcp/:server/restart のブリッジタイムアウト。
DEFAULT_PERMISSION_TIMEOUT_MSbridge.ts0共有の権限および質問の壁時計。0 でタイマーを無効化。
DEFAULT_MAX_PENDING_PER_SESSIONbridge.ts64DEFAULT_MAX_SUBSCRIBERS に整合。
MAX_RESOLVED_PERMISSION_RECORDSpermissionMediator.ts512最近解決された権限の FIFO キュー。
KILL_HARD_DEADLINE_MSspawnChannel.ts10_000チャネルごとのグレースフルシャットダウンのウィンドウ。
SHUTDOWN_FORCE_CLOSE_MSrun-qwen-serve.ts5_000HTTP サーバーの強制クローズタイマー。
MAX_READ_BYTESfs/policy.ts256 * 1024フルスナップショットおよび返されるテキストの上限。より大きな UTF-8 テキストには有限の行制限が必要です。
MAX_WRITE_BYTESfs/policy.ts5 * 1024 * 1024書き込み上限。
MAX_DISPLAY_NAME_LENGTHbridge.ts256セッションの displayName の上限。

相互参照

Last updated on