Skip to Content
Guia do DesenvolvedorDaemonReferência de Configuração

Referência de Configuração

Visão Geral

Esta página reúne todas as configurações que afetam o daemon qwen serve e seus adaptadores: variáveis de ambiente, flags da CLI, chaves do settings.json e opções programáticas. Páginas específicas de recursos fazem referência a esta página quando precisam de detalhes de configuração transversais.

Flags da CLI (qwen serve)

FlagTipoPadrãoEfeito
--hostname <host>string127.0.0.1Endereço de bind. Valores de loopback: 127.0.0.1, localhost, ::1, [::1]. Valores fora de loopback exigem um bearer token na inicialização. A entrada host:port é rejeitada com orientação para usar --port.
--port <n>number4170Porta de escuta; 0 significa efêmera.
--token <s>stringenvBearer token. Sobrescreve QWEN_SERVER_TOKEN e é aparado na inicialização. Aparece na linha de comando do processo, portanto prefira variáveis de ambiente em deployments.
--require-authbooleanfalseEstende a autenticação bearer para loopback e /health; a inicialização recusa iniciar sem um token.
--workspace <dir>absolute pathprocess.cwd()Workspace vinculado. Deve ser absoluto e um diretório; canonizado uma vez na inicialização.
--max-sessions <n>number20Limite de sessões ativas. 0 / Infinity significa ilimitado; valores NaN / negativos lançam exceção.
--max-pending-prompts-per-session <n>number5Limite de prompts aceitos, mas pendentes/em execução por sessão. Prompts em excesso retornam 503. 0 / Infinity significa ilimitado; valores negativos ou não inteiros lançam exceção.
--max-connections <n>number256server.maxConnections do listener HTTP; 0 / Infinity significa ilimitado.
--enable-session-shellbooleanfalseHabilita a execução direta de POST /session/:id/shell. Exige bearer token, e toda chamada deve carregar um X-Qwen-Client-Id vinculado à sessão.
--event-ring-size <n>number8000Ring de replay SSE por sessão; o limite flexível (soft cap) é 1_000_000.
--http-bridgebooleantrueModo bridge da fase 1. --no-http-bridge ainda faz fallback para http-bridge e imprime no stderr.
--mcp-client-budget <n>positive integerunsetDefine WorkspaceMcpBudget.clientBudget e o encaminha para o filho ACP através de childEnvOverrides.
--mcp-budget-mode <m>off / warn / enforcewarn quando o budget é definido, caso contrário offDefine WorkspaceMcpBudget.mode; enforce exige --mcp-client-budget.
--allow-origin <pattern>repeatable stringunsetAllowlist de cross-origin que substitui a negação padrão de CORS. * permite qualquer origem, mas exige um token.
--allow-private-auth-base-urlbooleanfalsePermite que /workspace/auth/provider instale o baseUrl do provedor de autenticação localhost / rede privada; use apenas em desenvolvimento local confiável.
--prompt-deadline-ms <n>positive integerunsetLimite de wallclock do prompt no lado do servidor em ms. O timeout aborta e retorna um erro.
--writer-idle-timeout-ms <n>positive integerunsetTimeout de ociosidade por conexão SSE em ms. O daemon fecha a conexão SSE quando nenhum evento é enviado por essa duração.
--channel-idle-timeout-ms <n>non-negative integer0Por quanto tempo manter o filho ACP ativo após o fechamento da última sessão. 0 significa recuperar (reclaim) imediatamente.
--session-reap-interval-ms <n>non-negative integer60000Intervalo de varredura do reaper de sessões; 0 o desativa.
--session-idle-timeout-ms <n>non-negative integer1800000Tempo de reaping de ociosidade para sessões desconectadas; 0 o desativa.
--rate-limit / --no-rate-limitbooleanenv / offHabilita rate limiting HTTP por tier para rotas de prompt, mutação e leitura.
--rate-limit-prompt <n>positive integer10Limite de requisições de prompt por janela; exige que o rate limiting esteja habilitado.
--rate-limit-mutation <n>positive integer30Limite de requisições de mutação por janela; exige que o rate limiting esteja habilitado.
--rate-limit-read <n>positive integer120Limite de requisições de leitura por janela; exige que o rate limiting esteja habilitado.
--rate-limit-window-ms <n>integer >= 100060000Duração da janela de rate limit; exige que o rate limiting esteja habilitado.
sem flag--QWEN_SERVE_NO_MCP_POOL=1 desativa completamente o pool.

Variáveis de ambiente

Lidas por runQwenServe / middleware Express

