Repository navigation
[Bug] 0.2.0-rc.2 nightly:父 Agent 无法终止自己派出的子代理 #9764
Replies: 1 comment
|
根因不在子代理身上——是你启用的那个 profile 把 subagent 工具整套禁掉了,换成了 Team 工具。你手上那个 决定性的一行
- id: tool-subagent-control
disabled: true
- id: tool-subagent-list-agents
disabled: true
- id: tool-subagent
disabled: true
- id: tool-subagent-fork
disabled: true同一个文件的注释自己写着:apply after dsh-base so these replacements keep direct delegation and coordination on the Team tools。 所以只要你挂了 怎么自证你撞的是哪一套两套工具的参数名不一样,看一眼你实际拿到的 schema 就能定案:
你写的是 而且那句报错我找到出处了,在 Team 侧: 关于"list_agents 只返回 lead"这个也是设计,不是 bug。 所以:你直接派出的那个匿名 child 从来就不在 roster 里,Team 版的三个工具按设计永远够不到它。 这解释了你观察到的全部现象——包括"手动在界面上点停止是好的"和"父会话还收到了 closing message",说明子代理运行链路本身没问题,坏的只是你手里这套工具的名字。 那该怎么做在这个 profile 下,要么改用 Team 的玩法:
要么别挂 有一处是真缺陷,值得你单独提你说 但在你这个 profile 下这句话是失真的,因为 不过这里有个我解不开的点,需要你确认:那份 patch 明明已经 边界我核的是 另外提醒一句:这个坑不是第一次出现。README 里 |
Uh oh!
There was an error while loading. Please reload this page.
摘要
在 0.2.0-rc.2 nightly(Windows x64)上,父 Agent 依旧无法终止自己用
subagent派出的子代理:interrupt_agent(target: <childId>)→Error: active teammate "<childId>" not foundsend_message(target: <childId>, message: ...)→ 同一句错误list_agents()→ 只返回lead;job_list()→(no background jobs)也就是说,运行中的子代理在父 Agent 的控制面上既不显示、也不可寻址、也不能终止;唯一出路是人在 GUI 里手动点停止。手动停止这条路径本身是正常的:父会话随后收到了
Background subagent ... was stopped before it finished.连同它的 closing message。问题只在于父 Agent 自己发不起这个停止。本贴不是新问题,下面先列既有报告,再补当前 nightly 上的复现。
与既有报告的关系
send_messageshadowstool-subagent-control's, breaking plain continuable subagents三条目前都是开放状态:#7087 指向工具重名遮蔽这一根因方向,#7642 指向 roster 缺失,#9056 记录症状。在 0.2.0-rc.2 nightly 上三者都仍然可复现。
环境
app-update.yml→channel: nightly,feed
https://download.deepseek.com/dsh-desk/feeds/win-x64/),Windows x64 用户级安装desktop启用的 bundles:@deepseek-ai/dsh-base、@deepseek-ai/dsh-web-app、dsh-ops、@deepseek-ai/dsh-experimental-schedule-bundle、@deepseek-ai/dsh-experimental-agent-team-profile、@deepseek-ai/dsh-experimental-auto-review、billion-context-dshcordis.yml里注册着 subagent 组件:subagent(maxActiveSubagents: 16)、subagent-spawn-in-process、tool-subagent-control、tool-subagent-list-agents、tool-subagent复现步骤
subagent以后台方式派一个子代理,拿到 id(示例:529885eb-b628-41d4-923a-8cf755844b1b,labelMap repo package structure)。期望
interrupt_agent/send_message接受 subagent id,或另给一个subagent_stop之类的工具,让父 Agent 能终止自己派出的子代理。
list_agents()(或等价的列表)里,并带可寻址 target。subagent的工具说明——现在写的是"returns a subagent id you can continue with
send_message",与实测不符——并给
subagent加一个父侧可控的超时 / 取消参数。影响
父 Agent 在子代理跑偏或跑太久时无法纠正、无法止损,只能干等或请人代劳;长任务上就是上下文和时间的双重浪费。
All reactions