IndyDevDan · 51:36 · 发布 2026-02-23 · 22.8万次观看(截至抓取) · 观看原视频 🔥 观众最高回放 29:56 — 本片高回放时刻见对应章节
主旨
把 v1 心流版的 footer 缺位通过 stacking 多 ext 补回:自己做一个 minimal footer ext,显示 model + context window。演示”Pi 的 extension 之间可任意堆叠”——这是后面 widget / subagent / multi-agent 编排的通用工程模式基础。
核心论点
- Stacking extensions 是 Pi 的核心工程模式:同一会话可以同时挂多个 ext,各自负责一件事,组合产生新行为。(→ 详解1)
- v2 的 minimal footer 只显示 model 名字 + context window,把 v1 缺位的可见性补回一半——不要任何其他花哨,只要”够用”信息。(→ 详解2)
- footer 的状态行本质是 agent loop 的”可视窗口”:不仅是装修饰,而是让你知道”agent 正在做什么 / 还有多少余地”,这在长任务时防止模型走弯路。(→ 详解3)
- 排队队列(queue)是 v2 顺带演示的能力:连发多条 prompt / 命令,agent 顺序处理,跟 Claude Code 一样。(→ 详解4)
知识点详解
1. 同时启用多个 extension 10:35
And the great part about Pi, notice this, is that I’m stacking extensions. So I’m now going to put together two extensions in one. (10:35)
作者把 pure focus 的 ext 加上自定义 minimal footer ext,在同一次 pi 调用里同时挂上。Pi 的 extension 设计是把各 ext 视作独立并行单元,可以任意组合——这是后面 v6 widget、v7 subagent widget、v11 damage control hook 的通用范式。
2. 极简 footer 的取舍 10:35
启动后看到的 footer 显示的内容是 Cloudset 4.6 + context window 右边数值,只这两件事。vs Claude Code 的更丰满 footer——Claude Code 默认显示 cwd、git status、模型 id、context 用量、token in/out 等更多字段。Pi 的取舍是”少即是好”——footer 显示越少,主屏幕越干净。
这一取舍指向一个具体的工程价值:信息密度的可调性。你来决定哪些信息密度合适;工具不替你做这个选择。
3. footer 作为 agent loop 的可视窗口 10:35
作者反复强调 footer 不只是装饰。“我想要知道模型和 context” 是个反复出现的需求,这背后是一个 agentic engineering 原则:你看不到,改不了。
an agent you can’t see is an agent you can’t improve (来自 CMUX 视频同一主张,本片作者同样坚守这一信条)。对照 AI 编码光谱 中 vibe coder 不看过程 / agentic engineer 看过程。
4. 顺带的排队队列能力 10:35
We can queue up messages as you would expect, right? LS ls ls ls. You can see that this is getting queued up and the agent will just keep firing this off. (10:35)
连发 4 条 ls,agent 顺序执行。这与 Claude Code 的 queue mode 是同一行为,但 Pi 把”消息排队”视作 extension 可影响的事件,而不是产品固定行为——意味着如果你想要别的排队策略,写一个 ext 即可。
可执行步骤
- 在 Pi 的 ext 目录里写一个最小 footer ext,函数签名注册到 footer hook,只读 model + context 显示
- 把同一个 ext 文件夹里另一个 ext 启用(比如 v1 pure focus),启动时
pi -e enable purefocus,minimalfooter验证两条 ext 同时挂上 - 改 footer 多塞一条信息(比如 cwd),观察是否影响主对话区的密度感受
- 跑一次 5 条
ls连发,验证 queue 不丢消息
关联
- 互补(v1 减法 vs v2 减法 + 必要加法):本片 03-v1-Pure-Focus.md — v1 牺牲 footer,v2 是”减到只剩必要的那一小段”
- 进阶(v5 把 footer 扩展到”等待工具”信号):本片 07-v5-Tool-Counter.md
- 互补(同一原则):CMUX 实测 —— “看不见的 agent 就是改不了的 agent”
一手来源与延伸
- Pi extension 文档:https://pi.dev/
- 视频 10:35-11:10(v2 minimal 演示)
术语
- Stacking extensions:Pi 同会话挂载多个 ext 的范式,各 ext 互不干扰但可组合行为
- Message queue:agent 一次收到多条 prompt 时按顺序逐个执行,Pi 默认行为
金句
And the great part about Pi, notice this, is that I’m stacking extensions. (10:35) — stacking 是 Pi 后续所有变体的工程基础。
立场与利益
- 利益中性:stacking 是工程模型,无直接挂商品
价值定位
对本片目标学习者的价值:
- 适合谁:第一次写 Pi ext 的人,确认你能挂多个
- 解决什么:在 Pi 里自由组合多个能力,而不是每次启 Pi 都只有一个 ext
- 认知 vs 实操:偏实操——5 分钟写完
- 与本片其他章节重叠:stacking 是 v6 widget、v7 subagent、v11 damage control 的基础
自检问题
- v2 相对 v1 多了什么?为什么不是回到 v0 的默认 footer? 答案:多了 model 名字 + context window;故意不再加 v0 的更多字段,因为 v0 footer 信息密度太高,作者在 v1 已经承认可见性过高影响心流。回跳 10:35
- stacking extensions 在工程上等价于什么? 答案:多个 ext 同时挂载,各管一件事,组合出新行为——这等价于把”agent 的能力面”分解成可独立测试的小块,而不是 one big config。回跳 10:35
- 排队队列在 v2 顺带演示了哪一项行为? 答案:连发多条 prompt(ls x 4),agent 顺序执行。意味着 Pi 与 Claude Code 一样支持 message queue,且作为 extension 钩入点意味着可以改造排队策略。回跳 10:35