Skip to Content
EntwicklerhandbuchDaemonKonfigurationsreferenz

Konfigurationsreferenz

Übersicht

Diese Seite enthält alle Einstellungen, die sich auf den qwen serve-Daemon und seine Adapter auswirken: Umgebungsvariablen, CLI-Flags, settings.json-Schlüssel und programmatische Optionen. Themenspezifische Seiten verweisen hierher, wenn sie übergreifende Konfigurationsdetails benötigen.

CLI-Flags (qwen serve)

FlagTypStandardEffekt
--hostname <host>Zeichenkette127.0.0.1Bindungsadresse. Loopback-Werte: 127.0.0.1, localhost, ::1, [::1]. Nicht-Loopback erfordert ein Bearer-Token beim Start. host:port-Eingabe wird mit Hinweis auf --port abgewiesen.
--port <n>Zahl4170Lauschport; 0 bedeutet ephemer.
--token <s>ZeichenketteenvBearer-Token. Überschreibt QWEN_SERVER_TOKEN und wird beim Start getrimmt. Es erscheint in der Prozesskommandozeile, daher in Bereitstellungen env vorziehen.
--require-authbooleschfalseErweitert Bearer-Authentifizierung auf Loopback und /health; der Start wird ohne Token verweigert.
--workspace <dir>absoluter Pfadprocess.cwd()Gebundenes Arbeitsverzeichnis. Muss absolut und ein Verzeichnis sein; wird einmal beim Start kanonisch gemacht.
--max-sessions <n>Zahl20Obergrenze für aktive Sitzungen. 0 / Infinity bedeutet unbegrenzt; NaN / negative Werte werfen einen Fehler.
--max-pending-prompts-per-session <n>Zahl5Obergrenze für akzeptierte, aber ausstehende/laufende Prompts pro Sitzung. Überschüssiger Prompt gibt 503 zurück. 0 / Infinity bedeutet unbegrenzt; negative oder nicht-ganzzahlige Werte werfen einen Fehler.
--max-connections <n>Zahl256HTTP-Listener server.maxConnections; 0 / Infinity bedeutet unbegrenzt.
--enable-session-shellbooleschfalseAktiviert direkte Ausführung über POST /session/:id/shell. Erfordert Bearer-Token, und jeder Aufruf muss eine sitzungsgebundene X-Qwen-Client-Id enthalten.
--event-ring-size <n>Zahl8000Per-Sitzung SSE-Wiedergabering; weiche Obergrenze ist 1_000_000.
--http-bridgebooleschtrueStufe-1-Bridge-Modus. --no-http-bridge fällt auf http-bridge zurück und gibt eine Meldung auf stderr aus.
--mcp-client-budget <n>positive Ganzzahlnicht gesetztSetzt WorkspaceMcpBudget.clientBudget und leitet es an das ACP-Kind über childEnvOverrides weiter.
--mcp-budget-mode <m>off / warn / enforcewarn wenn Budget gesetzt, sonst offSetzt WorkspaceMcpBudget.mode; enforce erfordert --mcp-client-budget.
--allow-origin <pattern>wiederholbare Zeichenkettenicht gesetztCross-Origin-Zulassungsliste, die die standardmäßige CORS-Verweigerung ersetzt. * erlaubt jeden Ursprung, erfordert aber ein Token.
--allow-private-auth-base-urlbooleschfalseErlaubt /workspace/auth/provider, eine Auth-Provider-baseUrl auf localhost/privatem Netzwerk zu installieren; nur in vertrauenswürdiger lokaler Entwicklung verwenden.
--prompt-deadline-ms <n>positive Ganzzahlnicht gesetztServerseitige Prompt-Wallclock-Obergrenze in ms. Timeout bricht ab und gibt einen Fehler zurück.
--writer-idle-timeout-ms <n>positive Ganzzahlnicht gesetztLeerlauf-Timeout pro SSE-Verbindung in ms. Der Daemon schließt die SSE-Verbindung, wenn für diese Dauer kein Ereignis gesendet wird.
--channel-idle-timeout-ms <n>nicht-negative Ganzzahl0Wie lange das ACP-Kind nach dem Schließen der letzten Sitzung am Leben bleibt. 0 bedeutet sofortige Freigabe.
--session-reap-interval-ms <n>nicht-negative Ganzzahl60000Intervall des Sitzungsbereinigungsscans; 0 deaktiviert es.
--session-idle-timeout-ms <n>nicht-negative Ganzzahl1800000Leerlauf-Bereinigungszeit für getrennte Sitzungen; 0 deaktiviert es.
--rate-limit / --no-rate-limitbooleschenv / offAktiviert HTTP-Ratenbegrenzung pro Stufe für Prompt-, Mutations- und Lese-Routen.
--rate-limit-prompt <n>positive Ganzzahl10Prompt-Anfragelimit pro Fenster; erfordert aktivierte Ratenbegrenzung.
--rate-limit-mutation <n>positive Ganzzahl30Mutations-Anfragelimit pro Fenster; erfordert aktivierte Ratenbegrenzung.
--rate-limit-read <n>positive Ganzzahl120Lese-Anfragelimit pro Fenster; erfordert aktivierte Ratenbegrenzung.
--rate-limit-window-ms <n>Ganzzahl >= 100060000Länge des Ratenbegrenzungsfensters; erfordert aktivierte Ratenbegrenzung.
kein FlagQWEN_SERVE_NO_MCP_POOL=1 deaktiviert den Pool vollständig.

