Argot 仓库风格审查器

从 Git 历史学习隐性规范,发现新代码与仓库惯例的偏离。

Star 数
★ 48
最近更新
14 天前
License
MIT
主语言
Rust

30 秒速览

可在哪里用
通用 · 跨平台Claude Code
开始前需要
Gitusable repository historysupported source languageShell / 命令行本地文件系统
典型场景
维护者审查 AI 生成的拉取请求,希望发现代码虽然可编译,却使用了仓库从未采用的依赖、调用方式或表达习惯。
主要局限
需要质量合适且足够深入的 Git 历史;浅克隆、生成代码、供应商代码或不适合的历史可能无法形成有用模型。

这个 Agent 能做什么,适合哪些场景?

Argot 是一个 MIT 许可的 Rust 静态二进制工具,依据仓库自身的 Git 历史建立统计基线,再审查指定变更集。它通过 CLI 提供 audit、init、check 和 status 等命令,也可接入技能工作流、只读 MCP 工具、Claude Code 插件、pre-commit 与 GitHub Actions。检测范围包括陌生依赖与调用、罕见代码模式、重复函数、模块错放、反向分层依赖、测试削弱以及规则篡改。每项发现都附带仓库证据,结果定位为人工审查提示,而非缺陷证明或正确性判定。分析、嵌入模型推理和拟合均可在本地完成,不需要账户或云服务,但有效性依赖足够且适合分析的历史记录。

首次评估可在 Git 仓库中运行 argot audit:它会在临时 worktree 中拟合历史基线,并检查从基线到 HEAD 保留下来的净差异,不修改当前工作树。正式采用时,argot init 生成 argot.toml.argot/ 拟合快照,团队审阅并提交这些文件后,再用 argot check 对目标变更集评分;argot status 会在已接受的源码、函数或目录布局发生实质变化时建议刷新快照。内置规则会产生 voice、semantic、architecture、integrity 和 governance 类发现;团队还可以在 .argot/rules/ 下用 TOML 清单和沙箱化 Rhai 脚本添加规则。CLI 提供完整检查,MCP 提供只读上下文、代码块或完整变更集工具,pre-commit 可检查已暂存文件,GitHub Action 可检查配置的引用或范围。Claude Code 插件的可选写入前钩子只检查 Write、Edit 或 MultiEdit 是否引入陌生 import,并且只提示、不阻断。

  1. 维护者审查 AI 生成的拉取请求,希望发现代码虽然可编译,却使用了仓库从未采用的依赖、调用方式或表达习惯。
  2. 大型仓库团队准备合并新函数时,用 redundantmisplaced 检查是否重复已有实现,或把逻辑放进了不合适的模块区域。
  3. 架构负责人需要识别新内部 import 是否逆转了仓库历史形成的层级方向。
  4. 测试负责人审查生产代码变更时,希望发现测试被删除、禁用、掏空,或断言被移除、恒真化和放宽。
  5. 希望在开发机与 CI 之间共享同一学习基线的团队,可提交 argot.toml.argot/ 快照,并在后续检查中复用。
  6. 需要为特定仓库补充治理规则的团队,可使用 TOML 与沙箱化 Rhai 脚本定义规则,并检测锁定规则是否被削弱。

如何安装或部署这个 Agent?

macOS 或 Linux:curl --proto '=https' --tlsv1.2 -LsSf https://github.com/get-tmonier/argot/releases/latest/download/argot-installer.sh | sh。Windows:powershell -c "irm https://github.com/get-tmonier/argot/releases/latest/download/argot-installer.ps1 | iex"。也可通过 npm 安装:npm install -g @tmonier/argot。发布版测试目标为 macOS arm64/x64、Linux x64/arm64 和 Windows x64。无需账户或 API 凭据;分析可完全离线运行。首次使用需要进入一个具有可用 Git 历史且包含受支持源码的仓库。

如何使用这个 Agent?

快速试用:cd your-repository,然后运行 argot audit。若结果有参考价值,运行 argot initargot check;审阅并提交生成的 argot.toml.argot/ 快照,并先将这次快照变更合入未来 PR 的目标分支,再单独添加 CI 工作流。CI 仅读取基础分支中的快照,不执行拟合。后续可用 argot status 判断是否需要在本地重新拟合并提交;需要禁止网络访问时设置 ARGOT_OFFLINE=1,分析能力不会因此减少。

