Argot 仓库风格审查器
从 Git 历史学习隐性规范,发现新代码与仓库惯例的偏离。
- Star 数
- ★ 49
- 最近更新
- 2 个月前
- License
- MIT
- 主语言
- Rust
- FA 评分
- 78/100 · 表现良好
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Claude Code
- 费用
- 免费,无需付费服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 维护者审查 AI 生成的拉取请求,希望发现代码虽然可编译,却使用了仓库从未采用的依赖、调用方式或表达习惯。
- 不适合
- 需要保证检出缺陷、而非概率性提示的团队
- Git 历史浅、由生成或 vendored 代码构成的仓库
- 需要覆盖 12 种语言之外或未测试平台的团队
- 源码审查
- 78/100 · 表现良好
这个 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,并且只提示、不阻断。
- 维护者审查 AI 生成的拉取请求,希望发现代码虽然可编译,却使用了仓库从未采用的依赖、调用方式或表达习惯。
- 大型仓库团队准备合并新函数时,用
redundant和misplaced检查是否重复已有实现,或把逻辑放进了不合适的模块区域。 - 架构负责人需要识别新内部 import 是否逆转了仓库历史形成的层级方向。
- 测试负责人审查生产代码变更时,希望发现测试被删除、禁用、掏空,或断言被移除、恒真化和放宽。
- 希望在开发机与 CI 之间共享同一学习基线的团队,可提交
argot.toml与.argot/快照,并在后续检查中复用。 - 需要为特定仓库补充治理规则的团队,可使用 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 init 和 argot 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 仓库风格审查器 当前 | 78 · 表现良好 | 命令行工具免费 | ★ 49 | 2 个月前 | Rust | Claude Code |
| Gortex 代码智能引擎 | 73 · 存在缺口 | 命令行工具免费 | ★ 2k | 今天 | Go | Codex · Claude Code · OpenAI API · Claude API |
| Aura 代码变更审计 | 50 · 缺口较多 | 命令行工具免费 | ★ 49 | 27 天前 | Rust | Codex · Claude Code |
| Concord MCP | 75 · 表现良好 | — | ★ 1k | 3 天前 | TypeScript | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
代码明示分析在本地进行、无遥测或代码上传,并列出更新、安装及 CI 等独立联网路径,ARGOT_OFFLINE=1 可禁止更新请求,因此数据流透明度充分。自定义 Rhai 规则有无 I/O、资源上限和每文件时间限制;依赖审查与发布校验也有说明。扣分在于安装和更新仍涉及网络,且本样本未展示各操作逐项确认、敏感数据处置细节或完整回滚流程;归属信息虽见于插件清单和安全政策,但发布者身份未核验。
README、CLI 入口和技能文件对本地拟合快照、检查流程及命中仅供审阅的定位大体一致。依赖版本策略和部分依赖风险有解释,错误路径使用上下文信息并向 stderr 输出。扣分在于当前证据样本未包含完整依赖锁定与错误文案,也不足以逐一核对所有集成入口的一致性。
README 和技能明确面向开发者及编码代理,覆盖本地变更、PR、CI、首次设置和快照刷新等场景,并区分各入口的触发条件。文档也说明概率性、适用前提、离线方式及不能从干净结果推断正确性。扣分在于环境支持虽列出部分平台和语言,但样本未给出完整兼容性矩阵。
README、AGENTS.md 与技能按入门、规则、工作流和限制组织,包含命令示例、决策表和具体操作说明;MIT 许可文件完整。扣分在于版本信息主要由发布徽章、插件清单和 Cargo 清单呈现,样本未包含变更日志正文;维护者为单人且时限仅为尽力而为。
工具提供机器可读及多种呈现格式、稳定命中标识、证据线索和多类检测,并有按检测器拆分的公开指标。其增量价值是利用仓库历史给代码审阅提供线索。扣分在于收益依赖合适的 Git 历史与拟合质量,结果是概率性提示而非正确性证明,且没有固定运行时承诺。
README 将性能数字对应到不同检测器、样本量和限定条件,并明确区分已测与未测主张;演示材料也称为人工编写样例并指向收据。扣分在于本次材料没有提供收据、研究记录或基准实现本身,多个文件重复描述同一产品主张不等于独立复核。
- 将命中作为审阅线索,而不是缺陷定论;干净结果也不能证明代码正确或符合所有惯例。
- 结果质量取决于 Git 历史、支持的源码和拟合快照健康度;首次拟合及刷新应按文档审阅范围。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Install argot 0.2.129 Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/get-tmonier/argot/releases/download/v0.2.129/argot-installer.sh | sh ``` Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/get-tmonier/argot/releases/download/v0.2.129/argot-installer.ps1 | iex" ``` Install prebuilt binaries into your npm project ```sh npm install @tmonier/[email protected] ``` Download argot 0.2.129 | File | Platform | Checksum | …在 GitHub 查看 ↗ -
发布说明摘录
Install argot 0.2.128 Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/get-tmonier/argot/releases/download/v0.2.128/argot-installer.sh | sh ``` Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/get-tmonier/argot/releases/download/v0.2.128/argot-installer.ps1 | iex" ``` Install prebuilt binaries into your npm project ```sh npm install @tmonier/[email protected] ``` Download argot 0.2.128 | File | Platform | Checksum | …在 GitHub 查看 ↗ -
发布说明摘录
Install argot 0.2.127 Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/get-tmonier/argot/releases/download/v0.2.127/argot-installer.sh | sh ``` Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/get-tmonier/argot/releases/download/v0.2.127/argot-installer.ps1 | iex" ``` Install prebuilt binaries into your npm project ```sh npm install @tmonier/[email protected] ``` Download argot 0.2.127 | File | Platform | Checksum | …在 GitHub 查看 ↗
常见问题
使用 Argot 需要云账户、API 密钥或付费模型吗?
它会把源码或历史记录上传到外部服务吗?
ARGOT_OFFLINE=1 可阻止网络使用。一次无发现的检查是否代表代码正确?
CI 会自动重新学习仓库吗?
哪些情况会降低检测质量?
谢谢反馈,我们会据此改进页面。