Skip to content

统一 Subagent 与 Workflow child 的图标化单行工具活动视图 #93

Description

@tt-a1i

问题

直接 Subagent 和 Workflow child agent 的详情页中,read / grep / find / ls / bash / write / edit 等工具活动仍可能按原生完整块展开。一次探索任务会产生大量读取和搜索,用户进入 child transcript 后看到的是很长的工具输入/输出,而不是父 Pi 当前已有的紧凑活动视图。

父会话已经通过 extensions/file-mutation-display/ 提供了更清晰的默认投影:

图标  Read    path/to/file
图标  Searched pattern in path   N matches
图标  Ran     command…
图标  Edited  file.ts             +N -N

每个动作默认只占一行,突出“做了什么、对象是什么、结果如何”;需要审计时仍能展开查看 Pi 原生证据。

Child agent 详情没有稳定复用这套投影,造成父会话与子会话体验割裂。Workflow fan-out 越大、child 工具调用越多,这个问题越明显。

目标

让下面两种 child session 的工具活动默认采用与父 Pi 一致的带图标、单行、紧凑显示:

  1. subagent_spawn 创建的直接 Subagent;
  2. Workflow agent() 创建的 child agent。

用户展开时继续显示 Pi 原生完整调用和结果,不删除证据、不修改 transcript。

设计原则

1. 只改变 operator projection

不得改变:

  • child model 看到的消息与工具结果;
  • 工具 Schema、名称和 prompt metadata;
  • execute 行为、权限与 child allowlist;
  • transcript、artifact、replay 与持久化内容;
  • Provider 请求与缓存身份。

这应当和父级 withActivityRenderer() 一样,只替换 collapsed TUI renderer。

2. Subagent 与 Workflow 共用一个实现

不要分别在 extensions/subagents/extensions/workflows/ 复制格式化逻辑。应复用或下沉现有 extensions/file-mutation-display/ 的活动投影,使三处保持同一套:

父 Pi transcript
直接 Subagent transcript
Workflow child transcript
        ↓
同一个 activity renderer

Child 是否已有运行实例只是 UI 状态,不应产生另一套工具定义。

3. 默认紧凑,展开保留原生证据

  • 默认:一项工具活动一行;带对应图标、动作、关键对象、状态和必要计数;
  • running:保留进行中状态和耗时反馈;
  • success/error:视觉上明确,但不要让成功工具活动抢过最终回答;
  • expanded:委托 Pi 原生 renderCall/renderResult,完整输出仍可查看;
  • 长路径、命令和搜索词按当前宽度安全裁剪,不撑破面板。

验收标准

  • 打开直接 Subagent 详情时,read/grep/find/ls/bash/write/edit 默认均为带图标的单行活动;
  • 打开 Workflow child 详情时,同一组工具得到完全一致的默认投影;
  • 展开某项活动后能看到 Pi 原生完整输入和结果,再折叠可回到单行;
  • pending、success、error、长输出和窄终端均有测试;
  • renderer 不改变 child 工具 Schema、执行结果或持久 transcript;
  • Subagent 与 Workflow 测试证明使用的是共享实现,而非两套漂移副本;
  • 父会话现有 compact/full 配置语义有明确继承规则,避免 child 自己发明另一份配置。

非目标

价值

Child agent 的主要用途是并行工作,单个 child 内部可能有几十次读取、搜索和验证。用户通常先关心“它在做什么、是否失败、最终得到什么”,而不是默认阅读每次工具的完整原始块。

统一投影后:

  • 父会话和 child 会话视觉语言一致;
  • 同屏信息密度更高;
  • Workflow 启动更多 agent 时仍可浏览;
  • 完整证据继续按需可达;
  • 不增加模型 token、工具 Schema 或执行复杂度。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions