前段时间读了 QuantumTransf 老师的《pi-agent book》。
这本书给我的最大感受是:它不是简单介绍一个 Agent 怎么用,而是在拆解一个 Agent 系统背后的设计思路。
从架构到实现,每一个细节都讲得非常透。
但读完之后,我发现自己遇到了一个老问题:
面对这种系统性很强的技术资料,我很难只靠阅读保持长期兴趣。
可能我的学习方式一直比较“笨”:
想真正理解一个东西,必须自己动手造一遍。
只看代码、只看文档,很容易知道“是什么”;但只有亲手实现一次,才会真正理解“为什么”。
所以我没有直接继续啃 pi 的完整源码,而是做了一个反方向的尝试:
把 pi 砍到只剩核心。
于是有了 PI-from-Scratch。
我重新实现了一个大约 600 行代码的 nano pi,并把整个过程整理成了一篇文章。
它不是一本厚重的教程,也不是一个复杂工程。
你花半天时间,就可以从零走完整个构建过程。
为了让学习过程更接近“动手写代码”,我还做了一个小设计:
文章右侧加入了代码编辑器。
读到哪个部分,对应代码就会同步出现。
你可以边阅读,边运行,边观察一个 Agent 是如何一点点成长出来的。
整个实现过程没有提前堆砌复杂抽象,而是遵循一个很简单的原则:
遇到需求 → 解决需求 → 产生组件。
我需要这个能力,所以创造这个组件。
这种过程其实非常像第一次写 hello world 时的感觉:
不是为了完成一个任务,而是在创造一个属于自己的东西。
另外,我自己早期写代码比较喜欢逐行断点调试,所以也加入了 trace 跟踪能力。
希望通过逐步观察代码执行流程,帮助大家理解 Agent 内部到底发生了什么。
顺便说明一下:
这篇文章基本都是自己一点点写出来的,AI 参与感非常低 😄
我觉得学习一个复杂系统,可能有这样一条路径:
先动手实现一个简化版本,建立直觉;
再阅读优秀设计;
最后回到真实源码。
很多原本看起来复杂的东西,会突然变得清晰。
后续如果反馈不错,PI-from-Scratch 可能会继续做成一个系列:
把 pi 的不同 components 拆开,逐个实现属于自己的 nano pi。
也想听听大家的看法:
对于学习 Agent 这类复杂系统,你更喜欢“先读懂再实现”,还是“先造出来再理解”?
GitHub:
http://t.cn/AXNVybGY
在线阅读:
http://t.cn/AXNVybGT
发布于 北京
