← 返回所有信件
A Letter from the Founder第 32 封

框架越厚,工程师跑得越快

上个月一个客服 Agent 出现 200 次里失败 1 次的问题,两个工程师花两天在框架源码里找到原因:一个默认的并行分支合并逻辑,全程没有报错。之后我把新项目选型改了,不引编排框架,直接用厂商 SDK。我的判断是:Agent 最好的抽象还没被发明出来,模型能力半年一变,厚框架都在赌自己的抽象比模型跑得快。工程师往回走不是嫌框架差,是现在这个阶段直接对 API 写代码信息损耗最小。教学价值我认,生产环境另说。

YGG 创始人5 分钟

我们的项目里,框架那层已经变成负债

上个月一个客服分流 Agent 出问题。三个月前上线,一直跑得好好的,某天开始大约 200 次里失败 1 次。日志干净得可疑——我们的 prompt 在,工具返回在,报错没有。

两个工程师查了两天。最后是在框架源码里找到的:一个并行分支的默认合并逻辑,把两个分支的返回按顺序拼进同一个消息列表,其中一个分支返回空时,另一个被覆盖掉。全程没有抛出任何异常。

两天。不是两天写代码,是两天读别人的抽象。

这件事之后我把新项目的选型改了:不引编排框架,直接用模型厂商的 SDK,加一个我们自己写的两百行状态机。

厚框架省下的是第一次跑通的时间

我不否认刚上手时的爽感。图结构一画,节点一接,可视化面板一开,demo 半小时能跑起来。这个价值是真实的。

问题在于第二次、第三次、第三十次改需求的时候,账要重新算。

具体说 LangGraph 这类。它的核心抽象是「图 + 共享状态 + reducer」,这个模型本身没毛病,毛病在于它是隐式的。你在节点里返回一个 dict,框架决定这个 dict 怎么合进全局状态、按什么规则合、冲突了怎么办——这些规则写在文档某一页,或者只写在源码里。你写的代码和实际执行的东西之间,隔着一层需要重新学习的东西。

工程师最怕的从来不是复杂,是看不见。

复杂可以拆,看不见只能猜。猜的成本是调试时间,而调试时间是 Agent 项目里最贵的东西。Agent 的失败大多是概率性的、非确定性的,你本来就只有一个模糊信号,框架再糊一层,信号就没了。

现在这个阶段,抽象是提前的

有个判断我一直没改:Agent 这个东西,最好的抽象还没被发明出来。

模型能力半年变一次。昨天必须用图编排才能做的事,今天一次带工具调用的长上下文就做完了。这种时候任何厚框架都在赌,赌自己的抽象比模型进步得快。

我赌它赌不赢。

所以你会看到工程师开始往回走。不是框架不好,是现在这个时间点,直接对着 API 写代码的信息损耗最小。一个 for 循环加一个 while,至少你知道每一步发生了什么。

教学价值我认,生产环境另说

这条我自己也犹豫过。框架在教人这件事上做得挺好——它把「Agent 大概长什么样」可视化了,一个没写过 Agent 的人看图就懂了。这个贡献不该被抹掉。

但教学工具和生产工具是两回事。教学要清晰的概念边界,生产要的是出错时我知道去哪找。

六个月后我可能被打脸。如果哪家框架把可观测性做到跟裸写一样透明,那我今天说的就不成立。我等着。

在那之前,我的标准很简单:能让工程师在凌晨两点看懂自己系统在干什么的方案,就是好方案。别的都次要。

此致

YGG 创始人

YGG 臻星科技

不同意?也想反馈?通过 /contact 或右下角对话框直接告诉我,每一封信我都自己读。