Vet 代码变更验证器
检查代码变更与编码代理行为,找出值得开发者关注的问题。
按维度查看评分与理由
README 说明代码库快照、差异、可选对话记录会被送往用户选择的推理提供商,并声称不收集数据;GitHub Action 示例将权限限制为 contents: read 和 pull-requests: write,且明确警告 --history-loader 会以当前用户身份执行 shell 命令。扣分原因是缺少数据删减、提供商留存、密钥保护和传输边界的完整说明;多数依赖未锁定,Action 与安装脚本引用 main 或可变标签;主动代理技能、PR 评论、远程模型注册表缓存等外部效果没有统一的逐次确认或撤销机制。作者、仓库和许可证归属清楚,但未提供更具体的维护者身份。
README、包元数据和发布工作流在产品名称、Python 要求、入口点、许可证与发布方式上基本一致,并列出成功、运行错误、配置错误和发现问题的退出码。扣分原因是没有展示具体错误消息、诊断建议或降级行为;大量运行时依赖缺少上界或精确锁定,模型提供商、订阅式代理工具和远程注册表也会形成可用性依赖。
开发者受众和终端、代理技能、CI、PR 审查等场景定义充分,并支持多提供商、自定义 OpenAI 兼容端点、模型配置、团队配置档和自定义问题指南。扣分原因是能力边界主要通过概述表达,未清楚列出不支持的代码库、语言或审查类型;代理技能会“主动”运行,但未给出精确触发和跳过规则;环境说明覆盖 Python 版本及多种安装方式,却未说明操作系统、Git 状态、网络和资源约束的完整兼容范围。
README 结构清晰,提供 CLI、技能、CI、配置、输出和社区支持说明;安装路径和手动安装步骤完整。AGPL-3.0-only 在 README、pyproject 和 LICENSE 中一致且有完整许可证文本。扣分原因是发行包名 verify-everything、命令 vet 和仓库名 vet 并存,虽可理解但会增加命名辨识成本;示例丰富但没有真正的 FAQ 或系统化故障排除;除 history-loader 安全提示和 Beta 分类外,已知限制很少;存在语义化版本和标签发布流程,但所给材料没有独立变更日志;维护归于 Imbue 并提供 Issues/Discord,却没有具体维护者、响应预期或支持政策。
文本、JSON 和 GitHub 输出以及区分明确的退出码适合终端和 CI 消费,目标与流水线描述表明其相对普通测试和 lint 的潜在增量价值。扣分原因是没有给出 JSON 模式、样例发现结构、严重度语义或误报处理流程;“发现测试和 lint 遗漏的问题”等效用主张未附基准、案例数据或评估结果;软件本身免费,但推理 API 成本、令牌消耗、运行时间和建议模型规模均未量化。
源材料把主要主张连接到具体配置、CLI 命令、退出码、包入口、依赖和发布工作流,README 中的许可证、版本和发布描述也得到 LICENSE、pyproject 与工作流的交叉支持。扣分原因是核心质量主张、无数据收集主张以及过滤和去重效果主要来自 README 自述,所给材料没有实现代码、测试或独立证据支撑;营销性结论与可直接核对的事实虽大体可区分,但没有显式标注推断、假设或证据等级。
- 安装技能的推荐命令会通过网络下载并立即执行 main 分支上的 shell 脚本;使用前应固定到审查过的提交并检查脚本内容。
- --history-loader 会以当前用户权限执行任意 shell 命令;共享配置档必须视为可执行代码审查。
- 代码、差异和对话记录可能发送给外部模型提供商;在用于私有代码库前,应核实提供商的数据保留政策并删除秘密信息。
- GitHub Action 示例引用 imbue-ai/vet@main,发布工作流也使用可变的 Action 标签;供应链敏感环境应固定完整提交摘要。
- 多数 Python 依赖没有精确锁定,且远程模型注册表可单独更新;生产使用应建立锁文件、来源验证和更新审查流程。
- AGPL-3.0-only 对修改版网络服务有源代码提供义务;集成或托管前应进行许可证合规评估。
这个 Agent 能做什么,适合哪些场景?
Vet 是一个独立的验证工具,用于审查代码变更以及编码代理的行为。它可以读取仓库快照和差异,并可加入用户目标与代理对话,以同时检查实现正确性和目标遵循情况。用户可以从终端运行它、将其安装为编码代理技能,或通过可复用的 GitHub Action 审查拉取请求。Vet 调用配置的模型执行检查,再过滤并去重结果,最终以 text、json 或 github 格式输出问题列表。它支持 Anthropic、OpenAI、Gemini 内置模型,以及通过 OpenAI 兼容端点配置的自定义模型;请求直接发送给推理提供商。适合希望在本地开发或 CI 中增加模型驱动审查,同时自行掌控模型、密钥和配置的团队。
运行时,Vet 会获取当前仓库的快照和 diff;用户还可以提供目标、通过 --base-commit 指定比较基准,并加入代理对话。它随后运行模型检查,审查代码正确性、代理是否遵循目标等问题,再对发现项进行过滤和去重。CLI 使用 vet "<目标>" 启动,可通过 --agentic 和 --agent-harness claude、codex 或 opencode 改用现有编码代理订阅,也可通过模型 API 运行。模型可由 .vet/models.json、用户级 models.json、内置注册表或 vet --update-models 获取的远程注册表定义。GitHub Action 会处理 Python 环境、Vet 安装、合并基准计算,并把审查结果发布到拉取请求。输出支持 text、json 和 github;退出码 0 表示未发现问题,1 表示运行时错误,2 表示用法或配置错误,10 表示发现问题。
- 使用编码代理完成改动的开发者,在提交前运行 Vet,对照原始请求检查代理是否偏离目标,并检查新增代码问题。
- 维护大型仓库的团队,通过 --base-commit main 审查一次重构相对于主分支产生的实际差异。
- 希望自动审查非草稿拉取请求的 GitHub 项目,通过可复用 Action 将发现项直接发布到 PR。
- 已有 Claude Code、Codex 或 OpenCode 订阅的个人开发者,通过 --agentic 使用现有订阅,而不直接配置模型 API。
- 需要固定审查标准的团队,通过 TOML 配置档统一模型、问题代码、输出格式和阈值,并用 guides.toml 定制检查指南。
- 使用私有或第三方模型网关的团队,通过 OpenAI 兼容端点在 models.json 中定义提供商、模型 ID、上下文窗口和令牌上限。
这个 Agent 有哪些优点和局限?
- 不仅检查代码差异,还能结合用户目标和代理对话评估编码代理是否按要求行动。
- 同一工具覆盖终端、代理技能和 GitHub Actions,可用于本地反馈和 PR 审查。
- 支持内置模型、自定义 OpenAI 兼容端点和远程模型注册表,模型及提供商选择较灵活。
- 支持 text、json 和 github 输出,并以独立退出码区分发现问题、运行时错误和配置错误,便于 CI 集成。
- 命名配置档和 guides.toml 允许团队统一审查参数,并针对具体问题代码调整检查规则。
- 无需 Vet 账户;项目声明不收取费用或采集数据,推理请求直接发往用户选择的提供商。
- 审查依赖模型推理;API 模式需要相应提供商密钥,并可能产生提供商侧费用。
- 采用 AGPL-3.0-only 许可证,计划修改、分发或提供网络服务的组织需要评估其许可证义务。
- --history-loader 会以当前用户身份执行指定的 shell 命令,使用共享配置预设前必须人工审查命令。
- GitHub Action 默认使用 Anthropic 模型,因此示例部署需要配置 ANTHROPIC_API_KEY,并授予写入 PR 评论所需权限。
- 远程模型注册表必须先通过 vet --update-models 下载并缓存,之后才会出现在 vet --list-models 中。
- 来源未给出支持的 Python 版本、各模型的审查准确率或大型仓库的性能数据,团队需要自行验证运行环境和效果。
如何安装或部署这个 Agent?
CLI 可任选一种方式安装:
pip install verify-everything或:
pipx install verify-everything或:
uv tool install verify-everything若要安装编码代理技能,在目标仓库中运行以下命令,并按提示选择项目级或用户级安装:
curl -fsSL https://raw.githubusercontent.com/imbue-ai/vet/main/install-skill.sh | bash项目级安装会写入仓库根目录下的 .agents/skills/vet/、.opencode/skills/vet/、.claude/skills/vet/ 和 .codex/skills/vet/;用户级安装则写入相应的用户技能目录。使用模型 API 时需在环境中提供所选推理提供商的 API 密钥;GitHub Action 示例使用 ANTHROPIC_API_KEY 仓库密钥。
如何使用这个 Agent?
进入要检查的 Git 仓库后,首次可运行:
vet "Implement X without breaking Y"要相对于主分支检查:
vet "Refactor storage layer" --base-commit main要使用受支持的编码代理运行环境和现有订阅:
vet "Implement X without breaking Y" --agentic --agent-harness claude--agent-harness 支持 claude、codex 和 opencode。自定义 OpenAI 兼容模型时,在 .vet/models.json 或用户级 models.json 中配置提供商和模型,然后运行:
vet "Harden error handling" --model gpt-5.2可用 vet --update-models 下载并缓存远程模型定义。团队还可在 .vet/configs.toml 中保存命名配置档,在 .vet/guides.toml 中为有效问题代码添加 prefix、suffix 或互斥的 replace 指南。自动化场景可创建调用 imbue-ai/vet@main 的 GitHub Actions 工作流,并授予 contents: read 和 pull-requests: write 权限。