SuperAPI AI 工具集

diffgate

DiffGate 是一个用于 AI 生成代码审查的确定性护栏,通过对变更的 diff 行进行 AST 级别的安全检查,标记 SQL 注入、SSRF、XXE、硬编码密钥和过度抽象等问题,并将每条变更行按影响程度评为绿/黄/橙三级,帮助审查者聚焦关键问题。它可在编码代理(MCP)、编辑器(VS Code)和 CLI/CI 中运行。

访问官网

工具介绍

DiffGate 是一个确定性护栏,由你的编码代理在代码写入磁盘之前自行运行。它针对 AI 生成的 diff 提供确定性的检查,只对变更的行进行评分,并按影响程度分为绿色(可合并)、黄色(需浏览)、橙色(需验证)三级,让审查者把注意力放在真正重要的地方。

主要能力:

  • Diff 范围限定:只报告变更行,对照已提交基线,不产生整文件噪音,不重新讨论未改动的代码。
  • 分级分诊:绿色合并、黄色浏览、橙色门控,而非扁平列表。
  • 按需运行测试:橙色变更时运行你的 testCommand 并显示真实退出码和输出,绿黄则即时通过。
  • 有条件阻断:跨语言注入发现单独为建议性,只有当可选代码图证明接收器可从不可信入口点(HTTP/事件处理器)到达时才升级为阻断。
  • 变更影响感知:借助可选代码图携带跨文件影响范围(调用者数量、建议审查者、未测试调用点),无人调用的导出符号会被降级。
  • 速度快:在变更行上毫秒级完成审查,可置于代理和编辑器内循环。
  • 可证明低噪音:diffgate bench 运行版本化语料,在干净变更上实现 100% 精确率 / 0 误阻断。

安全规则覆盖:通过 @babel/parser(JS/TS)和 tree-sitter(Python、PHP、Go、Ruby、Java、C#、Kotlin,经 WASM)实现真实 AST 分析,精确匹配规则,避免在注释或字符串中误报,检测导出签名变更,并对 SQL 注入进行接收器定位、参数感知和净化器感知。其他语言使用注释感知的模式规则作为确定性底线,覆盖密钥、破坏性/模式变更、认证/加密、动态执行/ shell 调用、原始查询和网络调用。

使用方式:

  1. 在编码代理中(通过 MCP):代理在代码写入磁盘前自检生成代码,返回结构化发现(零 LLM token),并展示其修正内容(原始 + 修复 + 原因)。也可在 Claude Desktop 中一键安装 diffgate.mcpb。
  2. 在编辑器中(VS Code / Cursor):在变更行上显示内联波浪线、悬停卡片(原因·所有者·快速修复)、风险审查树、状态栏摘要和深度审查(针对橙色发现的爆炸半径分析)。可从 VS Code 市场或 Open VSX 安装。
  3. 在命令行和 CI 中:diffgate check 审查你的 diff,遇到高影响发现时以非零退出;本地可作为 pre-commit 钩子,同一条门控也可在流水线中运行。支持 GitHub Action、共享学习和组织策略包。CI 运行可选择通过同一门控叠加外部扫描器(Semgrep),仅建议性、默认关闭。

常用命令:diffgate init 生成 .diffgate.json;diffgate check 审查当前 diff;check 也可指向日志中已有提交进行 AI 编写历史审计(历史模式仅报告,不运行测试命令也不阻断提交,支持 --json 和 --limit);diffgate --help 查看完整命令列表(report、bench、stats、graph、marginal 等)。

适用场景:

  • 编码代理在生成代码后、写入磁盘前进行自我检查。
  • 开发者在编辑器内对 AI 辅助变更进行快速审查。
  • 团队在 pre-commit 和 CI 中对 AI 生成代码设置门控。
  • 审计近期 AI 编写的提交历史。

限制:

  • 覆盖范围因语言而异:JS/TS、Python、PHP、Go、Ruby、Java、C#、Kotlin 有深度 AST 分析,其他语言仅模式底线。
  • SSRF 是跨八种 Deep-AST 语言的建议性检查;XXE 覆盖 JVM(Java、Kotlin)和 .NET(C#)。
  • DiffGate 是 diff 上的确定性门控,不是穷尽的全仓库污点分析引擎。干净结果意味着“在该语言层级无匹配”,而非“已证明安全”。如需深度跨文件污点分析,应配合专用 SAST 使用。
  • 可选 AI 层(通俗解释和修复)和跨文件爆炸半径分析默认关闭。
  • 测试命令仅在橙色变更时运行。

许可证:Apache 2.0。