【免费下载链接】metis
Metis is an open-source, AI-driven tool for deep security code review
Metis 是一款开源的AI 驱动安全代码审查工具(AI-Powered Security Code Review),由 Arm 产品安全团队打造。它不依赖硬编码规则,而是用具备语义理解和推理能力的 LLM 对代码库做"深度审查",帮你发现传统 Linter、SAST 工具容易漏掉的隐蔽漏洞。本教程将带你5 分钟内完成安装、配置 LLM 并跑通第一次安全代码审查。
什么是 Metis?先看懂它的核心能力
- 🧠深度推理:基于 LLM 的语义级理解,而非静态规则匹配,适合大型、复杂的遗留代码库
- 🔍确定性本地证据:审查与分诊强调源码本地分析、语言插件与确定性证据收集,降低误报
- ✅问题验证(Triage):可对自己或第三方 SAST 工具产出的 SARIF 结果做二次分诊
- 🌐Provider 灵活:支持 OpenAI、Azure OpenAI、Anthropic、Gemini、AWS Bedrock、vLLM、Ollama、llama.cpp 等
- 🧩插件化语言体系:开箱支持 C/C++、Java、C#、Python、Go、Rust、TypeScript、JavaScript、Kotlin、Solidity、Verilog、Terraform 等 19+ 种语言(完整列表见 README.md 的 Supported Languages 表格)
其核心引擎、执行图与语言插件源码分别位于 src/metis/engine/ 与 src/metis/plugins/,默认执行图配置见 src/metis/metis.yaml。
前置准备:安装 Metis 前需要 2 样东西
- Python 3.12+(项目要求见 pyproject.toml)
- uv包管理工具(推荐,安装极快)
💡 如果不想管理本地依赖,也可以直接走后文的Docker 一键方案。
快速安装:3 种方式任选其一
方式一:uv 虚拟环境(推荐)
git clone https://gitcode.com/gh_mirrors/metis19/metis cd metis uv venv uv pip install .如需 PostgreSQL(pgvector)或 Qdrant 向量库支持,安装对应扩展:
uv pip install '.[postgres]' # 或 uv pip install '.[qdrant]'方式二:系统级安装
uv pip install . --system方式三:Docker 一键构建
docker build -t metis .仓库提供了完整的 Dockerfile,构建后在任意代码库目录下挂载运行即可(见后文示例)。
配置 LLM Provider:30 秒接入你的模型
默认使用OpenAI,只需导出 API Key:
export OPENAI_API_KEY="your-key-here"想换成其他模型?在配置文件里修改llm_provider.name并用--config PATH指定即可。各 Provider 对照表:
| Provider | name | 安装方式 |
|---|---|---|
| OpenAI | openai | 已内置 |
| Azure OpenAI | azure_openai | 已内置 |
| Anthropic | anthropic | uv pip install '.[anthropic]' |
| Google Gemini | gemini | uv pip install '.[gemini]' |
| AWS Bedrock | bedrock | uv pip install '.[bedrock]' |
| vLLM / Ollama / llama.cpp | vllm/ollama/llamacpp | 已内置 |
不想挨个装?一条命令全都要:uv pip install '.[all-providers]'。
本地私有化:用 Ollama 跑 Metis
如果没有云 API,可以用本地模型。参考示例配置 examples/ollama/metis_ollama_example.yaml,核心只需:
llm_provider: name: "ollama" base_url: "http://localhost:11434/v1" model: "llama3.1:8b" # 8GB 内存推荐然后运行:
uv run metis --config examples/ollama/metis_ollama_example.yaml --codebase-path "/path/to/src"各 Provider 的详细说明见 docs/providers/ 目录,例如 docs/providers/ollama.md、docs/providers/vllm.md。
第一次安全审查:1 条命令跑通 review_code
方式一:交互模式(推荐新手)
uv run metis --interactive --codebase-path "/path/to/src"进入提示符后,依次执行:
> init > review_codeinit:初始化仓库上下文,加载威胁模型记忆(如SECURITY.*文件)review_code:对代码库执行完整审查
方式二:非交互直跑
uv run metis --codebase-path "/path/to/src" --verbose --output-file results/review.json--verbose会显示执行图中的每个 stage/node,--output-file导出结果。
审查结果长什么样?
Metis 会给出文件位置 + 问题描述 + 代码片段 + 原因 + 修复建议 + 置信度。例如针对一段 C 语言地址重映射代码,它会指出"更新后的值没有写回内存",并直接给出带*ptr = value;的修复代码(完整示例见 README.md 的 Example 4 部分)。
常用命令速查表
| 命令 | 作用 | 场景 |
|---|---|---|
init | 初始化仓库上下文与威胁模型记忆 | 首次使用必做 |
index | 构建向量索引 | 需要ask检索能力时 |
review_code | 全量代码安全审查 | 常规审查 |
review_dir <path> | 审查指定目录 | 聚焦局部模块 |
review_file <path> | 审查单个文件 | 快速验证 |
review_patch <diff> | 审查增量补丁 | Code Review 场景 |
update <diff> | 增量更新索引 | 避免全量重建 |
ask <question> | 向索引提问 | 代码库问答 |
triage <findings.sarif> | 对 SARIF 结果分诊降误报 | 配合--triage参数 |
SARIF 分诊流程的原理简介见 docs/triage-flow.md。
进阶技巧:Docker 运行与自定义配置
Docker 中审查本地代码库
# 挂载当前目录并注入 API Key docker run --rm -it -v "$PWD:/metis" -e "OPENAI_API_KEY=${OPENAI_API_KEY}" metis --codebase-path /metis --verbose切换向量库后端
默认使用本地免安装的ChromaDB。若用 PostgreSQL + pgvector,可先一键拉起环境:
docker compose up -d仓库中的 docker-compose.yml 已预置好 pgvector 扩展,然后:
uv run metis --project-schema myproject_main --codebase-path "/path/to/src" --backend postgres自定义 metis.yaml
不传--config时,Metis 使用打包的默认配置 src/metis/metis.yaml,涵盖并发数、token 上限、审查断点、威胁模型匹配模式等。常用调优点:
max_workers:并发 worker 数(默认 5)threat_model.source_patterns:威胁模型文件匹配规则(src/metis/metis.yaml)- 项目根目录放一个
.metis.md,可为审查注入团队私有安全规范
执行图的完整结构(stage、node、输出绑定)详见 docs/execution-graph.md。
总结:你的 Metis 安全审查之路
- ✅
git clone+uv pip install .完成安装 - ✅
export OPENAI_API_KEY(或配置 Ollama 本地模型) - ✅
uv run metis --interactive --codebase-path "/path/to/src"进入交互模式 - ✅ 执行
init→review_code,拿到带修复建议的审查报告
下一步建议:用triage命令对 SAST 结果做误报分诊,或用review_patch把它接入日常 Code Review 流程。Metis 采用 Apache 2.0 协议开源(见 LICENSE),欢迎深入 docs/ 目录探索更多能力。🚀
【免费下载链接】metis
Metis is an open-source, AI-driven tool for deep security code review
相关推荐
Hercules快速入门:10分钟搭建Git代码分析环境完整教程
Hercules快速入门:10分钟搭建Git代码分析环境完整教程 🚀 Hercules 是一款极其快速、功能强大的Git仓库分析引擎,能够从Git历史中获取深
开发工具数据可视化DeepSeekMath快速入门:5分钟搭建数学推理AI环境
DeepSeekMath快速入门:5分钟搭建数学推理AI环境 还在为复杂的数学推理问题头疼吗?DeepSeekMath 7B模型以51.7%的MATH基准得分惊
人工智能大模型基础模型模型评测NLP模型推理服务DeepSeekGitHub MCP Server快速入门:5分钟搭建AI开发环境
GitHub MCP Server快速入门:5分钟搭建AI开发环境 还在为AI工具无法直接访问GitHub数据而烦恼吗?GitHub MCP Server(Mo
MCP 服务后端开发工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考