Skip to Content
开发者指南Daemon配置参考

配置参考

概述

本页汇总了影响 qwen serve 守护进程及其适配器的所有配置项:环境变量、CLI 标志、settings.json 键,以及编程接口选项。功能专项页面在需要跨领域配置细节时会链接回本页。

CLI 标志(qwen serve

标志类型默认值说明
--hostname <host>string127.0.0.1绑定地址。回环地址:127.0.0.1localhost::1[::1]。非回环地址在启动时需要 bearer token。输入 host:port 格式将被拒绝并提示改用 --port
--port <n>number4170监听端口;0 表示使用临时端口。
--token <s>stringenvBearer token。覆盖 QWEN_SERVER_TOKEN,启动时去除首尾空白。该值会出现在进程命令行中,生产环境建议使用环境变量。
--require-authbooleanfalse将 bearer 认证扩展至回环地址和 /health;无 token 时启动失败。
--workspace <dir>absolute pathprocess.cwd()绑定的工作空间目录。必须为绝对路径且为目录;启动时进行一次规范化。
--max-sessions <n>number20活跃会话上限。0 / Infinity 表示无限制;NaN / 负值会抛出异常。
--max-pending-prompts-per-session <n>number5每个会话中待处理/正在运行的 prompt 上限。超出时返回 503。0 / Infinity 表示无限制;负值或非整数值会抛出异常。
--max-connections <n>number256HTTP 监听器的 server.maxConnections0 / Infinity 表示无限制。
--enable-session-shellbooleanfalse启用直接 POST /session/:id/shell 执行。需要 bearer token,且每次调用必须携带会话绑定的 X-Qwen-Client-Id
--event-ring-size <n>number8000每会话 SSE 重放环形缓冲区大小;软上限为 1_000_000
--http-bridgebooleantrueStage 1 bridge 模式。--no-http-bridge 仍回退至 http-bridge 并向 stderr 打印提示。
--mcp-client-budget <n>positive integerunset设置 WorkspaceMcpBudget.clientBudget,并通过 childEnvOverrides 转发给 ACP 子进程。
--mcp-budget-mode <m>off / warn / enforce设置 budget 时默认 warn,否则 off设置 WorkspaceMcpBudget.modeenforce 需要同时设置 --mcp-client-budget
--allow-origin <pattern>repeatable stringunset跨域允许列表,替换默认的 CORS 拒绝策略。* 允许任意来源,但需要 token。
--allow-private-auth-base-urlbooleanfalse允许 /workspace/auth/provider 安装 localhost / 私有网络认证提供者的 baseUrl;仅在受信任的本地开发环境中使用。
--prompt-deadline-ms <n>positive integerunset服务端 prompt 挂钟时间限制(ms)。超时后中止并返回错误。
--writer-idle-timeout-ms <n>positive integerunset每个 SSE 连接的空闲超时(ms)。在此期间内无事件发送时,守护进程关闭该 SSE 连接。
--channel-idle-timeout-ms <n>non-negative integer0最后一个会话关闭后保持 ACP 子进程存活的时长。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为 prompt、mutation、read 路由启用按层级的 HTTP 频率限制。
--rate-limit-prompt <n>positive integer10每个窗口内 prompt 请求限制数;需要先启用频率限制。
--rate-limit-mutation <n>positive integer30每个窗口内 mutation 请求限制数;需要先启用频率限制。
--rate-limit-read <n>positive integer120每个窗口内 read 请求限制数;需要先启用频率限制。
--rate-limit-window-ms <n>integer >= 100060000频率限制窗口长度;需要先启用频率限制。
no flag--QWEN_SERVE_NO_MCP_POOL=1 完全禁用连接池。

环境变量

runQwenServe / Express 中间件读取

环境变量说明
QWEN_SERVER_TOKENBearer token;启动时去除首尾空白。
QWEN_SERVE_DEBUG1 / true / on / yes(大小写不敏感)开启详细 stderr 日志。参见 19-observability.md
QWEN_SERVE_NO_MCP_POOL1 禁用工作空间 MCP transport 连接池,回退至每会话 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 的环境变量回退值。

通过 BridgeOptions.childEnvOverrides 转发给 ACP 子进程

runQwenServe 按句柄构建这些变量,以防同一进程中两个守护进程在 process.env 上产生竞争。budget 变量不是 qwen serve 父进程的环境变量回退;CLI 路径必须通过 --mcp-client-budget / --mcp-budget-mode 生成它们。

环境变量说明
QWEN_SERVE_MCP_CLIENT_BUDGET正整数字符串,由 ACP 子进程的 readBudgetFromEnv() 消费。
QWEN_SERVE_MCP_BUDGET_MODEoff / warn / enforce
QWEN_SERVE_MCP_POOL_TRANSPORTS逗号分隔的 transport 允许列表;默认连接池 transport 为 stdio,websocket;可显式加入 http,sse
QWEN_SERVE_MCP_POOL_DRAIN_MS连接池条目空闲排空延迟;默认 30000,范围限制在 1000..600000 ms。

由 SDK / 适配器读取

环境变量说明
QWEN_DAEMON_URL守护进程基础 URL,供 CLI TUI 适配器、channel 及 IDE 伴侣使用。
QWEN_DAEMON_TOKENBearer token。
QWEN_DAEMON_WORKSPACE覆盖发送至 POST /sessioncwd

settings.json

守护进程在启动时通过 runQwenServe 内的 loadSettings(boundWorkspace) 一次性读取配置。格式错误的配置通过 try/catch 回退至默认值。

类型说明
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 值。默认floor(M/2) + 1(M 为 votersAtIssue.size,M=2 时表示全票通过;较大的偶数 M 表示超过半数)。若在非 consensus 策略下设置此项,则被忽略,启动时在 stderr 打印警告。非正整数会抛出 InvalidPolicyConfigError。参见 04-permission-mediation.md
context.fileNamestring通过 BridgeOptions.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' | ...默认会话审批模式;POST /session/:id/approval-modepersist: true 时写入此键。
telemetryobjectOTel 配置。键包括 enabledotlpEndpointotlpProtocolotlpTracesEndpointotlpLogsEndpointotlpMetricsEndpointtargetoutfileincludeSensitiveSpanAttributesresourceAttributesmetrics.includeSessionIdresolveTelemetrySettings() 在启动时读取并初始化 initializeTelemetry()

ServeOptions(编程嵌入)

packages/cli/src/serve/types.ts 定义了 runQwenServecreateServeApp 均接受的类型化选项对象。它与上面的 CLI 标志一一对应,并额外增加:

字段说明
eventRingSize覆盖每会话的默认环形缓冲区大小。
maxPendingPromptsPerSession每会话待处理 prompt 上限;0 / Infinity 表示无限制。
mcpPoolActive编程开关,默认值来自 QWEN_SERVE_NO_MCP_POOL
allowOrigins跨域允许列表(string[]),对应 --allow-origin
allowPrivateAuthBaseUrl允许安装私有 / localhost 认证提供者的 baseUrl
enableSessionShell启用会话 shell 执行;仍需要 bearer token 和会话绑定的 client id。
promptDeadlineMsPrompt 挂钟时间限制。
writerIdleTimeoutMsSSE writer 空闲超时。
channelIdleTimeoutMs最后一个会话关闭后保持 ACP 子进程热备的时长。
sessionReapIntervalMs会话清理器扫描间隔。
sessionIdleTimeoutMs断连会话的空闲清理时间。
rateLimit*按层级的 HTTP 频率限制开关、阈值及窗口。

BridgeOptions(编程 bridge 嵌入)

packages/acp-bridge/src/bridgeOptions.ts 定义了 bridge 选项。完整字段表参见 03-acp-bridge.md。关键字段:

字段说明
boundWorkspace必填的规范化工作空间路径。
sessionScope'single'(默认)或 'thread'
initializeTimeoutMsmaxSessionseventRingSizepermissionResponseTimeoutMsmaxPendingPermissionsPerSession有界资源上限。
channelFactory可插拔的 ACP 子进程工厂;默认为 defaultSpawnChannelFactory
fileSystemBridgeFileSystem 适配器。参见 07-workspace-filesystem.md
permissionPolicypermissionConsensusQuorumpermissionAudit权限仲裁器配置。
statusProvider守护进程宿主预检单元。
childEnvOverrides每句柄的环境变量追加或移除项。
contextFilename覆盖 getCurrentGeminiMdFilename()
channelIdleTimeoutMs最后一个会话关闭后保持 ACP 子进程存活的时长(ms);默认 0

重要默认值

常量文件含义
DEFAULT_MAX_SESSIONSbridge.ts20触发 SessionLimitExceededError 前的会话上限。
MAX_EVENT_RING_SIZEbridge.ts1_000_000BridgeOptions.eventRingSize 的软上限;防止误输入。
DEFAULT_RING_SIZEeventBus.ts8000每会话 SSE 重放环形缓冲区深度。
DEFAULT_MAX_QUEUEDeventBus.ts256每订阅者队列上限。
DEFAULT_MAX_SUBSCRIBERSeventBus.ts64每 bus 的订阅者上限。
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 的 bridge 超时。
DEFAULT_PERMISSION_TIMEOUT_MSbridge.ts5 * 60_000每条权限请求的挂钟时间。
DEFAULT_MAX_PENDING_PER_SESSIONbridge.ts64DEFAULT_MAX_SUBSCRIBERS 对齐。
MAX_RESOLVED_PERMISSION_RECORDSpermissionMediator.ts512最近已解决权限记录的 FIFO 队列。
KILL_HARD_DEADLINE_MSspawnChannel.ts10_000每 channel 的优雅关闭窗口。
SHUTDOWN_FORCE_CLOSE_MSrun-qwen-serve.ts5_000HTTP 服务器强制关闭计时器。
MAX_READ_BYTESfs/policy.ts256 * 1024读取上限。
MAX_WRITE_BYTESfs/policy.ts5 * 1024 * 1024写入上限。
MAX_DISPLAY_NAME_LENGTHbridge.ts256会话 displayName 长度上限。

交叉参考

Last updated on