![[Bug] callAgent 跨 Agent 调度在云端返回 "Sub-agent did not complete (error)",Router Agent 无法实际调度子 Agent](https://www.chat-gpts.plus/wp-content/uploads/2026/06/16257-8ec1b72b.jpg)
[Bug] callAgent 跨 Agent 调度在云端返回 “Sub-agent did not complete (error)”,Router Agent 无法实际调度子 Agent
快速结论:该报错通常出现在 LobeHub 云端环境中,当一个 Agent 通过 callAgent 工具调用工作区中其他 Agent 时,工具调用失败,返回 Sub-agent did not complete (error)。优先排查云端是否已部署 QStash 子 Agent 执行路径的修复补丁,并尝试更换模型以排除模型兼容性问题。
问题场景
用户在 LobeHub 官方云端 Web 端(macOS/Chrome)搭建了一个“Router Agent”(中枢调度员),该 Agent 配置了 lobe-agent 插件提供的 callAgent 工具,用于根据用户问题调度工作区中的其他子 Agent(如命理大师、商业大师等)。使用模型为 opencodecodingplan/deepseek-v4-flash。当 Router Agent 尝试通过 callAgent 调用子 Agent 时,工具返回错误,导致调度失败。
报错原文
Sub-agent did not complete (error).
在日志或工具调用返回值中可见此错误。
原因分析
基于 Issue 评论中维护团队的调查,该问题与云端 QStash 模式下子 Agent 执行路径的多个已知 Bug 强相关。可能原因包括:
- SUB_AGENT_UNAVAILABLE 在云端模式:QStash 模式下,步骤工作者构建的裸运行时缺少
execSubAgent分支回调,导致ctx.subAgent为undefined,callSubAgent调用失败。此问题在 PR #15609 中修复。 - 子 Agent 未被实际启动:当父 Agent 以服务器端 QStash 任务运行时,如果
callAgent的runAsTask: true,由于缺少stop: true的工具结果标记、服务器端执行器或注入的回调,子 Agent 永远不会被实际调度。此问题在 PR #14913 中修复。 - 父 Agent 在子 Agent 完成后挂起:在队列模式下,完成桥接钩子从未被传递(仅支持处理器回调,不支持 Webhook),导致父操作永久等待。此问题在 PR #15620 中修复。
此外,可能原因还包括 opencodecodingplan/deepseek-v4-flash 模型对 callAgent 工具调用的参数格式化支持不完整。
环境排查
- 部署平台:确认使用的是 LobeHub 官方云端环境(Official Cloud),而非自部署。
- 模型:确认当前使用的模型为
opencodecodingplan/deepseek-v4-flash。 - 插件:确认是否已正确安装
lobe-agent插件,且callAgent工具可用。 - 工作区:确认父 Agent 和所有子 Agent(包括命理大师
agt_NTUXyRn4DyNh等)是否属于同一个工作区(Workspace)。 - Agent ID:确认在
callAgent调用中传递的agentId参数值正确无误(例如agt_NTUXyRn4DyNh)。 - 云端补丁状态:确认云端环境是否已部署 PR #15609、#14913、#15620 的修复(这些修复已在 2026年5-6月期间合并)。如果问题在官方云端最新版上持续出现,可能是一个回归或未覆盖的边缘情况。
解决步骤
- 更换模型测试:可优先尝试将模型更换为
GPT-4o或Claude等主流模型,以排除opencodecodingplan/deepseek-v4-flash模型对工具调用参数格式化的兼容性问题。 - 确认云端是否已部署修复:如果官方云端已部署上述 PR 的修复,请确认问题是否依然存在。如果问题依旧,则可能是回归或新的边缘情况。
- 检查 Agent ID 和工作区范围:反复核对
callAgent中传入的agentId是否属于当前工作区。系统会验证工作区作用域,错误的 ID 或跨工作区调用会导致失败。 - 获取原始工具调用 Payload:如果可能,尝试获取
callAgent工具调用的原始参数(Payload),以及服务器端的错误日志。这有助于区分“子 Agent 从未被启动”还是“子 Agent 已启动但结果未回传”。 - 重新创建 Agent 测试:在同一个工作区中,重新创建一个简单的测试场景(例如,Agent A 直接调用 Agent B 并询问一个简单问题),以排除复杂配置下的干扰。
验证方法
在 LobeHub 云端环境中,重新通过 callAgent 工具调用同一个工作区中的另一个 Agent(例如使用命理大师 agt_NTUXyRn4DyNh),并观察:
- 工具调用是否返回完整的子 Agent 回复,而非
Sub-agent did not complete (error)。 - Router Agent 是否能够基于子 Agent 的输出进行后续加工和转发。
- 如果之前有固定复现步骤(如“介绍你的能力范围”),请在该步骤上验证。
如果上述验证均通过,则问题已解决。



