Mira 代码审查
在自有基础设施上自动审查代码变更,并用团队规则减少无关反馈。
- Star 数
- ★ 391
- 最近更新
- 1 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 65/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude APICodex(部分支持)
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 希望代码、索引和审查记录留在自有基础设施中的工程团队,可部署 Mira 并连接代码托管平台。
- 不适合
- 不愿自行部署和维护服务的团队
- 不希望代码及索引存入自有数据库的团队
- 源码审查
- 65/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Mira 是一款可自行托管的 AI 代码审查服务,可通过 GitHub App 或 GitLab、Forgejo、Bitbucket Cloud 的令牌集成,自动审查拉取请求和合并请求。它使用你选择的 LLM,读取变更并结合全仓库代码索引提供跨文件上下文,然后向代码托管平台发布简洁的审查意见和 walkthrough。服务还提供漏洞扫描、依赖与影响范围图、组织级包搜索、自定义规则和从合并 PR 中学习团队规则的机制。仪表盘展示审查事件、成本和令牌用量、依赖及 CVE 信息;差异、索引和审查历史保存在自有 SQLite 或 Postgres 中。README 记录了 Docker 部署及 Railway、Fly.io、Render 配置。
部署 Mira 服务并配置代码托管平台 webhook 后,它会接收 PR 或 MR 事件,获取变更内容,并用代码索引补充仓库上下文。它通过配置的模型提供商生成审查结果,应用置信度门槛、去重、自我批评和每个 PR 的评论上限,再发布意见;还可在 walkthrough 中提示其他开放 PR 的冲突风险或重复工作。索引和依赖数据支持跨仓库包搜索、依赖图与影响范围查看,OSV.dev 漏洞数据按小时轮询。团队可用 .mira.yaml 或仪表盘设置仓库规则,并通过合并 PR 学习规则。用户可在仪表盘查看审查事件、实际模型成本和令牌数据。
- 希望代码、索引和审查记录留在自有基础设施中的工程团队,可部署 Mira 并连接代码托管平台。
- 维护多个仓库、需要查找哪些项目使用特定包版本的团队,可使用组织级包搜索。
- 需要评估依赖升级或符号变更影响范围的维护者,可查看依赖图和文件关系。
- 需要在每个仓库设定审查标准的团队,可通过
.mira.yaml或仪表盘配置自定义规则。 - 想自动发现依赖漏洞并查看修复版本的安全或平台团队,可使用 OSV.dev 每小时扫描及仪表盘告警。
- 使用 GitHub、GitLab、Forgejo 或 Bitbucket Cloud 管理 PR/MR 的团队,可配置自动审查和内联提问。
如何安装或部署这个 Agent?
README 提供 Docker 部署示例;需配置代码托管平台凭据、webhook 密钥和模型提供商凭据。以下示例使用 GitHub App 配置以及 OpenRouter API 密钥:
# mira.yaml
llm:
model: "anthropic/claude-sonnet-4-6"
indexing_model: "anthropic/claude-haiku-4-5"# .env
MIRA_GITHUB_APP_ID=123456
MIRA_GITHUB_PRIVATE_KEY="$(cat private-key.pem)"
MIRA_WEBHOOK_SECRET=your-secret
OPENROUTER_API_KEY=sk-or-...docker run -p 8000:8000 --env-file .env \
-v "$(pwd)/mira.yaml:/app/mira.yaml" \
ghcr.io/miracodeai/mira:latest --config /app/mira.yamlREADME 也记录了 Railway 一键部署,以及 GitLab、Forgejo/Codeberg 和 Bitbucket Cloud 的接入方式。
如何使用这个 Agent?
启动服务后,将 Mira 安装到 GitHub 仓库,或按对应平台配置访问令牌和 webhook;新建或更新的 PR/MR 会触发审查。可在仓库放置 .mira.yaml 覆盖规则,例如:
filter:
confidence_threshold: 0.5
max_comments: 10在仪表盘查看审查事件、成本、依赖和漏洞信息。若使用 Codex CLI 提供模型能力,可在部署配置中选择 codex-cli,并挂载通过 codex login 创建的 auth.json;README 指定其沙箱策略必须为 read-only。
这个 Agent 有哪些优点和局限?
- 差异、索引、审查历史和漏洞数据可保存在自有 SQLite 或 Postgres 中,服务默认自行托管。
- 支持 OpenRouter、vLLM、Ollama、Together、Groq、Fireworks、AWS Bedrock direct 及 OpenAI 兼容端点等模型路径。
- 除 PR 评论外,还提供组织级包搜索、依赖影响图、CVE 告警和审查健康仪表盘。
- 支持 GitHub、GitLab、Forgejo(含 Codeberg)和 Bitbucket Cloud 的 PR/MR 审查。
- 可配置团队规则,并从合并 PR 中提炼规则以影响后续审查。
- 需要部署和维护服务、配置代码托管平台集成及 webhook;不是即装即用的托管审查产品。
- 使用云端模型时需自行提供模型密钥并承担模型调用费用。
- README 的默认模型配置通过 OpenRouter;切换到其他端点需要相应配置。
- Codex CLI 路径要求挂载敏感的 Codex 登录凭据,并禁用 ensemble sampling。
- README 展示的公开基准测试只有 50 个 PR,且由 Claude Sonnet 4.6 评判,不能代表所有仓库和模型。
这个 Agent 与同类方案有什么区别?
README 将 Mira 与 CodeRabbit、Greptile、GitHub Copilot 和 Cubic-v2 的公开基准结果作比较,并称其在该测试中审查速度最快。表中 Mira 的 F1 为 44,低于 Cubic-v2 的 56;Mira 的中位审查时间约 77 秒,短于表中其他工具。README 说明测试使用 Martian Code Review Bench 的 50 个 PR 离线数据集,并由 Claude Sonnet 4.6 评判。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Mira 代码审查 当前 | 65 · 存在缺口 | 自托管服务免费 + 模型费 | ★ 391 | 1 天前 | Python | OpenAI API · Claude API |
| Kodus | 66 · 存在缺口 | 云服务 / SaaS免费版 + 付费版 | ★ 1.6k | 1 天前 | TypeScript | OpenAI API · Claude API |
| Helmor 本地多智能体工作台 | 52 · 缺口较多 | 桌面应用免费 + 模型费 | ★ 1.3k | 3 个月前 | TypeScript | Codex · Claude Code |
| Cyrus | 50 · 缺口较多 | 命令行工具免费版 + 付费版 | ★ 883 | 今天 | TypeScript | Codex · Claude Code · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
SECURITY.md 描述 webhook 签名校验、进程内短期令牌缓存、密钥管理建议及 Codex CLI 的只读隔离;README 也说明代码会发送到所选 LLM 提供方。故最小权限、数据流和敏感数据处理有具体依据,但未展示完整权限清单、发布评论等外部操作的逐项确认或回滚机制,身份归属也未获验证。
README、pyproject.toml 与 CI 工作流对 Python 版本、可选评测和常规测试范围大体一致,CI 还包含构建和启动检查;但 judge.py 对空或格式错误的模型响应没有清晰恢复路径,失败消息处理证据有限,故未给高分。
文档明确面向开发团队及 GitHub、GitLab、Forgejo、Bitbucket 等场景,并列出模型、数据库和部署选择。Codex CLI 配置边界也有说明;但事件触发、各集成能力差异和更广泛限制未全部在所给材料中说明。
README 分区清楚,提供 Docker、令牌、仓库级配置和多平台安装步骤;Apache-2.0 许可证文件完整。版本号可见,但给定材料未含变更日志内容;维护责任和局限有部分说明,仍不足以支持满分。
可操作的 PR 评论、索引、漏洞与依赖信息及成本面板显示出实际价值,README 也提供基准数字;但这些性能和效益主张主要由项目自身陈述,样本及评估方法信息有限,部署和 LLM 成本也取决于运营环境。
README 的部分功能与配置主张能由 SECURITY.md、pyproject.toml、CI 和 judge.py 相互印证;基准表提供了测量口径,但没有在所给材料中展示完整原始结果或独立复核。整体证据可追踪,但主张与已验证事实的边界仍需谨慎。
- Mira 会把代码差异或上下文发送给所配置的 LLM 提供方;部署方应评估该提供方的数据处理条件,并妥善隔离密钥和实例。
- 部署指南要求配置 webhook 密钥、修改默认管理员密码并限制网络入口;公开暴露未加固的仪表板会增加风险。
- 基准和质量数据属于项目提供的陈述;本次静态审查没有执行代码或独立复现结果。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
What's Changed * fix(index): reject incomplete repository tree listings by @vikasagarwal101 in https://github.com/miracodeai/mira/pull/365 * fix(security): preserve ecosystem identity in PR dependency scans by @vikasagarwal101 in https://github.com/miracodeai/mira/pull/366 * fix(security): anchor vulnerability comments to their source manifest by @vikasagarwal101 in https://github.com/miracodeai/mira/pull/367 * fix(llm): align provider reasoning and output request shapes by @gavrh in https://github.com/miracodeai/mira/pull/368 …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * deps(ui): bump vite from 8.2.2 to 8.3.0 in /ui/mira by @dependabot[bot] in https://github.com/miracodeai/mira/pull/304 * deps(ui): bump eslint from 10.9.1 to 10.10.0 in /ui/mira by @dependabot[bot] in https://github.com/miracodeai/mira/pull/305 * deps(ui): bump eslint-plugin-react-refresh from 0.5.5 to 0.5.7 in /ui/mira by @dependabot[bot] in https://github.com/miracodeai/mira/pull/306 * deps(ui): bump lucide-react from 1.38.0 to 1.46.0 in /ui/mira by @dependabot[bot] in https://github.com/miracodeai/mira/pull/308 …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * feat: add Codex CLI LLM provider by @poonasor in https://github.com/miracodeai/mira/pull/142 * deps(ui): bump shadcn from 4.18.0 to 4.19.0 in /ui/mira by @dependabot[bot] in https://github.com/miracodeai/mira/pull/279 * deps(ui): bump eslint from 10.8.1 to 10.9.1 in /ui/mira by @dependabot[bot] in https://github.com/miracodeai/mira/pull/278 * deps(ui): bump lucide-react from 1.31.0 to 1.34.0 in /ui/mira by @dependabot[bot] in https://github.com/miracodeai/mira/pull/276 …在 GitHub 查看 ↗