Skip to content
FunCoding

Search

Search docs, Skills and MCP

Daemon 内部实现

定位 HTTP、ACP、事件、审批和 MCP 生命周期的实现责任。

This page has not been translated into English yet. The original Chinese version is shown below.

这一组面向修改或排查 Qwen Code daemon 内部实现的开发者。运行服务先看Daemon 使用与运维,应用开发先看SDK。

进程与信任边界

flowchart LR
  C[HTTP 与 SSE 客户端] --> H[Serve HTTP 运行时]
  H --> B[工作区 ACP Bridge]
  B --> A[qwen --acp 子进程]
  A --> M[工作区 MCP 连接池]
  M --> S[MCP 服务]
  B --> E[各会话 EventBus 与审批协调]

每个活动 workspace runtime 有自己的 bridge 和 ACP child,不在不同工作区之间共享。HTTP/SSE 终止于 daemon,模型与工具执行发生在 child;两者通过 ACP stdio 连接。ACP 不是客户端访问 daemon 的 REST 协议。

默认 single scope 复用一个逻辑会话,thread scope 按对话拆分。会话拆分不自动成为操作系统隔离或完整多租户授权边界。

按问题进入

实现位置

责任主要路径
启动和 Express 组装packages/cli/src/serve/run-qwen-serve.ts、server.ts
bridge、会话、审批和 EventBuspackages/acp-bridge/
MCP pool、entry 与 workspace budgetpackages/core/src/tools/
HTTP/SSE SDK 和共享 transcriptpackages/sdk-typescript/src/daemon/
Web Shell 消费者packages/web-shell/client/daemon/

内部 F1/F2/F3/F4 是上游实现里程碑,不是用户套餐或协议版本。修改行为时仍应核对 capability 与具体来源,而不能只依据里程碑名称。

阅读旧说明的边界

上游索引保留了一些过时总述,例如“只有 TypeScript 提供 daemon client”;当前Java SDK已经有 daemon 路径。UI 事件数量也随增量接口变化,不应把索引中的固定数字当作完整契约。

TUI、IDE 与渠道的历史适配草案和当前共享 UI 文档并存。新工作按具体实现与客户端适配边界判断,不能把拟议入口或计划迁移直接写成默认产品行为。

MCP 与文件服务

会话与事件协议

In this section