# Daemon REST API 参考

> 这是运行 qwen serve --no-web 并提供自有 UI 的集成所使用的公共 REST/SSE 接口。请先阅读集成指南，然后使用本页面进行端点发现，并参考 HTTP 协议参考 了解详细的生命周期语义。

- 网址：https://funcoding.ai/agents/qwen-code/developers/daemon-rest-api-reference/
- 来源：Qwen Code 官方文档原文（中文），Apache-2.0 许可，同步于 2026-10-11
- 官方原文：https://qwenlm.github.io/qwen-code-docs/zh/developers/daemon-rest-api-reference

---
这是运行 `qwen serve --no-web` 并提供自有 UI 的集成所使用的公共 REST/SSE 接口。请先阅读[集成指南](https://funcoding.ai/agents/qwen-code/developers/rest-api-integration/)，然后使用本页面进行端点发现，并参考 [HTTP 协议参考](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/) 了解详细的生命周期语义。

## OpenAPI

经过整理的 25 个操作契约以 [OpenAPI 3.1 JSON](https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/developers/daemon-rest-api.openapi.json) 形式提供。将该 URL 导入兼容 OpenAPI 的渲染器、客户端生成器或验证工具。已提交的 JSON 是下方索引操作的便携接口契约，并在 CI 中根据指南、协议标题和已注册路由进行了验证。

本索引涵盖 daemon REST 接口中经过整理的核心子集，而非全部内容。索引之外包括第一方 Web Shell 路由、条件内部表面以及其他公开但非核心的路由：文件变更、工作区注册、会话组织与 generation，以及工作区 MCP、skill 和 provider 等。这些表面由各自的能力标签进行通告；[HTTP 协议参考](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/) 记录了会话、工作区状态和文件表面，MCP 服务器管理、认证提供者和设备流登录则由 [daemon 认证与安全说明](https://funcoding.ai/agents/qwen-code/developers/daemon/12-auth-security/) 覆盖。它们不在本契约范围内，但并未被弃用。

## 阅读索引

- **Capability** 是在 `GET /capabilities` 中需要检查的功能标签。破折号表示该操作没有专属的功能标签；需要支持较旧 daemon 构建版本的客户端应处理 `404`。
- **Scope** 指明哪个运行时拥有该操作。`process-global` 读取 daemon 全局状态，`selected-runtime` 使用请求的工作区选择，`persisted-workspace` 解析持久化会话存储，`live-session-owner` 通过实时会话进行路由，`legacy-primary` 始终定位 daemon 的主工作区。`GET /session/:id/export` 固定为主工作区：它仅在托管内部运行时中解析，然后回退到主工作区。
- 本索引中的所有操作在 v1 REST 契约中均为 **stable**。已弃用的 `unstable_session_resume` 能力名称仅为别名；请使用 `session_resume` 作为稳定的 resume 路由。

## Discovery

| Operation                                                        | Capability     | Scope            | TypeScript SDK              |
| ---------------------------------------------------------------- | -------------- | ---------------- | --------------------------- |
| [`GET /health`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-health)             | `health`       | `process-global` | `DaemonClient.health`       |
| [`GET /capabilities`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-capabilities) | `capabilities` | `process-global` | `DaemonClient.capabilities` |

## 会话生命周期

| Operation                                                                         | Capability          | Scope                | TypeScript SDK                       |
| --------------------------------------------------------------------------------- | ------------------- | -------------------- | ------------------------------------ |
| [`POST /session`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-session)                          | `session_create`    | `selected-runtime`   | `DaemonClient.createOrAttachSession` |
| [`POST /session/:id/load`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionidload)           | `session_load`      | `selected-runtime`   | `DaemonClient.loadSession`           |
| [`POST /session/:id/resume`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionidresume)       | `session_resume`    | `selected-runtime`   | `DaemonClient.resumeSession`         |
| [`POST /session/:id/heartbeat`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionidheartbeat) | `client_heartbeat`  | `live-session-owner` | `DaemonClient.heartbeat`             |
| [`PATCH /session/:id/metadata`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#patch-sessionidmetadata) | `session_metadata`  | `live-session-owner` | `DaemonClient.updateSessionMetadata` |
| [`POST /session/:id/model`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionidmodel)         | `session_set_model` | `live-session-owner` | `DaemonClient.setSessionModel`       |
| [`DELETE /session/:id`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#delete-sessionid)                | `session_close`     | `live-session-owner` | `DaemonClient.closeSession`          |

## 提示与事件

| Operation                                                                                   | Capability           | Scope                 | TypeScript SDK                          |
| ------------------------------------------------------------------------------------------- | -------------------- | --------------------- | --------------------------------------- |
| [`GET /session/:id/status`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-sessionidstatus)                   | `session_status`     | `live-session-owner`  | `DaemonClient.sessionStatus`            |
| [`POST /session/:id/prompt`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionidprompt)                 | `session_prompt`     | `live-session-owner`  | `DaemonClient.promptNonBlocking`        |
| [`POST /session/:id/cancel`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionidcancel)                 | `session_cancel`     | `live-session-owner`  | `DaemonClient.cancel`                   |
| [`GET /session/:id/events`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-sessionidevents-sse)               | `session_events`     | `live-session-owner`  | `DaemonClient.subscribeEvents`          |
| [`GET /session/:id/transcript`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-sessionidtranscript)           | `session_transcript` | `persisted-workspace` | `DaemonClient.getSessionTranscriptPage` |
| [`GET /session/:id/context`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-sessionidcontext)                 | `session_context`    | `live-session-owner`  | `DaemonClient.sessionContext`           |
| [`GET /session/:id/export`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-sessionidexport)                   | `session_export`     | `legacy-primary`      | `DaemonClient.exportSession`            |
| [`GET /session/:id/pending-prompts`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-sessionidpending-prompts) | —                    | `live-session-owner`  | `DaemonClient.getPendingPrompts`        |

`POST /session/:id/prompt` 在提示进入队列时返回 `202`，而非 Agent 完成时。请先订阅，然后通过 `promptId` 关联 `turn_complete` 或 `turn_error`。

## 权限

| Operation                                                                                               | Capability                | Scope                | TypeScript SDK                            |
| ------------------------------------------------------------------------------------------------------- | ------------------------- | -------------------- | ----------------------------------------- |
| [`POST /session/:id/permission/:requestId`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionidpermissionrequestid) | `session_permission_vote` | `live-session-owner` | `DaemonClient.respondToSessionPermission` |
| [`POST /permission/:requestId`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-permissionrequestid)                      | `permission_vote`         | `legacy-primary`     | `DaemonClient.respondToPermission`        |

新的多工作区集成应始终使用会话作用域路由。旧版路由对属于另一个运行时的请求可能返回与已解决投票相同的 `404`。

## 只读工作区上下文

| Operation                                                             | Capability             | Scope            | TypeScript SDK                        |
| --------------------------------------------------------------------- | ---------------------- | ---------------- | ------------------------------------- |
| [`GET /workspace/tools`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-workspacetools) | —                      | `legacy-primary` | `DaemonClient.workspaceTools`         |
| [`GET /file`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-file)                      | `workspace_file_read`  | `legacy-primary` | `DaemonClient.readWorkspaceFile`      |
| [`GET /file/bytes`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-filebytes)           | `workspace_file_bytes` | `legacy-primary` | `DaemonClient.readWorkspaceFileBytes` |
| [`GET /stat`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-stat)                      | `workspace_file_read`  | `legacy-primary` | `DaemonClient.fileStat`               |
| [`GET /list`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-list)                      | `workspace_file_read`  | `legacy-primary` | `DaemonClient.dirList`                |
| [`GET /glob`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-glob)                      | `workspace_file_read`  | `legacy-primary` | `DaemonClient.glob`                   |

这些单一路由定位主工作区。暴露多个已注册工作区的集成应使用完整协议中记录的工作区限定对应路由，并预检 `workspace_qualified_rest_core`。

## 其他已记录的 API

上述 25 个操作构成了稳定的 OpenAPI 集成契约。以下操作补全了拥有专属协议章节的 HTTP 路由索引。它们是已记录的 v1 表面，但不在该精简 OpenAPI 契约之内，因为它们属于条件性、管理性接口，或主要服务于第一方客户端。请预检每个列出的能力，并将缺失的能力视为不可用的路由。当多个操作共享归属和 SDK 系列时，一行中可包含多个操作。

| 领域                           | 操作                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 能力与作用域                                                                                                                                                                                                           | TypeScript SDK                                                                                                                                                                     |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 操作员状态                 | [`GET /daemon/status`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-daemonstatus) · [`GET /brand`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-brand)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | `daemon_status`、`web_shell_brand`；process-global                                                                                                                                                                             | `DaemonClient.daemonStatus`、`DaemonClient.brand`                                                                                                                                  |
| 工作区注册         | [`POST /workspaces`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-workspaces) · [`PATCH /workspaces/:workspace`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#patch-workspacesworkspace) · [`DELETE /workspaces/:workspace`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#delete-workspacesworkspace) · [`GET /workspace-registrations`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspace-registrations) · [`DELETE /workspace-registrations/:id`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#delete-workspace-registrationsid)                                                                                                                                                                                                                                                                                                                  | `dynamic_workspace_registration`、`persistent_workspace_registration`、`workspace_display_name`、`workspace_runtime_removal`；process-global 或 selected-runtime                                                               | `DaemonClient.addWorkspace`、`DaemonClient.updateWorkspace`、`WorkspaceDaemonClient.remove`；注册存储路由使用原生 REST                                                |
| 工作区运行时状态       | [`GET /workspace/mcp`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspacemcp) · [`GET /workspace/skills`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspaceskills) · [`GET /workspace/providers`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspaceproviders) · [`GET /workspace/env`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspaceenv) · [`GET /workspace/preflight`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspacepreflight)                                                                                                                                                                                                                                                                                                                                                                               | `workspace_mcp`、`workspace_skills`、`workspace_providers`、`workspace_env`、`workspace_preflight`；legacy-primary                                                                                                             | `DaemonClient.workspaceMcp`、`workspaceSkills`、`workspaceProviders`、`workspaceEnv`、`workspacePreflight`                                                                         |
| 文件变更                  | [`POST /file/write`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-filewrite) · [`POST /file/edit`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-fileedit)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | `workspace_file_write`；legacy-primary                                                                                                                                                                                         | `DaemonClient.writeWorkspaceFile`、`DaemonClient.editWorkspaceFile`                                                                                                                |
| 会话检查与任务   | [`GET /session/:id/supported-commands`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-sessionidsupported-commands) · [`GET /session/:id/tasks`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-sessionidtasks) · [`POST /session/:id/tasks/:taskId/workflow-action`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#post-sessionidtaskstaskidworkflow-action) · [`GET /session/:id/lsp`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-sessionidlsp) · [`GET /session/:id/resources`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-sessionidresources)                                                                                                                                                                                                                                                                                                  | `session_supported_commands`、`session_tasks`、`session_lsp`、`session_resources`；live-session-owner                                                                                                                          | `DaemonClient.sessionSupportedCommands`、`sessionTasks`、`sessionWorkflowTaskAction`、`sessionLspStatus`、`sessionResources`                                                       |
| 工作区限定历史    | [`GET /workspaces/:workspace/session/:id/transcript`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspacesworkspacesessionidtranscript) · [`GET /workspaces/:workspace/session/:id/export`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspacesworkspacesessionidexport) · [`GET /workspaces/:workspace/session/:id/archive/export`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspacesworkspacesessionidarchiveexport)                                                                                                                                                                                                                                                                                                                                                                           | `workspace_persisted_transcript`、`workspace_session_export`、`workspace_archived_session_export`；persisted-workspace                                                                                                         | `WorkspaceDaemonClient.getSessionTranscriptPage`、`exportSession`、`exportArchivedSession`                                                                                         |
| Worktree 恢复              | [`POST /session/:id/worktree-reset`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionidworktree-reset)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | `session_worktree_reset_v1`；live-session-owner                                                                                                                                                                                | `DaemonClient.resetWorktreeSession`                                                                                                                                                |
| 持久化会话目录      | [`GET /workspace/:id/session-info`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-workspaceidsession-info-and-get-workspacesworkspacesession-info) · [`GET /workspaces/:workspace/session-info`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-workspaceidsession-info-and-get-workspacesworkspacesession-info) · [`GET /workspace/:id/sessions`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-workspaceidsessions-and-get-workspacesworkspacesessions) · [`GET /workspaces/:workspace/sessions`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#get-workspaceidsessions-and-get-workspacesworkspacesessions) · [`GET /workspaces/:workspace/sessions/live-state`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspacesworkspacesessionslive-state)                                                                                                | `session_info`、`session_list`、`workspace_session_live_state`；persisted-workspace                                                                                                                                            | `DaemonClient.getStandaloneSession`、`listWorkspaceSessions`、`getWorkspaceSessionLiveState`                                                                                       |
| 会话组织           | [`GET /workspace/:id/session-groups`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspaceidsession-groups) · [`POST /workspace/:id/session-groups`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-workspaceidsession-groups) · [`PATCH /workspace/:id/session-groups/:groupId`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#patch-workspaceidsession-groupsgroupid) · [`DELETE /workspace/:id/session-groups/:groupId`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#delete-workspaceidsession-groupsgroupid) · [`PATCH /session/:id/organization`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#patch-sessionidorganization-and-patch-workspacesworkspacesessionidorganization) · [`PATCH /workspaces/:workspace/session/:id/organization`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#patch-sessionidorganization-and-patch-workspacesworkspacesessionidorganization) | `session_organization`；legacy-primary 或 persisted-workspace                                                                                                                                                                  | `DaemonClient.listSessionGroups`、`createSessionGroup`、`updateSessionGroup`、`deleteSessionGroup`、`updateSessionOrganization`；`WorkspaceDaemonClient.updateSessionOrganization` |
| 批量持久化会话变更 | [`POST /sessions/delete`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionsdelete) · [`POST /sessions/archive`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionsarchive) · [`POST /sessions/unarchive`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionsunarchive)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | `session_archive`；legacy-primary                                                                                                                                                                                              | `DaemonClient.deleteSessionsData`、`archiveSessionsData`、`unarchiveSessionsData`                                                                                                  |
| 可选会话控制      | [`POST /session/:id/recap`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionidrecap) · [`POST /session/:id/generate`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionidgenerate) · [`POST /session/:id/approval-mode`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-sessionidapproval-mode)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | `session_recap`、`session_generation`、`session_approval_mode_control`；live-session-owner                                                                                                                                     | `DaemonClient.recapSession`、原生 REST 用于 generation、`DaemonClient.setSessionApprovalMode`                                                                                        |
| 工作区配置        | [`POST /workspace/tools/:name/enable`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-workspacetoolsnameenable) · [`POST /workspace/skills/:name/enable`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-workspaceskillsnameenable) · [`POST /workspace/skills/enable`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-workspaceskillsenable) · [`POST /workspace/init`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-workspaceinit) · [`POST /workspace/mcp/reload`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-workspacemcpreload) · [`POST /workspace/mcp/:server/restart`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-workspacemcpserverrestart) · [`POST /language`](https://qwenlm.github.io/qwen-code-docs/en/developers/qwen-serve-protocol/#post-language)                                                                                                                                         | `workspace_tool_toggle`、`workspace_skill_settings_toggle`、`workspace_skill_settings_batch_toggle`、`workspace_init`、`workspace_mcp_manage`、`workspace_mcp_restart`、`user_language_sync`；legacy-primary 或 process-global | `DaemonClient.setWorkspaceToolEnabled`、`setWorkspaceSkillEnabled`、`setWorkspaceSkillsEnabled`、`initWorkspace`、`reloadWorkspaceMcp`、`restartMcpServer`、`setUserLanguage`      |
| 设备流认证     | [`POST /workspace/auth/device-flow`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#post-workspaceauthdevice-flow) · [`GET /workspace/auth/device-flow/:id`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspaceauthdevice-flowid) · [`DELETE /workspace/auth/device-flow/:id`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#delete-workspaceauthdevice-flowid) · [`GET /workspace/auth/status`](https://funcoding.ai/agents/qwen-code/developers/qwen-serve-protocol/#get-workspaceauthstatus)                                                                                                                                                                                                                                                                                                                                                                   | `auth_device_flow`；legacy-primary                                                                                                                                                                                             | `DaemonClient.startDeviceFlow`、`getDeviceFlow`、`cancelDeviceFlow`、`getAuthStatus`                                                                                               |

没有专属协议章节的路径被有意排除在本索引之外。它们可能是第一方 Web Shell 内部机制或条件性实现表面，不会因遗漏而被提升为集成契约。

## 通用协议规则

- 使用 `Authorization: Bearer <token>` 对常规路由进行认证。默认的本地回环 `/health` 探测可以豁免；非本地回环绑定则不可豁免。
- 当 create/load 响应提供了 `X-Qwen-Client-Id` 时发送该头。它是一个附加和归因标识符，而非终端用户安全主体。
- 将错误体视为附加信息。主要根据 HTTP 状态码以及稳定的 `code` 或 `errorKind`（如果存在）进行分支处理。
- 保留 SSE 响应头并禁用代理缓冲。当 daemon 提供了 epoch 时，同时使用 `Last-Event-ID` 和 `X-Qwen-Event-Epoch` 进行恢复。
- 工作区信任边界不是租户隔离。当安全主体或进程级故障边界必须独立时，请运行独立的 daemon。