Umgebungsvariablen

Gelesen von runQwenServe / Express-Middleware

EnvEffekt
QWEN_SERVER_TOKENBearer-Token; wird beim Start getrimmt.
QWEN_SERVE_DEBUG1 / true / on / yes (Groß-/Kleinschreibung nicht beachtet) aktiviert ausführliche stderr-Protokolle. Siehe 19-observability.md.
QWEN_SERVE_NO_MCP_POOL1 deaktiviert den Arbeitsbereich-MCP-Transportpool und fällt auf den sitzungsbezogenen McpClientManager zurück; Fähigkeiten werben nicht mehr mcp_workspace_pool / mcp_pool_restart an.
QWEN_SERVE_PROMPT_DEADLINE_MSEnv-Fallback für --prompt-deadline-ms.
QWEN_SERVE_WRITER_IDLE_TIMEOUT_MSEnv-Fallback für --writer-idle-timeout-ms.
QWEN_SERVE_RATE_LIMIT1 / true aktiviert HTTP-Ratenbegrenzung pro Stufe; CLI --rate-limit / --no-rate-limit hat Vorrang.
QWEN_SERVE_RATE_LIMIT_PROMPTEnv-Fallback für --rate-limit-prompt.
QWEN_SERVE_RATE_LIMIT_MUTATIONEnv-Fallback für --rate-limit-mutation.
QWEN_SERVE_RATE_LIMIT_READEnv-Fallback für --rate-limit-read.
QWEN_SERVE_RATE_LIMIT_WINDOW_MSEnv-Fallback für --rate-limit-window-ms.

An das ACP-Kind über BridgeOptions.childEnvOverrides weitergeleitet

runQwenServe erstellt diese pro Handle, sodass sich zwei Daemons in einem Prozess nicht um process.env streiten. Die Budgetvariablen sind keine Env-Fallbacks des Elternprozesses für qwen serve; der CLI-Pfad muss sie aus --mcp-client-budget / --mcp-budget-mode generieren.

EnvEffekt
QWEN_SERVE_MCP_CLIENT_BUDGETPositive Ganzzahl-Zeichenfolge, die von der readBudgetFromEnv() des ACP-Kindes verbraucht wird.
QWEN_SERVE_MCP_BUDGET_MODEoff / warn / enforce.
QWEN_SERVE_MCP_POOL_TRANSPORTSDurch Kommas getrennte Transport-Allowlist; standardmäßig gepoolte Transports sind stdio,websocket; kann explizit http,sse enthalten.
QWEN_SERVE_MCP_POOL_DRAIN_MSPool-Eintrag Leerlauf-Ablaufverzögerung; Standard 30000, begrenzt auf 1000..600000 ms.

Gelesen von SDK / Adaptern

