miracodeai/mira
Self-hosted AI code reviewer with indexed PR reviews, walkthroughs, vulnerability scanning, dependency graphs, custom rules, and a learning loop.
Mira – 自托管 AI 代码审查服务
是什么 – Mira 是一个你可在自己基础设施上运行的开源服务,使用你选择的大语言模型(LLM)自动审查拉取请求(或合并请求)。它提供 Web 仪表板、代码索引、漏洞警报和一个能适应团队风格的反馈学习循环。
为何重要 – 大多数 AI 代码审查产品都是 SaaS:它们将你的代码差异发送到第三方服务器,你只能看到生成的评论。Mira 将 所有数据(差异、嵌入、CVE 数据、使用日志)存储在你控制的 SQLite 或 Postgres 数据库中,因此不存在隐藏的遥测或数据售卖。
核心功能(如 README 所述)
| 功能 | 你将获得 |
|---|---|
| 模型无关审查 | 任何 OpenAI 兼容端点(OpenRouter、Ollama、vLLM、Together、Groq、AWS Bedrock 等)或通过 Codex CLI 使用的本地 LLM。你提供 API 密钥,Mira 永远不会在成本上加价。 |
| 降噪 | 信心阈值、去重、自我批判阶段和每 PR 评论上限,确保你只看到简洁、高价值的反馈。 |
| 学习循环 | Mira 会监控哪些评论被拒绝或编辑,并将这些模式转化为自定义审查规则,影响未来的审查。 |
| 自定义规则 | 使用自然语言在 .mira.yaml 或仪表板中定义组织级或仓库级策略。 |
| 全仓库索引 | 审查前,整个仓库会被嵌入,使 LLM 获得超出差异的上下文。该索引还支持组织级软件包清单和依赖图查询。 |
| 漏洞扫描 | 每小时更新的 OSV.dev CVE 数据流被存储,并在受影响的软件包旁显示,附带影响范围图。 |
| 仪表板 | 自托管 UI,显示每个仓库/模型的成本、审查健康指标、软件包清单、CVE 警报以及审查响应分析。 |
| Git 平台支持 | GitHub(作为 GitHub App)、GitLab(令牌)、Forgejo/Codeberg(令牌)。Bitbucket 适配器正在计划中。 |
| 速度 / 质量 | 在公开的 Code Review Bench 上进行基准测试:平均每 PR 约 77 秒,F1 分数为 44,Mira 位于速度-质量帕累托前沿。 |
| 部署 | Docker 镜像(ghcr.io/miracodeai/mira:latest),支持 Railway、Fly.io、Render 的一键模板,或普通 docker run。支持 SQLite(默认)或 Postgres 用于持久化。 |
工作流程(高层次流程)
- 配置 – 全局
mira.yaml(挂载到容器中)定义默认设置,如 LLM 模型和索引模型。单个仓库可添加.mira.yaml以调整阈值或评论限制。 - Webhook 监听器 – Mira 作为 Web 服务运行,接收来自支持的 Git 主机的 PR 事件。
- 索引构建 – 当首次遇到仓库时,Mira 会使用 indexing_model 构建整个代码库的嵌入索引。该索引存储在所选数据库中。
- 审查生成 – 对于新 PR,Mira 获取差异,通过配置的提供者查询 LLM,并接收一组建议评论。
- 降噪过滤 – 评论根据信心度、去重和仓库设置进行过滤。
- 发布 – 过滤后的评论被回传至 PR(GitHub、GitLab、Forgejo),并记录在仪表板中。
- 学习 – 如果审查员拒绝或编辑了评论,Mira 会记录该结果并更新其规则集,使未来的审查更符合团队偏好。
快速入门
# 1. 创建包含密钥的 .env 文件
cat > .env <<EOF
MIRA_GITHUB_APP_ID=123456
MIRA_GITHUB_PRIVATE_KEY="$(cat private-key.pem)"
MIRA_WEBHOOK_SECRET=your-secret
OPENROUTER_API_KEY=sk-or-...
EOF
# 2. 可选全局配置(mira.yaml)
cat > mira.yaml <<EOF
llm:
model: "anthropic/claude-sonnet-4-6"
indexing_model: "anthropic/claude-haiku-4-5"
EOF
# 3. 运行容器
docker run -p 8000:8000 \
--env-file .env \
-v "$(pwd)/mira.yaml:/app/mira.yaml" \
ghcr.io/miracodeai/mira:latest --config /app/mira.yaml
服务启动后,在你的仓库中安装生成的 GitHub App(或 GitLab 令牌)。每个新 PR 将自动被审查。
开发与贡献
- 以可编辑模式安装:
pip install -e ".[dev,serve]" - 使用
pytest tests/运行测试套件 - 特殊的
-m eval标记运行访问真实 GitHub 和 LLM 端点的集成测试(需要 API 密钥) - 代码使用
mypy进行类型检查,使用ruff进行 lint
许可证
Apache 2.0 – 免费用于商业或私有用途,需遵守常规署名要求。
总结 – Mira 使团队完全掌控 AI 辅助代码审查:选择模型、将所有数据保留在本地、并获得典型 SaaS 审查工具隐藏的成本、安全性和审查员分析等额外可观测性。该项目积极维护,提供 Docker 镜像和 Railway 一键模板,并在公开基准测试中定位为最快开源审查工具。
相关
- 项目
- 项目
- 项目
- 项目