个人立场声明
为什么需要这篇声明
每一本这样的书背后都有偏见。区别只在于:有的书假装没有,有的书把它写出来。假装没有更危险——你在不知不觉里接受了一套预设,却以为读到的是客观事实。写出来,至少给了你一个选择:知道作者立场之后,自己决定哪些判断照单全收,哪些打个折。
这篇声明给的是校准信息。知道望远镜的光轴偏了几度,观测数据照样能用。
有件事关系到我的利益,得先说清楚:我正在做一个 agent 框架。这本书的前提是 agent 这一层已经有了一套稳定到值得做成框架的抽象——而我做的框架正押在这个前提上。我比旁人更有动机把它说得比实际更容易成立。书里论证这个前提的地方,请你打个折。
三条核心信念
这本书的论证压在三条信念上。
岗位先于候选人。先想清楚这份活要什么,再挑模型、工具和权限。很多 agent 问题看起来是模型弱,其实是岗位没写清。顺序反了,后面全靠运气。
能力要能留下来。一个 agent 的本事,该是可验证、可迁移的东西,换个 agent、换个环境还能用、还能查。不该是一段碰巧能跑、说不清为什么有效、也带不走的 prompt。把能力当一次性咒语来攒,攒不出复利。
责任不能交给 agent。能力可以拆开、外包、fan-out 给一群 agent,后果不能。系统造成的影响,最终要落到能担责的人或组织身上。这条线守不住,agent 越能干,风险越大。
技术偏好
有几条偏好贯穿全书,列在这里供你校准。
岗位定义清晰,优于模型堆砌。一个 agent 跑不好,先查岗位写没写清,再查模型够不够强。多数时候,问题在前者。
能力可验证、可迁移,优于一次性精雕的 prompt。宁可要一个朴素但能复现、能迁移的能力单元,也不要一段华丽却只在此时此地有效的提示词。
对框架崇拜保持警惕。我做框架,但我不信框架能替你想清楚 agent 是谁。引一个框架之前,先确认简单方案真的不够——而且是验证过不够,不是凭“看起来更专业”的感觉。
至于声明式优于命令式、组合优于继承、类型优于运行时检查、显式依赖优于隐式约定、结构驱动优于流程驱动、简单优于“看起来高级”——这些更底层的工程偏好,第一本已经摆明过,这里继承,不重述。
盲区
把偏差也摊开。
就算那套抽象站得住,我也可能把它用过头。有些 agent 问题的最优解就是“先跑起来再说”,几十行胶水代码够了,不值得先搭一套结构。
这本书把 agent 当人看,这套隐喻好用,但所有隐喻都有边界。某些地方它会失真——agent 终究不是人,它没有自我,不会真的为后果痛,硬把人的逻辑套上去会出错。我尽量在每章点出隐喻的边界,但一定有没点到的地方。
还有一条前提得单独挑出来,因为整本书的责任论都压在它上面:我假设 agent 没有自己的利害——它不会被真的伤害,也没有什么东西是它在乎的。正因如此,责任的最终落点才必须落在人或组织身上,而不能是 agent。这不是永真的判断,是一个时间戳。这本书写在碳基为主、agent 刚开始融入人类社会的阶段;在这个阶段,agent 有能力、没利害,人始终承受后果。哪天这条前提塌了——agent 真长出了自己的利害——责任这部分的结论就得重写,不能只打个补丁。那是另一个阶段的事,也不在这本书的范围里。
还有一类问题我处理得偏轻:agent 之间、agent 与人之间那些没法被结构和协议吃干净的、模糊的协作地带。我的本能是先把结构定清楚,这让我可能低估了“边做边长出来”的那一部分。