ialenax
26-08-10 09:59

前段时间读了 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

发布于 北京