Linejudge Vibe 项目
独立验证框架,防止 AI 编程代理自说自话
独立验证框架,防止 AI 编程代理自说自话
Linejudge 是一个开源的 AI 编程代理验证框架,核心解决一个问题:AI 编程代理说自己完成了任务,你怎么知道它真的完成了?
现有所有 AI 编程代理都是自己评分:模型说"完成了",测试套件就信了。但测试套件只能检测它已知存在的 bug,无法发现代理自己引入的新问题。Linejudge 将"运动员"和"裁判"的角色彻底分离:代理负责写代码,验证器独立运行,不依赖代理的自我报告。
Linejudge 的工作流程是:提供一个 goal.md 目标文件(包含任务描述和声明式验证规则,如"运行 pytest"、"某个文件必须存在"、"diff 不能超过 5 个文件"),框架在隔离的 Git worktree 中执行任务,运行独立的验证器检查真实结果,最终由人类审阅完整证据链(提示词、代理报告、实际 diff、验证 verdict)后做出裁决。
关键设计原则:
独立验证而非信任代理报告:即使代理的 REPORT.md 声称成功,验证器检查不通过就是失败。实测中 Linejudge 运行 8 个 sqlite-utils GitHub Issue,7 个代理报告成功,但深入审阅 diff 后发现其中 2 个 patch 实际上并没有修对 bug。
零运行时依赖:纯 Python 标准库实现,每个源文件不超过 300 行,整个引擎一个下午可以读完,不需要安装任何第三方包。
写操作通过 Git worktree 隔离:代理的所有代码修改都在独立的未合并分支上进行,不会污染主工作目录,人类在审阅通过后才决定是否合并。
blast-radius guard:验证器运行前后对指定目录做 git status 快照,任何意外的文件变更都会触发失败,防止代理偷偷修改不该碰的文件。
学习积累机制:每次运行后用一次无工具的 LLM 调用将结果提炼成标记化 lesson 文件,供后续运行通过标签检索相关经验。
本地审阅面板:运行完成后在本地 localhost 打开 Web 面板,查看完整证据链并给出 approve/reject 决定。
Linejudge v0.2.0 支持 Claude Code headless(claude -p)直接调用,adapter 接口设计为 agent-agnostic,可接入任何提供 run(prompt, cwd, timeout) -> RunResult 接口的代理后端。
评论与建议
登录 后参与评论或提建议