EnvEffekt
QWEN_DAEMON_URLDaemon-Basis-URL für CLI-TUI-Adapter, Kanäle und IDE-Begleiter.
QWEN_DAEMON_TOKENBearer-Token.
QWEN_DAEMON_WORKSPACEÜberschreibt das cwd, das an POST /session gesendet wird.

settings.json-Schlüssel

Der Daemon liest die Einstellungen einmal beim Start durch loadSettings(boundWorkspace) innerhalb von runQwenServe. Fehlerhafte Einstellungen fallen über einen try/catch-Schutz auf Standardwerte zurück.

SchlüsselTypEffekt
policy.permissionStrategy'first-responder' | 'designated' | 'consensus' | 'local-only'Setzt BridgeOptions.permissionPolicy; der aktive Wert erscheint in /capabilities als policy.permission. Boot validiert über validatePolicyConfig() gegen SERVE_CAPABILITY_REGISTRY.permission_mediation.modes. Unbekannte Literale werfen InvalidPolicyConfigError und führen zu einem expliziten Startfehler.
policy.consensusQuorumpositive ganze ZahlN für die consensus-Richtlinie. Standard ist floor(M/2) + 1 über votersAtIssue.size (M=2 bedeutet einstimmig; größeres gerades M bedeutet mehr als die Hälfte). Wenn unter einer Nicht-Consensus-Richtlinie gesetzt, wird es ignoriert und der Start gibt eine stderr-Warnung aus. Nicht-positive ganze Zahlen werfen InvalidPolicyConfigError. Siehe 04-permission-mediation.md.
context.fileNameZeichenfolgeÜberschreibt getCurrentGeminiMdFilename() über BridgeOptions.contextFilename.
tools.disabledZeichenfolge[]Tools, die für den nächsten ACP-Kind-Spawn deaktiviert sind. Normalisiert durch normalizeDisabledToolList() (packages/cli/src/config/normalizeDisabledTools.ts): Nicht-Arrays werden zu [], Nicht-Zeichenfolgen-Einträge werden übersprungen, Leerzeichen werden getrimmt, leere Einträge werden entfernt und Duplikate werden unter Beibehaltung des ersten Vorkommens entfernt. Boot und restartMcpServer-Einstellungsaktualisierung durchlaufen beide diese Funktion. ToolRegistry.has(name) ist exakt und case-sensitiv. POST /workspace/tools/:name/enable und tool_toggled aktualisieren diesen Schlüssel.
tools.approvalMode'default' | 'auto' | ...Standard-Sitzungsgenehmigungsmodus; POST /session/:id/approval-mode schreibt hier, wenn persist: true.
telemetryObjektOTel-Konfiguration. Schlüssel umfassen enabled, otlpEndpoint, otlpProtocol, otlpTracesEndpoint, otlpLogsEndpoint, otlpMetricsEndpoint, target, outfile, includeSensitiveSpanAttributes, resourceAttributes und metrics.includeSessionId. resolveTelemetrySettings() liest es beim Start und initialisiert initializeTelemetry().

ServeOptions (programmatische Einbettung)

packages/cli/src/serve/types.ts definiert das typisierte Optionen-Objekt, das sowohl von runQwenServe als auch von createServeApp akzeptiert wird. Es spiegelt die obigen CLI-Flags wider und fügt hinzu:

FeldEffekt
eventRingSizeÜberschreibt die standardmäßige Ringgröße pro Sitzung.
maxPendingPromptsPerSessionAnzahl ausstehender Prompts pro Sitzung; 0 / Infinity bedeutet unbegrenzt.
mcpPoolActiveProgrammatischer Schalter, standardmäßig von QWEN_SERVE_NO_MCP_POOL abgeleitet.
allowOriginsCross-Origin-Whitelist (string[]), entspricht --allow-origin.
allowPrivateAuthBaseUrlErmöglicht die Installation einer privaten / Localhost-Authentifizierungsanbieter-baseUrl.
enableSessionShellAktiviert die Ausführung von Sitzungs-Shells; Bearer-Token und sitzungsgebundene Client-ID sind weiterhin erforderlich.
promptDeadlineMsPrompt-Wanduhrzeit-Limit.
writerIdleTimeoutMsInaktivitäts-Timeout des SSE-Writers.
channelIdleTimeoutMsWie lange der ACP-Child nach dem Schließen der letzten Sitzung warm gehalten wird.
sessionReapIntervalMsIntervall für den Sitzungsbereinigungsscan.
sessionIdleTimeoutMsInaktivitäts-Timeout für getrennte Sitzungen.
rateLimit*HTTP-Ratenbegrenzungsschalter pro Stufe, Schwellenwerte und Fenster.

