问题
直接 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 一致的带图标、单行、紧凑显示:
subagent_spawn 创建的直接 Subagent;
- 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,完整输出仍可查看;
- 长路径、命令和搜索词按当前宽度安全裁剪,不撑破面板。
验收标准
非目标
价值
Child agent 的主要用途是并行工作,单个 child 内部可能有几十次读取、搜索和验证。用户通常先关心“它在做什么、是否失败、最终得到什么”,而不是默认阅读每次工具的完整原始块。
统一投影后:
- 父会话和 child 会话视觉语言一致;
- 同屏信息密度更高;
- Workflow 启动更多 agent 时仍可浏览;
- 完整证据继续按需可达;
- 不增加模型 token、工具 Schema 或执行复杂度。
问题
直接 Subagent 和 Workflow child agent 的详情页中,
read / grep / find / ls / bash / write / edit等工具活动仍可能按原生完整块展开。一次探索任务会产生大量读取和搜索,用户进入 child transcript 后看到的是很长的工具输入/输出,而不是父 Pi 当前已有的紧凑活动视图。父会话已经通过
extensions/file-mutation-display/提供了更清晰的默认投影:每个动作默认只占一行,突出“做了什么、对象是什么、结果如何”;需要审计时仍能展开查看 Pi 原生证据。
Child agent 详情没有稳定复用这套投影,造成父会话与子会话体验割裂。Workflow fan-out 越大、child 工具调用越多,这个问题越明显。
目标
让下面两种 child session 的工具活动默认采用与父 Pi 一致的带图标、单行、紧凑显示:
subagent_spawn创建的直接 Subagent;agent()创建的 child agent。用户展开时继续显示 Pi 原生完整调用和结果,不删除证据、不修改 transcript。
设计原则
1. 只改变 operator projection
不得改变:
这应当和父级
withActivityRenderer()一样,只替换 collapsed TUI renderer。2. Subagent 与 Workflow 共用一个实现
不要分别在
extensions/subagents/和extensions/workflows/复制格式化逻辑。应复用或下沉现有extensions/file-mutation-display/的活动投影,使三处保持同一套:Child 是否已有运行实例只是 UI 状态,不应产生另一套工具定义。
3. 默认紧凑,展开保留原生证据
renderCall/renderResult,完整输出仍可查看;验收标准
read/grep/find/ls/bash/write/edit默认均为带图标的单行活动;非目标
价值
Child agent 的主要用途是并行工作,单个 child 内部可能有几十次读取、搜索和验证。用户通常先关心“它在做什么、是否失败、最终得到什么”,而不是默认阅读每次工具的完整原始块。
统一投影后: