开发者 Kalpit Rathore 发布了一款名为 SDKProof 的开源工具,用于检验 AI 编程代理写出的代码是否匹配库的当前 API,而非模型记忆中的旧版本。原理是把模型生成的答案放进装有真实依赖的项目里跑
tsc --noEmit,编译通过即算过关,由编译器而非另一个 LLM 来裁决。作者在给 Stripe SDK 加入测试时发现异常:首轮 15 个任务全部通过,但其中 4 个答案文件是零字节空文件,空文件编译自然零报错,等于把「模型没产出」误判成「答对了」。修复后重测,Claude 对 150 个 Stripe 任务拒绝了 62 个(41.3%),而对照组 Zod 的 100 个任务零拒绝。拒绝呈明显梯度:创建 PaymentIntent、批量读取客户、使用非默认 API key 等操作几乎全拒,退款、创建客户、验证 webhook 则基本正常。作者尝试在提示词中补充账户归属上下文,A/B 对比显示拒绝率毫无变化,触发点在于操作本身的形态而非语境缺失。
作者还自曝了测量脚本的同类 bug:未加载 .env 导致全部请求认证失败,而错误请求被计为「未拒绝」,30 次失败被渲染成漂亮的零。修复后脚本将错误请求排除出分母,且失败过半时拒绝输出百分比。Stripe 现已以 100/100 分数上线榜单,页面在分数旁注明仅覆盖 15 个任务中的 10 个,并公开了拒绝率明细。三个专门用于捕捉版本漂移的任务全部通过,确认模型写的是当前 SDK 期望的 API 形态。
工具与完整数据已开源,作者欢迎复现不同结果的人反馈。
GitHub
#GitHub #开源 #SDKProof #TypeScript #AI编程 #Stripe #Claude #LLM测试
@GitHubTrendingHub