这个 Agent 有哪些优点和局限?

优点
  • 基线来自目标仓库的真实历史,而不是通用风格规则或第二个生成式模型,并为每项发现提供仓库证据。
  • 核心分析完全在本地运行,嵌入模型编译进二进制;无需账户、云服务或上传源码,也没有默认遥测。
  • 一个工具覆盖代码习惯、语义重复、模块放置、架构分层、测试完整性和规则治理,并支持仓库自定义 Rhai 规则。
  • 提供 CLI、MCP、Claude Code、pre-commit 和 GitHub Actions 等多种运行路径,可让本地工具与 CI 读取同一已提交快照。
  • 公开了各检测器的命中率、语料范围和噪声数据,并明确区分不同检测任务的分母与限制。
局限
  • 需要质量合适且足够深入的 Git 历史;浅克隆、生成代码、供应商代码或不适合的历史可能无法形成有用模型。
  • 初次采用需要本地拟合、审阅并提交通常为数 MB 到数十 MB 的 .argot/ 快照,而且快照 PR 必须先于 CI 工作流 PR 合并。
  • 结果是概率性审查提示,不能证明代码有错;完全由熟悉词汇写成的错误、被文本掩盖的问题或选定范围外的代码尤其可能漏检。
  • 不同入口覆盖范围不一致:Claude Code 写入前钩子仅检查陌生 import,MCP 依赖客户端主动选择工具,GitHub Action 默认也不会因命中而失败。
  • 公开测量是按检测器划分的结果,尚无产品整体准确率、组合简报效果或普通仓库运行时间的公开测量承诺。
  • 只提供 12 种语言适配器和五个经过测试的发布目标,其他语言与平台没有得到来源材料的支持。

这个 Agent 与同类方案有什么区别?

类型检查器主要回答代码能否通过类型约束,而 Argot 关注变更是否符合该仓库历史形成的代码语言、布局和依赖方向。与把代码交给第二个 LLM 评判不同,它使用本地统计、图结构、脚本和嵌入证据生成提示,不由生成式或观点形成模型决定结论;相应地,它也不是通用正确性验证器。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 Star 最近更新 主语言 完整支持的平台
Argot 仓库风格审查器 当前 93 · 表现优秀 ★ 48 14 天前 Rust Claude Code
Gortex 代码智能引擎 78 · 表现良好 ★ 1.6k 7 天前 Go Codex · Claude Code · OpenAI API · Claude API
Aura 代码变更审计 70 · 存在缺口 ★ 47 5 天前 Rust Codex · Claude Code
Happier 82 · 表现良好 ★ 1.7k 今天 TypeScript Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
表现优秀
93/ 100 五分制 4.7 / 5
信任安全 28/29
可靠稳定 11/14
适用触发 18/18
规范维护 16/18
有效结果 12/13
证据核验 8/8
查看各维度的扣分理由
信任安全28 / 29 · 4.8/5

证据显示分析默认在本地完成、无遥测或源码上传,分析模型嵌入二进制,并提供 ARGOT_OFFLINE=1;Git 操作移除了网络传输,脚本规则受到 I/O、时间和资源限制,CI 权限也被显式声明。检查结果默认仅供建议,拟合、CI、门禁和更新均需明确配置或调用。依赖审计、校验和、构建来源证明、禁止自有代码使用 unsafe、第三方模型及许可证归属均有具体说明。未给满分的 rollback:临时工作树和可提交快照提供了良好恢复路径,但材料没有完整说明自更新失败或版本回退机制。

可靠稳定11 / 14 · 3.9/5

工作流覆盖 Linux、macOS ARM64、Windows、正常发现、SARIF、缺失快照、缺失发布资产及校验和错误,并验证具体失败消息,因此失败反馈证据充分。静态二进制、内嵌模型和固定 Rust 工具链降低了可用性风险,但安装与 Action 仍依赖发布下载和外部托管环境。self_consistency 扣分是因为 README 和 SECURITY.md 多处称模型始终编译进二进制,SECURITY.md 又称缺失语义模型可能首次下载,形成未解释的合同矛盾。

