提交前确认 · Pre-submission checklist
问题类别 · Category
工具调用 / MCP · Tool use / MCP
涉及的 Agent 框架 · Agent framework
ZCode Agent(自研)
严重程度 · Severity
阻塞使用 · Blocking (无法使用核心功能 / core function unusable)
复现频率 · Reproducibility
必现 · Always
问题描述 · Description
通过主 Agent 派生 Subagent(子代理 / 子智能体)后,Subagent 在调用部分需要用户授权的 MCP 工具时,没有触发权限请求 / 安全确认弹窗。结果不是继续执行,也不是明确失败,而是 Subagent 一直停在等待状态,用户界面没有可操作的授权入口,任务无法继续。
这与现有 issue #12(Subagent 无法使用 MCP 工具)不是同一个问题:#12 关注的是 Subagent 工具列表 / MCP 能力继承;本 issue 关注的是 Subagent 已经尝试调用 MCP 工具后,遇到需要授权的 MCP 操作时,权限确认链路没有正确弹出,导致 Subagent 挂起等待。
复现步骤 · Steps to reproduce
- 在 ZCode 中配置一个需要授权确认的 MCP 工具 / MCP server。
- 确认主 Agent 直接调用该 MCP 工具时,会正常弹出权限请求 / 安全确认,用户确认后可继续执行。
- 让主 Agent 派生一个 Subagent(例如 Explore 或自定义子智能体)。
- 让 Subagent 调用同一个或同类需要授权的 MCP 工具。
- 观察 Subagent 状态和任务界面。
期望表现 · Expected behavior
Subagent 调用需要用户授权的 MCP 工具时,应与主 Agent 一样触发权限请求,展示具体 MCP 工具调用内容,并等待用户选择“允许 / 始终允许 / 拒绝 / 始终拒绝”后再继续。
权限确认应至少满足:
- MCP 工具调用来自 Subagent 时,也必须进入同一套 permission / safety-confirm 链路。
- UI 应显示可操作的授权弹窗或确认卡片,而不是让 Subagent 静默等待。
- 权限请求应清楚标明是哪个 Subagent 发起、调用哪个 MCP 工具、参数是什么。
- 用户拒绝后,该 MCP 调用应返回明确错误给 Subagent,Subagent 可以继续处理或向主 Agent 汇报失败。
实际表现 · Actual behavior
Subagent 调用部分需要授权的 MCP 工具时,没有看到权限确认弹窗 / 授权请求。Subagent 会一直处于等待状态,任务无法继续,用户也没有地方点击允许或拒绝。
也就是说,问题不是“Subagent 绕过权限直接执行”,而是“Subagent 等待权限授权,但权限确认 UI 没有出现 / 没有转发到当前任务界面”。
ZCode 版本 · ZCode version
待官方确认;用户侧在当前 ZCode 版本中观察到该行为(建议在 v3.2.x 及之后版本重点核查)。
设备 / 系统 / 浏览器 · Device / OS / Browser
待补充;该问题主要涉及 ZCode Agent / Subagent / MCP 权限确认链路。
截图 / 录屏 / 日志 · Screenshots / Recordings / Logs
暂无。
建议排查方向:
- 检查 MCP 工具的 permission request 是否只绑定主 Agent 会话,没有正确转发 Subagent 会话的授权请求。
- 检查 Subagent 发起 MCP tool call 后,权限请求事件是否生成但没有被 UI 订阅 / 展示。
- 检查当前任务的“等待确认”状态是否没有关联到 nested agent / subagent 的 pending permission。
- 检查主 Agent 与 Subagent 之间的 tool call bridge 是否遗漏了 MCP permission callback / approval callback。
- 检查被挂起的 Subagent 是否在等待一个永远不会 resolve 的授权 Promise。
影响:
该问题会导致 Subagent 无法完成依赖 MCP 的任务,并且表现为无限等待,用户无法从 UI 判断是需要授权、工具卡住还是 Agent 卡死。
提交前确认 · Pre-submission checklist
问题类别 · Category
工具调用 / MCP · Tool use / MCP
涉及的 Agent 框架 · Agent framework
ZCode Agent(自研)
严重程度 · Severity
阻塞使用 · Blocking (无法使用核心功能 / core function unusable)
复现频率 · Reproducibility
必现 · Always
问题描述 · Description
通过主 Agent 派生 Subagent(子代理 / 子智能体)后,Subagent 在调用部分需要用户授权的 MCP 工具时,没有触发权限请求 / 安全确认弹窗。结果不是继续执行,也不是明确失败,而是 Subagent 一直停在等待状态,用户界面没有可操作的授权入口,任务无法继续。
这与现有 issue #12(Subagent 无法使用 MCP 工具)不是同一个问题:#12 关注的是 Subagent 工具列表 / MCP 能力继承;本 issue 关注的是 Subagent 已经尝试调用 MCP 工具后,遇到需要授权的 MCP 操作时,权限确认链路没有正确弹出,导致 Subagent 挂起等待。
复现步骤 · Steps to reproduce
期望表现 · Expected behavior
Subagent 调用需要用户授权的 MCP 工具时,应与主 Agent 一样触发权限请求,展示具体 MCP 工具调用内容,并等待用户选择“允许 / 始终允许 / 拒绝 / 始终拒绝”后再继续。
权限确认应至少满足:
实际表现 · Actual behavior
Subagent 调用部分需要授权的 MCP 工具时,没有看到权限确认弹窗 / 授权请求。Subagent 会一直处于等待状态,任务无法继续,用户也没有地方点击允许或拒绝。
也就是说,问题不是“Subagent 绕过权限直接执行”,而是“Subagent 等待权限授权,但权限确认 UI 没有出现 / 没有转发到当前任务界面”。
ZCode 版本 · ZCode version
待官方确认;用户侧在当前 ZCode 版本中观察到该行为(建议在 v3.2.x 及之后版本重点核查)。
设备 / 系统 / 浏览器 · Device / OS / Browser
待补充;该问题主要涉及 ZCode Agent / Subagent / MCP 权限确认链路。
截图 / 录屏 / 日志 · Screenshots / Recordings / Logs
暂无。
建议排查方向:
影响:
该问题会导致 Subagent 无法完成依赖 MCP 的任务,并且表现为无限等待,用户无法从 UI 判断是需要授权、工具卡住还是 Agent 卡死。