契约优先作为对抗LLM代理的保护:API优先回归以保持前后端对齐
Moonshot AI
作者描述了使用LLM代理进行开发时项目退化的问题:代理常常忽略前后端之间的实际契约,创建虚拟数据并导致运行时错误。解决方案是回归契约优先的方法,即以OpenAPI规范为主要工件,从中生成服务器接口和客户端,使得任何偏离契约的行为都成为编译错误。
作者在两个副项目中发现,LLM代理在开发前端和后端时经常在契约上产生分歧:前端代理将类型写为 Record<string, unknown>,使用松散对象或JSON节点,用不同字段名复制DTO,有时甚至用本地数据和toast模拟不存在的后端。这些错误都不会被编译器、linter或架构测试捕获,因为分析器看不到代码库之间的HTTP请求。解决方案是契约优先:唯一事实来源是OpenAPI规范(YAML),从中在构建时生成服务器接口(使用选项 interfaceOnly 和 skipDefaultInterface)和客户端。控制器实现生成的接口,确保签名匹配——任何偏离契约的行为都会成为编译错误。作者指出,这种方法已用于gRPC和GraphQL,现在正回归REST,因为契约的阅读者现在不是人类而是LLM代理,它不会恢复意图,而是选择猜测这一捷径。
来源: Habr — хаб ИИ —
原文
