Agentpath
31 lessons · 5 levels · 13 hands-on

造一个 agent。

agent 说到底就是一个 while 循环:让模型决定下一步调什么工具,直到它认为完事了。 难的从来不是这个循环,而是循环外面那一圈 —— 上下文怎么省、工具怎么设计、 权限在哪道门上拦、失控了谁来兜。这门课拿 Pi 当解剖对象, 从 31 节课里把这一圈补齐。

不讲怎么用 agent,讲怎么造 agent

提示词技巧这里不教。这门课的读者是要自己写 loop、写工具、决定权限边界的人。

底座是 Pi,因为它的内核足够小

sub-agent、plan mode、权限门、沙箱在 Pi 里全都是扩展。能拆开的东西才讲得清。

每一段都要落到能跑的代码

八十行的最小 loop、你的第一个扩展、嵌进自己应用的 SDK —— 看完要有产物。

L0 → L4,一条线走完

31 节 · 约 18 小时 · 已完成 0/31

先划清 agent 的定义并把 Pi 跑起来(L0),自己写一个最小 loop 再对着 Pi 的实现读(L1), 然后用扩展把它改成自己的形状(L2),补上沙箱、评测、成本这些上线前必须有的东西(L3), 最后进真实场景,收尾时把零件拼成你自己的 harness(L4)。

0%
从第一节开始 · L0 agent 到底是什么:一个 while 循环
L0起点与底座4 节 · 已完成 0/4

agent 这个词被用得太散了。这一阶段先划清它和聊天机器人、和固定工作流的界线,把 Pi 装上手动一遍,再补齐 token、上下文窗口、tool calling 这三样绕不过去的底子。

  1. 1agent 到底是什么:一个 while 循环去掉包装,agent 就是「让模型自己决定下一步调什么工具,直到它说完事了」。这个定义决定了后面所有设计取舍。25m
  2. 2把 Pi 装上:四种运行形态各跑一遍Pi 有交互式 TUI、print/JSON、RPC、SDK 四种形态。四个都跑过一遍,你才知道自己以后要用哪个口子。35m
  3. 3一次模型调用里发生了什么:token、采样、成本不懂 token 就调不好 agent —— 上下文爆掉、账单失控、复读机般的输出,根子都在这一节。30m
  4. 4tool calling 协议:模型怎么「动手」工具调用不是魔法,是一段结构化的 JSON 往返。看懂这段往返,你就能自己造工具,也能读懂 agent 卡在哪。30m
L1内核解剖7 节 · 已完成 0/7

这一阶段自己写一个能跑的最小 agent,然后拿 Pi 的实现逐项对照:它的 loop 多了什么、上下文怎么管、会话为什么是树。写过一遍再读源码,收获完全不同。

  1. 1八十行写出你自己的 agent loop不借任何框架,用一个 while 和两个工具跑起来。这八十行是后面所有内容的地基。45m
  2. 2Pi 的 loop:事件流、中断与 steering真实 harness 的循环比教学版复杂的地方,几乎都在「人要能插话」这件事上。35m
  3. 3工具设计:粒度、错误与幂等agent 的能力上限由工具决定。工具设计糟糕时,换更强的模型也救不回来。35m
  4. 4系统提示词、AGENTS.md 与 SYSTEM.md同一个模型、同一套工具,换一份系统提示词就是另一个 agent。Pi 把这层完全交给你改。30m
  5. 5上下文预算与 compaction上下文是最贵、最先撞墙的资源。这一节把账算清楚:谁在吃、第几轮撞墙、压缩要压什么。40m
  6. 6会话状态:为什么 Pi 把历史存成一棵树线性日志只能后悔,树可以回到任意一步重新走。这个选择直接改变了使用方式。30m
  7. 7流式输出与 TUI:agent 的体感同样的模型,等三十秒黑屏和边跑边出字,用起来是两个东西。25m
