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