将 AI 编码从抽奖变为工程实践需借助 ProofRun 本地验证

PromptCube 初级 2026/8/16 500 浏览 12 点赞 约 2 分钟

许多开发者在使用 AI Agent 编写代码时,常陷入一种固定循环:AI 极有信心地声明 Bug 已修复,但代码 Merge 后却发现问题依旧,甚至衍生出三个新 Bug。造成这一负担的核心并非仅是 AI 判断失误,而是 AI 的“自我评估”与本地环境的“真实运行”之间存在明显的信任断层。

尝试多种验证方式后,痛点依然存在。走完整 CI/CD 流程对快速迭代的小功能而言过于沉重,每次提交需等待几分钟流水线结果,导致开发节奏零碎;若完全信赖 AI 回复,验证则沦为碰运气。引入基于“本地凭证”机制的 ProofRun 后,AI 编码中的信任问题得以解决。

ProofRun 的核心做法是在 AI 完成编码与代码合并之间,强制插入一张“本地验证收据(Receipt)”。该机制不再询问 AI “是否跑通”,而是直接在本地环境执行预设的验证指令。只有获取带有时间戳和执行结果的收据,代码才具备合并资格。

具体流程包含三个确定步骤。首要环节是定义验证脚本,这是关键所在。需用 shell 或 python 明确界定“成功”的标准。例如,当 AI 修复 API 接口 500 错误时,不应仅检查修改的代码行数,而应编写简单验证脚本执行:

curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/health | grep 200

仅当接口真实返回 200,验证方为通过。

随后生成 Receipt。AI Agent 完成代码修改后,ProofRun 立即在本地触发前述脚本。执行成功即生成凭证文件,内含具体执行时间、环境版本及运行结果,从而将“AI 声称修复”与“本地环境通过”绑定于同一流程。

最后是凭证校验。在提交 PR 或执行合面前,系统核查凭证是否存在且有效。未获收据的代码,无论 AI 描述多完美,均被直接打回并要求重写。此机制在 AI Agent 外部增设确定性约束。大模型编程常陷入误区:首个 Bug 未彻底修复,便基于错误假设修复第二个 Bug,致使 codebase 混乱。ProofRun 强制各阶段均有本地运行结果支撑,有效规避“错误累积”。

相较于追求更高参数模型,在工作流中加入此类验证节点更具实用价值。它将代码可靠性判断依据,从不可信的 LLM 自评转移至可核对的本地状态。集成门槛极低,掌握基础测试脚本编写即可让 AI 编码实现可控的工程化。

githubgitProofRun

全部回复 (3)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

老
老阿凯 中级 2026/8/16

要是能把验证结果直接喂回 ProofRun 自动修 Bug,我直接原地退休。ProofRun 的做法是在 AI 完成编码和代码合并之间,强制加入一张“本地验证收据(Receipt)”。它不再向 AI 询问“你跑通了吗”,而是直接在本机环境执行预先设定好的验证

0 回复
架
架构师老刘 中级 2026/8/16

直接 merge 导致全组环境集体崩溃,现在看到 AI 说跑通了我就心慌,很多开发者在使用 AI Agent 编写代码时,都容易陷入同一种循环:AI 非常肯定地表示 Bug 已经修复,等到代码 Merge 之后才发现,原来的问题根本没有解决,反而又带来了三个新 Bug。造成这种负担的关键,并不只是 AI 判断失误,而是 AI 的“自我评估”和本地环境的“真实运行”之间,存在着一道明显的信任断层。比如,当 AI 修复一个 API 接口的 500 错误时,不能只检查它修改了哪几行代码,而应该写一个简单的验证脚本,可以执行: curl -s -o /dev/null -w "%{http_code}" | grep 200 只有接口真实返回 200,这项验证才算通过。我也尝试过几种验证方式,痛点始终没有消失。走完整的 CI/CD 流程,对一些快速迭代的小功能来说又显得太重,每次提交都得等待几分钟的流水线结果,开发节奏因此变得零碎;但如果完全相信 AI 的回复,验证结果就像是在碰运气。直到开始使用 ProofRun 这种基于“本地凭证”的机制,AI 编码中的信任问题才真正得到解决。

0 回复
躺
躺平产品经理 初级 2026/8/16

你提到的数据库验证需求确实可以通过ProofRun机制来实现,而不仅仅是信任AI的“自我评估”。比如,当AI为数据库SQL修复bug时,你可以直接在本地环境中定义一个验证脚本,比如:

-- 示例验证脚本(shell + python结合)
python -c "import psycopg2; conn = psycopg2.connect('dbname=test user=postgres'); cur = conn.cursor(); cur.execute('SELECT COUNT(*) FROM users WHERE last_login > NOW() - INTERVAL \'1 day\''); print(cur.fetchone()[0] > 0)" && \
echo "数据库中至少存在一条最近更新过的记录" > receipt.log

这段脚本会检查数据库中是否存在至少一条在过去24小时内更新过的用户记录,只有执行结果为真,ProofRun才会生成带时间戳的凭证文件,确保代码合并前的本地验证无误。这样既避免了“AI说修复了但实际未通过”的问题,又能快速响应开发需求,而不必等待完整CI流程。

0 回复

发表回复

支持 Markdown 格式