L2改造 Pi7 节 · 已完成 0/7

Pi 的核心刻意做得很小 —— sub-agent、plan mode、权限门、沙箱全都是扩展。这一阶段把这套扩展体系吃透,你就能把任何 harness 掰成自己的形状。

  1. 1extension 能碰到什么工具、命令、快捷键、事件、TUI —— 扩展点的边界,就是你能改造的边界。30m
  2. 2写第一个扩展:给 agent 加一件新武器从一个真实需求出发(查内部系统、跑项目脚本),把它变成 agent 手里的工具。45m
  3. 3skill:按需装载的能力包把「指令 + 工具」打成一包,用得上才进上下文 —— 渐进披露的关键是别把缓存打碎。30m
  4. 4权限门与路径保护:让它别删库Pi 不内置权限弹窗 —— 这不是缺陷,是让你自己定义什么叫危险。40m
  5. 5sub-agent 编排:为什么核心不内置子 agent 是省上下文的利器,也是把问题藏起来的利器。自己造一遍才知道该不该用。35m
  6. 6打包成 Pi package 并分发扩展写完只在你机器上有用;打成包就能给团队用,也能被别人的 agent 装上。30m
  7. 7闯关:agent 卡在工具死循环里同一个工具连调二十次,token 一路涨,任务毫无进展。在模拟终端里找出根因。30m
L3工程化7 节 · 已完成 0/7

能跑通和敢上线之间差的就是这一阶段:把 agent 嵌进自己的应用,关进沙箱,给它写测试,把 token 账单和失败率变成看得见的曲线。

  1. 1用 SDK 把 agent 嵌进自己的应用不是所有 agent 都长成终端。SDK 模式让 Pi 变成你应用里的一个库。45m
  2. 2RPC 模式:非 Node 宿主怎么接宿主是 Go、Python、Rust 也照样能用 —— 一条 stdin/stdout 上的 JSON 协议而已。30m
  3. 3沙箱与隔离:把手脚绑在安全范围里与其猜哪条命令危险,不如让危险命令根本没地方落地。35m
  4. 4MCP 还是 CLI 工具:Pi 的取舍Pi 明确不内置 MCP,理由值得认真读一遍 —— 然后你自己决定要不要加回来。30m
  5. 5给 agent 写测试:评测与回归改一句提示词就可能让成功率掉一半,而你不会立刻知道 —— 除非有评测。45m
  6. 6可观测:trace、用量与失败分类线上 agent 出问题时,你需要的不是日志,而是能回放的一整条链路。30m
  7. 7成本与延迟:把账压下来同一个任务,做对缓存和模型分层能便宜一个数量级。35m
L4真实战场6 节 · 已完成 0/6

最后一段进具体场景:编码 agent 怎么闭环、运维 agent 的危险边界在哪、长期记忆该存什么。收尾那节把前面所有零件拼成你自己的 harness —— 从 Pi 毕业。

  1. 1编码 agent:改代码要闭环会写代码不难,难的是改完自己验证。测试就是编码 agent 的眼睛。35m
  2. 2运维 agent:接上真实集群之后让 agent 碰生产环境之前,先把「哪些动作必须人点头」写成代码。35m
  3. 3多 agent 协作与它的真实代价拆成多个角色看着很美,但交接处丢的信息、翻倍的成本都得有人付。30m
  4. 4长期记忆与检索:什么该进提示词记住一切等于什么都记不住。记忆系统的价值在于取舍。35m
  5. 5闯关:失控的 agent半夜的无人值守任务烧掉了大半个月预算,还改了不该改的目录。复盘并加固。35m
  6. 6造你自己的 harness:从 Pi 毕业把前面所有零件按自己的工作流重新拼一遍 —— 这才是这门课的目的。60m

5 节已有正文,其余为定稿大纲 —— 打开也能看到这一节会讲什么。 进度存在浏览器 localStorage,没有账号体系。