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 一鍵模板,並在公開基準測試中定位為最快開源審查工具。

相關

  • 專案
  • 專案
  • 專案
  • 專案