L2 · extension、skill、权限与分发
改造 Pi
Pi 的核心刻意做得很小 —— sub-agent、plan mode、权限门、沙箱全都是扩展。这一阶段把这套扩展体系吃透,你就能把任何 harness 掰成自己的形状。
7 节课 · 约 4 小时已完成 0/7
- 1
extension 能碰到什么
原理30 分钟工具、命令、快捷键、事件、TUI —— 扩展点的边界,就是你能改造的边界。
- 列出 Pi 的扩展点,并为一个需求选出该挂在哪个点上
- 读懂一个官方示例扩展的完整结构
- 说明扩展的加载顺序、隔离边界与 `/reload` 的作用
- 2
写第一个扩展:给 agent 加一件新武器
动手45 分钟从一个真实需求出发(查内部系统、跑项目脚本),把它变成 agent 手里的工具。
- 写出一个带参数校验与错误处理的自定义工具并装进 Pi
- 加一个斜杠命令和一个快捷键,把常用操作固化下来
- 用事件钩子在每轮开始前注入动态上下文
- 3
skill:按需装载的能力包
原理30 分钟把「指令 + 工具」打成一包,用得上才进上下文 —— 渐进披露的关键是别把缓存打碎。
- 判断一件事该做成 skill 还是写进系统提示词
- 写出一个 skill 的触发描述,让它在该出现的时候出现
- 解释渐进披露怎么和 prompt 缓存共存
- 4
权限门与路径保护:让它别删库
动手40 分钟Pi 不内置权限弹窗 —— 这不是缺陷,是让你自己定义什么叫危险。
- 实现一个按工具与参数分级的确认门
- 用路径白名单/黑名单挡住写操作越界
- 为无人值守场景设计「不弹窗也安全」的策略
- 5
sub-agent 编排:为什么核心不内置
原理35 分钟子 agent 是省上下文的利器,也是把问题藏起来的利器。自己造一遍才知道该不该用。
- 说清 sub-agent 真正解决的是上下文隔离而不是并行加速
- 实现一个把结果结构化返回给主 agent 的子 agent 工具
- 判断哪些任务不该派出去
- 6
打包成 Pi package 并分发
动手30 分钟扩展写完只在你机器上有用;打成包就能给团队用,也能被别人的 agent 装上。
- 把扩展、skill、提示词模板、主题打成一个可安装的包
- 通过 npm 与 git 两条路径分发并验证安装
- 为包写出让人一眼看懂装了会多什么的说明
- 7
闯关:agent 卡在工具死循环里
闯关30 分钟同一个工具连调二十次,token 一路涨,任务毫无进展。在模拟终端里找出根因。
- 从事件流里定位重复调用的起点与触发条件
- 区分三类根因:工具返回没信息、提示词冲突、退出条件缺失
- 给出修复方案并说明为什么这次不会再犯