返回课程总览 · 上一章 · 下一章

IndyDevDan · 51:36 · 发布 2026-02-23 · 22.8万次观看(截至抓取) · 观看原视频 🔥 观众最高回放 29:56 — 本片高回放时刻见对应章节

主旨

Pi 没有原生 subagent 支持——所以写一个 ext,用生命周期钩子自造一个 widget 管理多个 sub agent:/sub + 自然语言即起例,主 agent 收集结果,可并行,可按编号 /sub remove 回收。演示 widget 不只显示状态,还能主动调度 subagent

核心论点

  1. Pi 没有原生 subagent——这是 Pi 故意未完成的设计,作者承认:“不像 Claude Code,Pi 没有 sub agent 支持”。(→ 详解1)
  2. /sub + 自然语言即起一个 subagent——每一个 subagent 都自己跑、自己停(widget 持续显示其状态),与 Claude Code 的 task 工具是相似的执行单元但显示面更可观察。(→ 详解2)
  3. widget 当 panel:同时显示多个子 agent 的状态(运行中 / 已完成 / 已关闭),这一 UI 模式把多 agent 协作变成”能看到的工作流”。(→ 详解3)
  4. /sub remove N 按编号回收 subagent,/sub clear 全部清空,/new 重置整个会话——所有 subagent life cycle 操作都是 widget 内的命令,不是扩展点外层 API。(→ 详解4)

知识点详解

1. Pi 没有原生 subagent 的事实声明 16:26

Unlike Claude Code pi does not have sub agent support. Okay. And so there’s just no sub agent support. So we have to build this in. (16:26)

作者公开承认这一点,损自家商业形象以换取 Pi 的核心立场:你必须自己造 subagent。这与 v1 / v4 / v5 / v6 一脉——你不只用一个工具,你在 拥有 ,所以** 缺失的不完整要靠你** 补。**

2. /sub 起例 + 主 agent 收集 16:26

I’m going to type /sub and then I’m just going to type a random prompt. And you can see there a sub agent ran and responded. (16:26)

指令 /sub <prompt> 后台起一个 subagent,widget 显示编号与状态,主 agent 把结果汇总进主对话:

Imagine you have engineering jobs. Imagine you have one-off jobs that you need to fire off. Imagine you have testing, reviewing, documenting tasks. You can just fire up a sub agent in your own way. (17:35)

这一 subagent 行为是与 Subagent 在 Claude Code 高阶课里的定义一致:主 agent 派生 / 上下文独立 / 短的子代理。Pi 用 widget 让 subagent 的状态比 Claude Code 的 task 工具显式可见。

3. widget 当 panel:多 agent 并发 16:26

And so, just like before, it is going to persist in the user interface. This is very important. We’re hooking into the life cycle events and persisting UI and updating the UI whenever we need or want to. (16:26)

多个 subagent 并发时 widget 同时显示多行,每行代表一个 subagent —— 编号 + 当前动作 + 状态 / done。这就是 panel 模式:你不需要去猜,你看 widget 一眼就懂。

Our primary agent is collecting all the results. So sub agent five done, sub agent three done, sub agent two done, so on and so forth. (17:42)

主 agent 等所有子完成后汇总。

4. 回收与重置 16:26

Slash sub remove. Let’s get rid of sub agent 4. There it is. It’s gone. […] Let’s get rid of sub agent 1. And now let’s continue running sub agent 3. (17:57)

/sub remove <编号> 关闭指定 subagent,/sub clear 全部清空,/new 重置整个会话——所有 subagent lifecycle 命令在 widget 内。

可执行步骤

  • 写 subagent ext: 注册 /sub <prompt> 命令 → 后台起一个 Pi 内部 sub-session → widget 显示编号与状态
  • 注册 /sub remove N / /sub clear / /new 三个回收命令
  • 一次 /sub 3 条不同 prompt,观察 widget 同时显示三条进度
  • 在主对话里问一句”你看到的 subagent 结果是什么”,验证主 agent 自动汇总

关联

  • 进阶(多 agent 编排但更高级):本片 11-v9-Agent-Team.md / 14-v12-Agent-Chain.md — 团队式编排 + 流水线编排
  • 互补(同 subagent 定义):Subagent —— 都是主 agent 派生的上下文独立的子代理;差别在 Pi 用 widget,CC 用 task 工具
  • 印证(widget panel 模式):本片 08-v6-Tool-Counter-Widget.md —— widget 同时承载”信号显示 + 命令调度”两面

一手来源与延伸

  • Pi extension 文档:https://pi.dev/ — lifecycle event 与 widget 抽象
  • 视频 16:26-20:11(v7 subagent 演示)

术语

  • Subagent:主 agent 派生的子代理,上下文独立,常用于并行执行子任务
  • Lifecycle event:Pi 的可监听事件序列(onPrompt / onToolCall / onSubagentStart / onSubagentEnd 等)
  • Widget panel:widget 当作管理面板,既显示状态又接受输入

金句

So we have our own sub agent system. We build this in a single extension. (18:23) — 单 ext 实现完整 subagent 系统,这是 Pi “全层可定制”的延伸。

立场与利益

  • 与利益反向(单独标):作者主动说出 Pi 无原生 subagent,你必须自己造 —— 损商业形象但强化 Pi 的工具论
  • 利益中性:widget 当 panel 是工程设计

价值定位

本片目标学习者的价值:

  • 适合谁:经常需要并行子任务的工程师(批量测试 / 批量文档 / 批量重构)
  • 解决什么:自己做 Pi 的 subagent 系统(widget 化、可观察、可回收)
  • 认知 vs 实操:实操偏重,需要写 ~100-200 行 ext
  • 跨源重叠:与 Claude Code 的 task 工具同思路——前者更可视,后者更集成

自检问题

  1. Pi 没有原生 subagent,作者用什么机制自造? 答案:用生命周期钩子 + widget 抽象——subagent ext 注册 /sub 命令起后台会话,widget 显示其状态,生命周期回调更新 widget。回跳 16:26
  2. widget panel 模式与 Claude Code 的 task 工具相比,可视性差异在哪? 答案:widget panel 同时显示所有 subagent 的运行状态 + 编号 + 已完成 vs 运行中,你可以一眼看整个 team 状态;Claude Code 的 task 工具更隐式,通常只在主对话看到结果。回跳 16:26
  3. subagent 的三种 lifecycle 操作是什么? 答案:/sub remove N(按编号回收)、/sub clear(全部清空)、/new(整个会话重置)。回跳 16:26