Bug: 多步规划执行任务完成(对话结束),但主分支任务状态仍显示「执行中」 #1615
Replies: 7 comments
|
对着 master(47f943859b)把「任务状态」的完整链路追了一遍——正常情况下它必然会被清掉,所以「对话结束仍显示执行中」有三种可能,各自指向不同的修复点。先给链路,再给判别方法。 状态链路(源码确认,正常路径是通的)
三种可能(按你说的"对话自然结束"来筛)A. 客户端漏帧——已实例化会话的 running 位只有帧能改(这是我查到的最具体缺口) B. host agent 真卡在 running(已知家族 #466/#1363) C. 你看到的是 GoalBar(对话头部目标任务栏),不是运行指示 请补充一个关键信息「执行中」具体是哪个元素:① 最后一条消息下方的运行指示、② 对话头部目标任务栏(GoalBar)、③ 侧边栏会话列表行的状态?以及刷新页面后是否消失?
|
|
@argszero 感谢详细分析!
|
|
@xianyu-sheng 你的判别信息 + @yun520-1 的三状态视角合起来,现在可以收敛了——你观察到的其实是两个独立问题叠加,各自有确凿的源码归属: 列表行"执行中" = host agent 真的还卡在 running(机制 B,你的判别已指向它)列表行的 running 位不是持久化字段,也不是 goal 派生——它是 list 时从 live agent 实时算的: 所以刷新后列表行仍"执行中" = 这个 agent 的 phase 还挂在 running 态——不是客户端缓存、不是漏帧。这直接命中机制 B: 判别确认:在 host 进程里查一下有没有未 resolve 的 pending 调用(日志里最后一次 GoalBar"执行中" = goal 未 complete(机制 C,独立于上面的 B)GoalBar 显示的是 goal 投影( 即使 agent 正常归 idle,goal 也不会自动 complete——这是设计使然(工具描述明示 "Mark complete only when the objective is actually achieved"),但对"多步规划"这种用完即弃的目标确实是 UX 缺口:模型答完不会记得调 goal_update,用户也没处点"标记完成"。 结论与修复方向(分开治)
@yun520-1 的"三个独立状态源分开追"判断完全正确——这次恰好是两个状态源都指向了真实问题:agent phase 卡 running(B)+ goal 未 complete(C)。 |
|
argszero 和 yun520-1 的分析很透彻。补一个判别旁证:装一个任务完成 OS 弹窗(我们 dsh-windows-notify)——若完成时弹窗正常触发,说明后端完成事件发了,卡的是 UI 状态机(B/C 场景);若弹窗也没触发,则是后端事件源头的问题。用「事件到了哪一层」来定位,比肉眼看 UI 快。仓库:https://github.com/Sutera-Diffusus/dsh-windows-notify |

Uh oh!
There was an error while loading. Please reload this page.
环境
现象
用户在当前页面发起多步规划执行任务,任务执行过程中用户可以持续与 Agent 对话。
当 Agent 完成所有步骤、给出最终答案、对话自然结束时:
期望行为
对话结束(Agent 输出最终答案且不再等待用户输入)应触发主分支任务状态的更新,将任务标记为「已完成」或「已结束」。
影响
补充
此问题不涉及子代理(subagent),是在主分支的普通多步规划执行中观察到的行为。
感谢反馈!
All reactions