BridgeOptions (programmatische Brückeneinbettung)

packages/acp-bridge/src/bridgeOptions.ts definiert Brückenoptionen. Die vollständige Tabelle finden Sie in 03-acp-bridge.md. Wichtige Felder:

FeldEffekt
boundWorkspaceErforderlicher kanonischer Arbeitsbereich.
sessionScope'single' (Standard) vs. 'thread'.
initializeTimeoutMs, maxSessions, eventRingSize, permissionResponseTimeoutMs, maxPendingPermissionsPerSessionBegrenzte Ressourcenobergrenzen.
channelFactoryEinsteckbare ACP-Child-Factory; Standard ist defaultSpawnChannelFactory.
fileSystemBridgeFileSystem-Adapter. Siehe 07-workspace-filesystem.md.
permissionPolicy, permissionConsensusQuorum, permissionAuditMediator-Verdrahtung.
statusProviderDaemon-Host-Preflight-Zellen.
childEnvOverridesUmgebungserweiterungen oder -entfernungen pro Handle.
contextFilenameÜberschreibt getCurrentGeminiMdFilename().
channelIdleTimeoutMsWie lange der ACP-Child nach dem Schließen der letzten Sitzung aktiv bleibt, in ms; Standard 0.

Wichtige Standardwerte

KonstanteDateiWertBedeutung
DEFAULT_MAX_SESSIONSbridge.ts20Sitzungslimit vor SessionLimitExceededError.
MAX_EVENT_RING_SIZEbridge.ts1_000_000Weiches Limit für BridgeOptions.eventRingSize; schützt vor Tippfehlern.
DEFAULT_RING_SIZEeventBus.ts8000Tiefe des SSE-Wiedergaberinges pro Sitzung.
DEFAULT_MAX_QUEUEDeventBus.ts256Warteschlangenlimit pro Abonnent.
DEFAULT_MAX_SUBSCRIBERSeventBus.ts64Abonnentenlimit pro Bus.
WARN_THRESHOLD_RATIOeventBus.ts0.75slow_client_warning-Auslöser.
WARN_RESET_RATIOeventBus.ts0.375Hystereseschwelle zum erneuten Scharfschalten.
DEFAULT_INIT_TIMEOUT_MSbridge.ts10_000Timeout für den ACP-initialize-Handshake.
MCP_RESTART_TIMEOUT_MSbridge.ts300_000Bridge-Timeout für /workspace/mcp/:server/restart.
DEFAULT_PERMISSION_TIMEOUT_MSbridge.ts5 * 60_000Wanduhrzeit pro Berechtigungsanfrage.
DEFAULT_MAX_PENDING_PER_SESSIONbridge.ts64Abgestimmt auf DEFAULT_MAX_SUBSCRIBERS.
MAX_RESOLVED_PERMISSION_RECORDSpermissionMediator.ts512FIFO für kürzlich aufgelöste Berechtigungen.
KILL_HARD_DEADLINE_MSspawnChannel.ts10_000Zeitfenster für das ordnungsgemäße Herunterfahren pro Kanal.
SHUTDOWN_FORCE_CLOSE_MSrun-qwen-serve.ts5_000HTTP-Server-Force-Close-Timer.
MAX_READ_BYTESfs/policy.ts256 * 1024Leselimit.
MAX_WRITE_BYTESfs/policy.ts5 * 1024 * 1024Schreiblimit.
MAX_DISPLAY_NAME_LENGTHbridge.ts256Sitzungs-displayName-Limit.

Querverweise

Last updated on