Repolode
arm

arm/metis

开源的 LLM 驱动安全代码审查工具,通过语义推理而非固定规则发现漏洞,由 Arm 产品安全团队开发。

Star
889
Fork
128
未关闭 Issue
12
最近提交
前天

这是什么?

Metis 是一个面向深度安全代码审查的智能体式 AI 框架。它不依赖 linter 或传统静态分析工具那样的硬编码规则,而是借助大语言模型理解代码语义,目标是发现大型或遗留代码库中不易察觉的漏洞。工具还能验证自身分析结果以及第三方 SARIF 报告中的问题,收集证据以减少误报。

支持的语言包括 C、C++、Java、Python、Go、Rust、TypeScript、Solidity、Terraform 等,基于 tree-sitter 进行代码切分,并提供插件机制便于扩展新语言。LLM 后端可配置为 OpenAI、Azure OpenAI、Anthropic、Gemini、AWS Bedrock、vLLM、Ollama 或 llama.cpp。向量存储默认使用 ChromaDB,也可选 PostgreSQL(pgvector)或 Qdrant。

用户可通过命令行或交互式命令审查目录、文件或补丁,为代码库建立索引并提问,还能对 SARIF 结果进行分诊。输出支持 JSON 和 SARIF 格式。

核心功能

  • 01使用 LLM 语义推理代替硬编码规则来发现漏洞。
  • 02验证自身及第三方 SARIF 工具的发现结果,以减少误报。
  • 03通过插件体系支持多种语言,包括带 CodeGraph 可达性分析的 C/C++。
  • 04兼容多个 LLM 服务商,也支持通过 Ollama、vLLM、llama.cpp 运行本地模型。
  • 05默认使用 ChromaDB,可选 PostgreSQL pgvector 或 Qdrant 作为向量存储。
  • 06可审查整个目录、单个文件或补丁,输出 JSON 或 SARIF 格式。

适用场景

  • 对大型或遗留 C/C++ 代码库做安全审查,避免基于规则的工具产生过多噪声。
  • 在合并前审查拉取请求的补丁是否存在安全问题。
  • 对现有 SAST 工具的结果进行分诊,区分可能的真实漏洞与误报。
  • 源代码不能外传时,使用本地部署的模型进行安全分析。

快速上手

  1. 1

    克隆仓库

    git clone https://github.com/arm/metis.git
  2. 2

    创建虚拟环境并安装依赖

    uv venv && uv pip install .
  3. 3

    导出你的 OpenAI API 密钥

    export OPENAI_API_KEY="your-key-here"
  4. 4

    对代码库运行分析

    uv run metis --codebase-path "/path/to/src" --verbose

使用前须知

  • 需要 LLM 服务提供方,默认为 OpenAI,需要 API 密钥。
  • 除非所选向量后端自带嵌入模型,否则索引操作需要配置嵌入服务提供方。
  • 各语言支持程度不一,部分语言仅提供基础审查。

收录于专题

标签

#security-review#code-review#llm#static-analysis#vulnerability-detection#sarif#agentic-ai

常见问题

metis 是什么?
开源的 LLM 驱动安全代码审查工具,通过语义推理而非固定规则发现漏洞,由 Arm 产品安全团队开发。 Metis 是一个面向深度安全代码审查的智能体式 AI 框架。它不依赖 linter 或传统静态分析工具那样的硬编码规则,而是借助大语言模型理解代码语义,目标是发现大型或遗留代码库中不易察觉的漏洞。工具还能验证自身分析结果以及第三方 SARIF 报告中的问题,收集证据以减少误报。
metis 可以免费使用吗?用的什么许可证?
metis 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
metis 还在维护吗?
活跃维护中。metis 最近一次提交是在 2026年11月5日。
metis 适合用来做什么?
对大型或遗留 C/C++ 代码库做安全审查,避免基于规则的工具产生过多噪声。 在合并前审查拉取请求的补丁是否存在安全问题。 对现有 SAST 工具的结果进行分诊,区分可能的真实漏洞与误报。 源代码不能外传时,使用本地部署的模型进行安全分析。
metis 怎么安装和运行?
克隆仓库: git clone https://github.com/arm/metis.git 创建虚拟环境并安装依赖: uv venv && uv pip install . 导出你的 OpenAI API 密钥: export OPENAI_API_KEY="your-key-here" 对代码库运行分析: uv run metis --codebase-path "/path/to/src" --verbose
在哪里获取 metis?
源代码和安装说明在 GitHub 上:https://github.com/arm/metis

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目