适用触发18 / 18 · 5.0/5

材料明确区分 CLI、技能、MCP、Claude Code 插件、pre-commit 和 GitHub Action 的受众、前置条件、覆盖范围与触发方式;还列出十二种语言、五个发布目标和不适用的历史条件。能力边界尤其清楚:它是概率性审查提示而非正确性证明,自动钩子和 CI 默认不阻断,语义工具需要已拟合仓库。现有证据足以支持全部适应性 criterion 满分。

规范维护16 / 18 · 4.4/5

README 具有清晰的入门、功能、运行方式、证据、限制、隐私、贡献和归属结构,安装与两阶段 CI 引导具体;MIT 正文、NOTICE 归属说明、安全联系渠道和单人维护责任都明确。限制文档与支持政策详尽。扣分项是 naming_stability:名称目前一致,但 0.2.x 滚动发布及仅支持最新版不足以证明长期稳定;examples_and_faq 提供命令和规则示例但没有可见 FAQ;versioning_changelog 仅引用发布记录,所给材料未包含实际 changelog 内容。

有效结果12 / 13 · 4.6/5

输出可用于终端、JSON、GitHub 注释和 SARIF,工作流还检查 SARIF 必填字段、非阻断默认值及机器可读状态。它在传统类型检查之外提供仓库历史驱动的风格、重复、放置、分层、测试完整性和治理信号,边际价值明确,并公开各检测器命中率与噪声率。cost_benefit 扣分是因为项目明确不承诺固定运行时间,拟合快照可能达到数十 MB,且尚未公开普通仓库耗时或组合结果的完整测量。

证据核验8 / 8 · 5.0/5

主要主张关联到批准的 claim manifest、研究证据、固定语料、证明回执和再生成程序;工作流、Cargo 配置、README 与 SECURITY.md 对本地执行、依赖边界、输出契约和平台支持形成多源佐证。材料明确区分作者制作的演示与野外语料、检测器指标与产品整体准确率、发现与缺陷,以及测量结果与尚未测量的事项,因此事实与推断分隔充分。

风险与缓解建议
  • README 与 SECURITY.md 对语义模型是否可能首次下载存在矛盾;在依赖离线保证前应核实实际发布版本的行为。
  • 安装命令采用 curl|sh 或 irm|iex,并且示例 Action 跟随 main 或 latest;高保障环境应固定版本并在执行前验证发布校验和及来源证明。
  • 该工具是概率性审查辅助,不是正确性或安全性证明;浅历史、生成代码、供应商代码、不合适的拟合范围及完全使用熟悉词汇的错误都会降低效果。
  • 只有最新版受支持,维护由单人以尽力而为方式承担;采用方应评估升级频率、维护连续性和回退需求。
  • 公开指标是按检测器和不同语料计算的,不能合并解释为产品整体准确率或所有仓库上的预期表现。
证据充分度: 评估于 2026年9月24日 审查版本 254a7ef11b58
查看完整评分方法 →

常见问题

使用 Argot 需要云账户、API 密钥或付费模型吗?
不需要。个人本地核心采用 MIT 许可证,无需账户或云服务;嵌入模型已编译进二进制,分析可以完全离线完成。
它会把源码或历史记录上传到外部服务吗?
不会为分析上传源码,且没有默认遥测。版本检查、更新、发布下载或显式配置的评审、更新与 CI 集成可能访问网络;设置 ARGOT_OFFLINE=1 可阻止网络使用。
一次无发现的检查是否代表代码正确?
不是。无发现不证明变更正确、完整或完全符合惯例;Argot 的输出应作为人工调查线索,而不是缺陷判决。
CI 会自动重新学习仓库吗?
不会。CI 仅读取基础分支中已提交的拟合快照;拟合和刷新必须在本地显式执行,并将结果提交。
哪些情况会降低检测质量?
浅层、生成、供应商或其他不适合的历史可能导致模型无效。使用熟悉词汇形成的错误、掩藏在文本中的问题,以及不在所选变更范围内的代码也较难发现。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents