跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

Daemon 内部实现

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

这一组面向修改或排查 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 与文件服务

会话与事件协议

本节文档