我一直在想现代AI开发的这场“悲剧”。我们正活在满是slop(平庸垃圾)的世界里,今天我要讲的,是我怎么造了pi来逃离它。
Claude Code在你背后操纵你的上下文:系统提示每个版本都在变,连工具定义都会被改、被删,而且不通知你;它还会往上下文里塞各种“系统提醒”,经常用类似“这里有些信息,可能跟你正在做的事相关,也可能无关”这种话——这种模棱两可恰恰会把模型搞糊涂、打断它的连贯思路;零可观测性,你根本不知道这些agent实际在干什么;零可扩展性,就算有hook也都很浅,每触发一次就新开一个进程,谈不上深度集成。
我们真正需要的,是能自我改写、能被捏来捏去、会适应“我们”的agent,而不是反过来让人去适应工具。
都给我慢一点!
我们已经到了一个危险的地步:有人会吹嘘自己的产品“100%由agent造出来”。通常,这只意味着——这产品现在很烂。
agent在制造复利式的“boooos”(我对“连环错误”的叫法)。
其一是衔尾蛇问题:你用一个编程agent写代码,再用一个“审查agent”去查它。可这两个agent都是从同一个地方学来的——互联网,而互联网上90%是陈年的垃圾代码。
其二是局部成功、全局失败:agent打了个“局部正确”的补丁,却把全局架构搞坏了,因为整个代码库已经大到塞不进它的上下文窗口。
其三是延迟的疼痛:人写出烂代码会疼,所以人会去重构;agent不会疼,它会心安理得地一层抽象叠一层抽象,直到你的代码库变成一个超级复杂的噩梦。
那到底该怎么用agent?别让它替你做大决定,把它用在这些任务上:
范围明确(它能找到完成任务所需的全部上下文)
可验证(你能给它一个函数来判断有没有做成)
无聊/非关键(复现bug的用例、当个“橡皮鸭”陪你理思路)
同时把代码库模块化:更小、边界更清晰的模块,才让agent的任务变得可处理、可审查。
摩擦其实是个好东西。写代码的摩擦,正是你脑子里那套系统心智模型被建立起来的过程,也是你学到新东西的地方。如果你把所有思考都外包给一个clanker,等系统不可避免地崩了,你就失去了修它的能力。
造你自己的工具。把控制权拿回来。去启发你的用户,而不是喂饱你那点“token最大化”的欲望。
慢下来,造点真正重要的东西。
那我们怎么知道哪些是“关键”的?Mario:你去读代码。理解这件事没有捷径。你不读它,你就不拥有它。
黄金法则:如果它是关键的,逐行读;如果它是重要的,亲手写。
——
我现在很喜欢用pi Agent,它超级极简,然后但很多任务上往往比Claude Code、Codex 还要好用。然后收到这个创始人的访谈,我发现他的话语我都很容易听进去,就很喜欢。
我也认同他的观点,就是在真正重要的事情上,你还是要你亲自去做,去手写,去感,通过摩擦带来真正的理解,带来真正的思考,带来真正的学习。