EnvEfeito
QWEN_SERVER_TOKENBearer token; aparado na inicialização.
QWEN_SERVE_DEBUG1 / true / on / yes (case-insensitive) habilita logs verbosos no stderr. Ver 19-observability.md.
QWEN_SERVE_NO_MCP_POOL1 desativa o pool de transporte MCP do workspace e faz fallback para o McpClientManager por sessão; as capacidades param de anunciar mcp_workspace_pool / mcp_pool_restart.
QWEN_SERVE_PROMPT_DEADLINE_MSFallback de ambiente para --prompt-deadline-ms.
QWEN_SERVE_WRITER_IDLE_TIMEOUT_MSFallback de ambiente para --writer-idle-timeout-ms.
QWEN_SERVE_RATE_LIMIT1 / true habilita rate limiting HTTP por tier; a flag da CLI --rate-limit / --no-rate-limit tem precedência.
QWEN_SERVE_RATE_LIMIT_PROMPTFallback de ambiente para --rate-limit-prompt.
QWEN_SERVE_RATE_LIMIT_MUTATIONFallback de ambiente para --rate-limit-mutation.
QWEN_SERVE_RATE_LIMIT_READFallback de ambiente para --rate-limit-read.
QWEN_SERVE_RATE_LIMIT_WINDOW_MSFallback de ambiente para --rate-limit-window-ms.

Encaminhadas para o filho ACP através de BridgeOptions.childEnvOverrides

O runQwenServe constrói estas variáveis por handle para que dois daemons em um mesmo processo não disputem o process.env. As variáveis de budget não são fallbacks de ambiente do processo pai para o qwen serve; o caminho da CLI deve gerá-las a partir de --mcp-client-budget / --mcp-budget-mode.

EnvEfeito
QWEN_SERVE_MCP_CLIENT_BUDGETString de inteiro positivo consumida pelo readBudgetFromEnv() do filho ACP.
QWEN_SERVE_MCP_BUDGET_MODEoff / warn / enforce.
QWEN_SERVE_MCP_POOL_TRANSPORTSAllowlist de transportes separada por vírgulas; os transportes padrão do pool são stdio,websocket; pode incluir explicitamente http,sse.
QWEN_SERVE_MCP_POOL_DRAIN_MSAtraso de drenagem de ociosidade da entrada do pool; padrão 30000, limitado (clamped) a 1000..600000 ms.

Lidas pelo SDK / adaptadores

EnvEfeito
QWEN_DAEMON_URLURL base do daemon para o adaptador TUI da CLI, canais e companion de IDE.
QWEN_DAEMON_TOKENBearer token.
QWEN_DAEMON_WORKSPACESobrescreve o cwd enviado para POST /session.

Chaves do settings.json

O daemon lê as configurações uma vez na inicialização através de loadSettings(boundWorkspace) dentro do runQwenServe. Configurações malformadas usam os padrões como fallback através de uma guarda try/catch.

KeyTipoEfeito
policy.permissionStrategy'first-responder' | 'designated' | 'consensus' | 'local-only'Define BridgeOptions.permissionPolicy; o valor ativo aparece em /capabilities como policy.permission. A inicialização valida através de validatePolicyConfig() contra SERVE_CAPABILITY_REGISTRY.permission_mediation.modes. Literais desconhecidos lançam InvalidPolicyConfigError e falham a inicialização explicitamente.
policy.consensusQuorumpositive integerN para a política consensus. O padrão é floor(M/2) + 1 sobre votersAtIssue.size (M=2 significa unânime; M par maior significa mais da metade). Se definido sob uma política não-consensus, é ignorado e a inicialização imprime um aviso no stderr. Inteiros não positivos lançam InvalidPolicyConfigError. Ver 04-permission-mediation.md.
context.fileNamestringSobrescreve getCurrentGeminiMdFilename() através de BridgeOptions.contextFilename.
tools.disabledstring[]Ferramentas desabilitadas para o próximo spawn do filho ACP. Normalizado através de normalizeDisabledToolList() (packages/cli/src/config/normalizeDisabledTools.ts): não-array vira [], entradas não-string são ignoradas, espaços em branco são removidos, entradas vazias são descartadas e duplicatas são removidas preservando a primeira ocorrência. A inicialização e a atualização de configurações do restartMcpServer ambas passam por esta função. ToolRegistry.has(name) é exato e case-sensitive. POST /workspace/tools/:name/enable e tool_toggled atualizam esta chave.
tools.approvalMode'default' | 'auto' | ...Modo de aprovação de sessão padrão; POST /session/:id/approval-mode escreve aqui quando persist: true.
telemetryobjectConfiguração do OTel. As chaves incluem enabled, otlpEndpoint, otlpProtocol, otlpTracesEndpoint, otlpLogsEndpoint, otlpMetricsEndpoint, target, outfile, includeSensitiveSpanAttributes, sensitiveSpanAttributeMaxLength, resourceAttributes e metrics.includeSessionId. resolveTelemetrySettings() a lê na inicialização e inicializa initializeTelemetry().

