lean-agent Vibe 项目
代码隐含约束自动发现与修复工具
lean-agent 是一款用于自动发现代码中未被显式验证的隐含假设,并帮助开发者逐步修复这些潜在缺陷的命令行工具。它通过Invariant Enforcement Score(IES,不变式执行分数)来量化每个隐含约束被代码遵守的程度,迭代运行并逐步提升分数,直到分数进入平台期不再下降,此时工具保留一个经过修复的代码分支供开发者审阅。
核心功能
lean-agent 的核心能力在于找到代码做了但没有说清楚的承诺。传统测试验证的是「给定这个输入,代码会产生这个输出」;不变式检查验证的是「代码本身的约束是否被真正强制执行」。这两者之间的差异正是最难调试的 bug 的根源:系统继续运行,损害已经造成,错误信息却指向完全不同的方向。
技术实现
lean-agent 的工作流程分为三个阶段。首先是静态分析阶段:工具解析目标代码,识别所有未被类型系统或运行时断言显式约束的隐含假设,生成初始假设集合。其次是迭代验证阶段:对每一个识别出的假设,工具生成候选修复方案(通常是增加类型注解或插入防御性检查),然后运行项目自带的测试套件;失败的迭代被丢弃,只有通过全部测试的修复方案被保留。最后是评分阶段:每个通过验证的修复获得一个 IES 分数,分数代表代码通过多少比例的隐含约束验证;工具持续迭代直到 IES 分数进入平台期,此时生成一个包含所有修复的独立 Git 分支供开发者审查。
典型案例
以一个简单的账本转账方法为例:原始代码直接操作字典,在 to_id 不存在时会在 Alice 已经扣款之后才抛出 KeyError,导致资金从系统中凭空消失。lean-agent 修复后的代码引入了 AccountId 和 PositiveAmount 类型包装器,使无效状态在编译阶段就不可表达,而不是等到运行时才暴露问题。
快速上手
第一步,安装工具:运行 uv pip install lean-agent 完成安装,Python 环境需支持 uv 包管理工具。
第二步,自动检查:进入目标代码仓库,运行 lean-agent enforce ,工具将自动扫描并生成修复分支。
第三步,审阅修复:工具生成的每个修复分支对应一个 IES 提升,开发者逐一审阅代码变更是否合理。
第四步,设置 CI 门控:使用 lean-agent score --min-ies 0.80 将最低 IES 分数设为 0.80,不达标的代码无法合并,从源头杜绝新的隐含假设引入代码库。
适用人群
使用强类型编程语言的开发团队可以通过 lean-agent 在代码审查前主动发现约束漏洞;关注代码逻辑可靠性的工程师可以用它在 CI 流水线中自动验证代码的不变式是否真正被强制执行;代码质量审计场景下,IES 分数可以作为代码可维护性的量化参考指标。
评论与建议
登录 后参与评论或提建议