全部课程
← 课程目录
番外 · 建议先学完《亲手写一个 Agent》

亲手改一个 Agent

pi 在每个关节都留了钩子——十几行代码,不碰源码就能改它的脾气

《亲手写一个 Agent》的番外篇。你已经懂了 agent 靠哪六件运转,这门课讲它怎么让你改:pi 在每个关节都留了一个钩子(它叫 extension,不叫 plugin),你写十几行接住,就能拦危险命令、换系统提示、改压缩策略——不碰一行源码。建议先学完主课。

免费从第一节开始 前 4 节不用登录
篇章4
已上线课时13
免费试读4 节
更新节奏每周一章
agent 不是黑盒——你能给它加装备、改脾气、修 bug。

pi 在每个关节都留了一个钩子(它叫 extension,不叫 plugin),你写十几行接住,就能拦危险命令、换系统提示、改压缩策略——不碰一行源码。很多时候你甚至不用读懂整个代码库:顺着报错找到那一处、补上兜底,就够了。这门课不讲空理论,是一个非开发者的第一人称改造实录:真改进自己的 agent、真跑、真踩坑,再讲给你听。

三集改造实录 · 看一个非开发者怎么一步步改自己的 agent
①
捡现成 · 修好Todo 扩展
官方扩展当场崩,看懂报错、改一行修好
②
把判断 · 交出去Handoff 交接件
把会话攒下的判断,打包成能发给别人的文件
③
派分身 · 带围栏Subagent
派子 agent 干活,安全不靠盯梢、靠能力围栏
掌柜 · 阿澄 · 为什么要有这门课
阿澄四格漫画:为什么要有这门课
1痛点 · 学会了 agent,可它是别人的——想加个功能,不敢碰源码
2挣扎 · 想改又怕改崩,黑盒一样不敢下手
3转机 · 原来它每个关节都留了钩子,十几行就能接住
4这门课 · 亲手给自己的 agent 加装备、改脾气、修 bug,不碰源码
怎么算学会(不吹,看得见)

不是"跟着敲一遍就完事"。是:拿到一个你没见过的小需求(给 agent 加个功能),你能自己判断该在哪个钩子接、写出十几行、让它真跑起来——不用读懂整个代码库。做得到,才算学会。

章节路线图
篇章 1
番外 · pi 怎么让你改它
01 改它的脾气,不用动一行源码 用着 agent,你迟早会冒出个念头——"它 rm -rf 之前能不能先问我一句?""能不能让它说话正经点?"传统答案是改源码。但 pi 给了你另一条路:它在自己运转的每个关节都留了一个钩子,你在旁边挂一个小文件接住,就能插手——不碰一行源码。这条路,它叫 extension。 免费 02 接、加、用——extension 只有这三下 上一节你看到 pirate 那十几行。这一节把它拆开:任何一个 extension,来回就三件事——接住 pi 喊的关节、给 agent 加点东西、跟环境打交道。三个动词认全,你就能读懂任何一个 extension。 🔒 03 你写的那六件,每件都留了一道门 这是这门番外的"回款"。pi 喊嗓子的关节,不是随便撒的——它们正好落在你主课学过的六件上。Session、Context、ToolUse、人设,每一件都在自己的关键节点开了一道门。看懂这张对照,你就知道"想改某个行为,该去接哪一嗓子"。 🔒 04 最该先装的,是一道"先问一句"的门 四道门里,权限门最该先装。让 agent 自己跑命令很爽,但它某天会想 rm -rf 一个它以为没用的目录。一个十几行的 extension,就能在危险动作落地前拦住、问你一句。这一节把它写透,顺便把它和 ToolUse 准备关焊在一起。 🔒 05 pi 自己不设防——它只保证你拦得住 门装上了,但拦下的那一瞬间到底发生了什么?模型会不会知道自己被拦?装了两道门谁先响?一批三个危险动作是弹三次还是一次?这一节把权限门背后的机理挖开——挖完你会发现,pi 在"要不要拦"这件事上,什么立场都没有。 🔒 06 自己挂一个,这门课就属于你了 最后一课,上手。从一个空文件开始,写一个最小 extension,用 --extension 挂上去,看它真的生效;再把它丢进扩展目录,让 pi 自动发现。全程只用这门课的三下——接、加、用。写完这一个,你就有了给任何 agent 加装备的完整手感。 🔒
篇章 2
改造实录 · 亲手改一个 Todo 扩展(含硬核逐行精讲)
01 改造实录①:官方 Todo 崩了,我改一行修好 前面讲够了机制,这一集真刀真枪改一个——而且全程写实:一个不懂代码的人,怎么把一个崩溃的扩展修好。我们加载 pi 官方的 Todo 扩展,让它列一份公众号待办,结果它当场崩溃退出。不慌:看懂报错、找到根因、改一行、验证。最后还白捡一个漂亮的演示。 免费 02 逐行拆 my-todo ①:报家门(schema)+ 干活(execute) 改造实录里你把 todo 修好、跑通了。这一章换个玩法——不讲故事,逐行拆开 my-todo.ts,把每一块翻成人话。不需要编程基础。第一节:一个工具最根本的两件事——怎么让模型"会用"它,怎么让它"真的把活干了"。看完你会拿到理解后面持久化和渲染的那把钥匙。 🔒 03 逐行拆 my-todo ②:状态不存文件,存进账本 上一节记住了 details 装着"整份清单快照"。这一节回答:那份快照去哪了、重开会话怎么还在?答案不是"存了个文件",而是"存进了账本"——正是 Session 章那本账。这一节配一个可以亲手点的"账本重放"小交互,点回早先某条,清单当场重建给你看。 🔒 04 逐行拆 my-todo ③:它在屏幕上长什么样,你说了算 工具定义好了、状态也存住了,但每次调用在屏幕上显示成什么样,是谁决定的?两个函数:renderCall 管"调用长什么样",renderResult 管"结果长什么样"。而改造实录①那个把整个界面搞崩的 bug,根就在 renderResult 里——这一节把"修好了"讲成"为什么会崩、为什么一行就好了"。 🔒 05 逐行拆 my-todo ④:/todos 命令 + 从零画一个面板 前面拆的都是给模型用的(工具、存储、渲染)。最后一块是给人用的——/todos 命令,和那个从零画出来的清单面板。看它怎么加一个斜杠命令、怎么弹出一个自定义界面、怎么响应你的按键、又怎么用缓存不卡。拆完这块,my-todo 你就逐行看透了。 🔒