ServeOptions (incorporação programática)

O packages/cli/src/serve/types.ts define o objeto de opções tipado aceito tanto por runQwenServe quanto por createServeApp. Ele espelha as flags da CLI acima e adiciona:

FieldEfeito
eventRingSizeSobrescreve o tamanho padrão do ring por sessão.
maxPendingPromptsPerSessionLimite de prompts pendentes por sessão; 0 / Infinity significa ilimitado.
mcpPoolActiveSwitch programático, com padrão vindo de QWEN_SERVE_NO_MCP_POOL.
allowOriginsAllowlist de cross-origin (string[]), correspondente a --allow-origin.
allowPrivateAuthBaseUrlPermite a instalação do baseUrl do provedor de autenticação privado / localhost.
enableSessionShellHabilita a execução do shell de sessão; bearer token e client id vinculado à sessão ainda são exigidos.
promptDeadlineMsLimite de wallclock do prompt.
writerIdleTimeoutMsTimeout de ociosidade do writer SSE.
channelIdleTimeoutMsPor quanto tempo manter o filho ACP aquecido (warm) após o fechamento da última sessão.
sessionReapIntervalMsIntervalo de varredura do reaper de sessões.
sessionIdleTimeoutMsTempo de reaping de ociosidade para sessões desconectadas.
rateLimit*Switch de rate limit HTTP por tier, limites (thresholds) e janela.

BridgeOptions (incorporação programática da bridge)

packages/acp-bridge/src/bridgeOptions.ts define as opções da bridge. Consulte 03-acp-bridge.md para a tabela completa. Campos principais:

CampoEfeito
boundWorkspaceWorkspace canônico obrigatório.
sessionScope'single' (padrão) vs 'thread'.
initializeTimeoutMs, maxSessions, eventRingSize, permissionResponseTimeoutMs, maxPendingPermissionsPerSessionLimites máximos de recursos.
channelFactoryFactory plugável de child ACP; o padrão é defaultSpawnChannelFactory.
fileSystemAdaptador BridgeFileSystem. Consulte 07-workspace-filesystem.md.
permissionPolicy, permissionConsensusQuorum, permissionAuditConfiguração do mediador.
statusProviderCélulas de preflight do host do daemon.
childEnvOverridesAdições ou remoções de ambiente por handle.
contextFilenameSubstitui getCurrentGeminiMdFilename().
channelIdleTimeoutMsPor quanto tempo manter o child ACP ativo após o fechamento da última sessão, em ms; padrão 0.

Padrões importantes

ConstanteArquivoValorSignificado
DEFAULT_MAX_SESSIONSbridge.ts20Limite de sessões antes de SessionLimitExceededError.
MAX_EVENT_RING_SIZEbridge.ts1_000_000Limite flexível (soft cap) para BridgeOptions.eventRingSize; protege contra erros de digitação.
DEFAULT_RING_SIZEeventBus.ts8000Profundidade do ring de replay de SSE por sessão.
DEFAULT_MAX_QUEUEDeventBus.ts256Limite da fila por subscriber.
DEFAULT_MAX_SUBSCRIBERSeventBus.ts64Limite de subscribers por bus.
WARN_THRESHOLD_RATIOeventBus.ts0.75Gatilho do slow_client_warning.
WARN_RESET_RATIOeventBus.ts0.375Limite de rearme por histerese.
DEFAULT_INIT_TIMEOUT_MSbridge.ts10_000Timeout do handshake initialize do ACP.
MCP_RESTART_TIMEOUT_MSbridge.ts300_000Timeout da bridge para /workspace/mcp/:server/restart.
DEFAULT_PERMISSION_TIMEOUT_MSbridge.ts5 * 60_000Tempo de relógio real por solicitação de permissão.
DEFAULT_MAX_PENDING_PER_SESSIONbridge.ts64Alinhado com DEFAULT_MAX_SUBSCRIBERS.
MAX_RESOLVED_PERMISSION_RECORDSpermissionMediator.ts512FIFO para permissões resolvidas recentemente.
KILL_HARD_DEADLINE_MSspawnChannel.ts10_000Janela de encerramento gracioso (graceful shutdown) por channel.
SHUTDOWN_FORCE_CLOSE_MSrun-qwen-serve.ts5_000Timer de fechamento forçado do servidor HTTP.
MAX_READ_BYTESfs/policy.ts256 * 1024Limite de leitura.
MAX_WRITE_BYTESfs/policy.ts5 * 1024 * 1024Limite de escrita.
MAX_DISPLAY_NAME_LENGTHbridge.ts256Limite do displayName da sessão.

Referências cruzadas

Last updated on