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 用于持久化。

工作流程(高层次流程)

  1. 配置 – 全局 mira.yaml(挂载到容器中)定义默认设置,如 LLM 模型和索引模型。单个仓库可添加 .mira.yaml 以调整阈值或评论限制。
  2. Webhook 监听器 – Mira 作为 Web 服务运行,接收来自支持的 Git 主机的 PR 事件。
  3. 索引构建 – 当首次遇到仓库时,Mira 会使用 indexing_model 构建整个代码库的嵌入索引。该索引存储在所选数据库中。
  4. 审查生成 – 对于新 PR,Mira 获取差异,通过配置的提供者查询 LLM,并接收一组建议评论。
  5. 降噪过滤 – 评论根据信心度、去重和仓库设置进行过滤。
  6. 发布 – 过滤后的评论被回传至 PR(GitHub、GitLab、Forgejo),并记录在仪表板中。
  7. 学习 – 如果审查员拒绝或编辑了评论,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 一键模板,并在公开基准测试中定位为最快开源审查工具。

相关

  • 项目
  • 项目
  • 项目
  • 项目