Skip to content

bug: ultracode 下 /workflows 延迟执行且主会话会停止仍在工作的 workflow agent #1308

Description

@DavidShawa

发帖前必读

  • 我已经搜索过现有 Issues,没有找到重复。
  • 我已经阅读过 README 和相关文档。

运行环境

项目
操作系统 macOS 27.0 arm64
Bun 版本 1.3.14
Claude Code 版本 2.8.3,commit f2d76e1f
安装方式 源码运行
模型 gpt-5.6-sol

复现步骤

  1. 开启 ultracode。
  2. 让主会话启动多个后台 workflow。
  3. 在主会话仍持续运行时输入 /workflows
  4. 观察 /workflows 是否立即打开。
  5. 让 workflow 继续运行一段时间,观察主会话对 workflow agent 的状态检查和停止行为。

期望行为

  • /workflows 应当能在主会话运行期间打开并显示实时进度。
  • 主会话应当正确识别仍在工作的 workflow agent。
  • 正在持续消耗 token 或调用工具的 agent 不应被当作无输出任务停止。

实际行为

/workflows 延迟执行

主会话运行期间输入 /workflows 后,命令不会立即打开,而是进入队列。

只有在当前主会话停止运行或本轮 query 结束后,/workflows 才会实际执行。

主会话频繁探查 workflow

等待 workflow 期间,主会话会反复调用 TaskOutput 检查状态。

观察到的调用过程包括:

TaskOutput(block=false, timeout=1000)
TaskOutput(block=false, timeout=1000)
Sleep(3600)
Sleep interrupted after 0s
TaskOutput(block=false, timeout=1000)

这一过程会持续重复。

主会话将仍在工作的 agent 判断为无输出

TaskOutput 通常只显示 workflow 仍处于 running 状态,没有展示内部 agent 的实时 token 数、工具调用数或当前进度。

主会话随后会检查工作区变化,并在一段时间没有看到文件修改后认为 workflow 没有产生输出,最终调用 TaskStop

一次实际复现中,三个 workflow 被停止时的状态数据分别为:

workflow wzfaar3k2
status: killed
agent tokenCount: 79624
agent toolCount: 33

workflow witw5vmrj
status: killed
agent tokenCount: 105520
agent toolCount: 43

workflow wf7f5s30p
status: killed
agent toolCount: 32

这些 agent 在被停止前仍有大量 token 消耗或工具调用,但主会话将它们判断为长期无输出任务。

相关日志

主会话在数分钟内多次执行:

TaskOutput(block=false, timeout=1000)

随后输出类似判断:

多个 workflow 长时间处于 running 状态,worktree 没有变化

然后对仍在运行的 workflow 调用:

TaskStop(wzfaar3k2)
TaskStop(wf7f5s30p)
TaskStop(witw5vmrj)

对应 workflow 状态文件显示 agent 在停止前已经产生了数十次工具调用,部分 agent 的 tokenCount 接近或超过 100K。

补充信息

该问题主要在 ultracode 启动多个后台 workflow、主会话继续自主运行的场景中出现。

两个现象经常同时发生:

  1. /workflows 无法在主会话运行时立即显示。
  2. 主会话无法通过当前状态检查看到 workflow agent 的实时活动,并主动停止仍在工作的 agent。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions