multi 多模型评审

把同一个任务同时交给多个 AI 模型,并排呈现它们的一致与分歧,让你自己下判断。

Star 数
★ 23
最近更新
11 天前
License
MIT
主语言
Shell

30 秒速览

可在哪里用
通用 · 跨平台Codex · Claude Code · Claude APIChatGPT · OpenAI API(部分支持)
开始前需要
python3Claude Code 或 Codex CLI后端 CLI(codex、opencode、kilo、gemini)Shell / 命令行网络访问本地文件系统
典型场景
提交 PR 前用多个模型交叉评审一个分支或 diff,希望拿到比内置评审更多的真实缺陷。
主要局限
依赖多个外部 CLI 与 API 密钥,任一后端缺失都会以 FAILED 出现,配置面比单模型工具更宽。

这个 Agent 能做什么,适合哪些场景?

multi 是一个面向编码代理的插件(Claude Code 与 Codex CLI 均可安装),核心用途是把一次代码评审、任务完成度核查或提问同时分发给多个模型。它通过 config.toml 定义后端(backend)与配置档(profile):后端类型包括 codex、opencode、kilo、claude-headless 和 gemini,其中 claude-headless 可指向任何 Anthropic 兼容端点,例如 OpenRouter、z.ai、9router/OmniRouter。执行时每个后端与 Claude 子代理读取同一份代码快照(而非工作区实时文件),并行评审,再汇总成一份报告:经两个模型族相互印证的 corroborated、仅单一来源且已对代码核实的 single-source、互相矛盾的 disagreed,以及带原因的 dropped。可选的 depth 旋钮(lite/normal/ultra)与 model 旋钮(haiku/sonnet/opus/fable)控制评审角度与 Claude 子代理所用模型;loop 模式是唯一会修改工作区的模式。它还支持 /multi:check-if-done、/multi:ask、/multi:skill、/multi:adhd 等命令,并对每个模型标注是否可能将提示用于训练。

运行 multi 时,插件按当前 profile 取出一批后端,每类后端(如 codex、opencode、kilo、gemini、claude-headless)以对应 CLI 或 API 调用模型,同时读取同一份代码快照。评审流程中另有一个 ponytail 视角专门排查过度设计。结果被归类为 corroborated(两个模型族都发现)、single-source(单一来源,先对代码核实再呈现)、disagreed(分歧点)和 dropped(附丢弃原因),失败的端点在报告中显示为 FAILED: <why>。depth 控制 Claude 子代理的评审角度数量(正确性 / 加安全与设计 / 加“任务是否真的完成”、对抗式二次 codex 复核与逐条单源发现验证)。训练数据策略通过每个 runner 追加的 <answer>.trains 行记录 yes|no|unknown <model>,并以最差结果计入报告;可用 no_train = true、--no-train 或后端级 trains = false/true 覆盖。其他命令包括 /multi:check-if-done(要求提供能证明完成的命令执行结果)、/multi:ask(同一问题并排作答,不合并)、/multi:skill(对每个模型执行同一技能)、/multi:adhd(给每个模型分配不同认知框架做规划)和 /multi:setup。

  1. 提交 PR 前用多个模型交叉评审一个分支或 diff,希望拿到比内置评审更多的真实缺陷。
  2. 团队想验证“任务是否真的完成”,要求由没有写这段代码的模型来判断,并附上可复现的验证命令。
  3. 预算有限的个人开发者使用 Codex 免费额度 + OpenCode 免费模型 + OpenRouter :free 模型组成零成本评审团队。
  4. 已持有 z.ai、Qwen、DeepSeek 或 9router/OmniRouter 的 Anthropic 兼容端点,希望把这些模型并入同一次评审。
  5. 对合规敏感的用户需要按模型标注是否会用于训练,并用 --no-train 排除有训练风险的模型。
  6. 想对同一问题或同一技能获得多个模型并列答案,而不是被合并成一个结论。

如何安装或部署这个 Agent?

在 Claude Code 中安装:

claude plugin marketplace add szarkans/multi
claude plugin install multi@szkills

在 Codex CLI 中安装:

codex plugin marketplace add szarkans/multi
codex plugin add multi@szkills

其他宿主可让代理抓取并执行安装说明:

Fetch and follow instructions from https://raw.githubusercontent.com/szarkans/multi/main/INSTALL.md

运行环境需要 python3,以及你所配置后端对应的 CLI(codex、opencode、kilo、gemini)。

如何使用这个 Agent?

首次运行 /multi:setup(Codex 中为 $multi:setup 等宿主注册形式),它会生成 ~/.config/multi/config.toml 与 ~/.config/multi/providers.env。一个最小配置示例:

default_profile = "normal"

[backends.codex]
type = "codex"    # Free or Go plan

[backends.opencode]
type = "opencode"    # no `models` = using free models

[backends.openrouter]                    # key defaults to OPENROUTER_API_KEY
type = "claude-headless"
base_url = "https://openrouter.ai/api"
models = ["qwen/qwen3.8-27b:free", "nvidia/nemotron-3-ultra-550b-a55b:free"]

[profiles]
normal = ["codex", "opencode", "openrouter"]

之后直接用自然语言下达指令,例如“review this branch, ultra, profile free”或“only codex and glm”,代理会把 profile 转成 --backend 参数。也可调用 /multi:check-if-done、/multi:ask、/multi:skill、/multi:adhd。若想整轮排除可能用于训练的模型,在 config.toml 顶部加入 no_train = true,或在单次调用时传入 --no-train。所有字段说明见仓库中的 config.example.toml。

这个 Agent 有哪些优点和局限?

优点
  • 多后端可插拔:同一套配置里可混用 codex、opencode、kilo、gemini 和任意 Anthropic 兼容端点(OpenRouter、z.ai、9router 等)。
  • 输出结构有明确分类:corroborated / single-source / disagreed / dropped,并保留丢弃原因,分歧部分可直接阅读。
  • 内置评测对比:同一批真实缺陷上 multi 找到 29 个真实缺陷、其中 16 个为独有,而内置 /code-review high 为 14 个和 1 个,Claude 成本接近(约 $3.5 对 $3.4)。
  • 无外部评审模型时拒绝运行,避免“单模型评审伪装成多模型”。
  • 训练数据策略可查询并按模型标注,支持 --no-train 与后端级 trains 覆盖。
局限
  • 依赖多个外部 CLI 与 API 密钥,任一后端缺失都会以 FAILED 出现,配置面比单模型工具更宽。
  • 耗时更长:评测中每个用例约 19 分钟,而内置 /code-review high 约 10 分钟。
  • 评测中的成本数字只覆盖 Claude 使用量,第三方模型费用另计,小额但并非为零。
  • 训练标注基于各提供方公开规则与 Kilo 目录缓存,作者明确说明 no 并不等于零保留。
  • loop 模式会改写工作区,其余模式只读快照,使用前需清楚区分。

这个 Agent 与同类方案有什么区别?

仓库在评测中直接对比了 Claude Code 内置的 /code-review high:真实缺陷 14 对 29,独有缺陷 1 对 16,Claude 成本约 $3.4 对 $3.5,单用例耗时约 10 分钟对 19 分钟。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
multi 多模型评审 当前 41 · 缺口较多 — ★ 23 11 天前 Shell Codex · Claude Code · Claude API
Plannotator 78 · 表现良好 命令行工具免费版 + 付费版 ★ 9.5k 今天 TypeScript Codex · Claude Code
Claudexor 76 · 表现良好 命令行工具免费 + 模型费 ★ 515 今天 TypeScript Codex · Claude Code
MCO 73 · 存在缺口 命令行工具免费 + 模型费 ★ 538 12 天前 Python Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
41/ 100 五分制 2.1 / 5
信任安全 10/29
可靠稳定 6/14
适用触发 8/18
规范维护 8/18
有效结果 6/13
证据核验 3/8
查看各维度的扣分理由
信任安全10 / 29 · 1.7/5

README 声称代码审查读取的是快照而非实时工作树,且 loop 模式是唯一会修改工作树的模式,这体现了最小权限意识,但仅停留在文字层面,未见代码或权限清单佐证,故 least_privilege 仅 1。用户确认方面,loop 会编辑代码树却未描述逐次确认或 diff 预览机制,仅 1。数据流透明度相对较好:README 明确列出各后端训练数据判定表、trains 标记文件与 no-train 开关,得 2。敏感数据处理仅提到 providers.env 存放 API key,未说明权限、加密或泄露防护,得 1。依赖安全完全无证据(无锁文件、无依赖审计),得 0。外部副作用方面,除 loop 外声称只读,但无代码验证,得 1。回滚仅提到 loop 最多 3 轮,未描述失败回滚或备份,得 1。来源归属仅 LICENSE 署名作者,无发布者验证,得 1。

可靠稳定6 / 14 · 2.1/5

自洽性:README 中模型名(如 qwen3.8、GLM-5.3、gemini-3.8)与日期(30.09.2026)明显异常,疑似虚构或未来化,削弱可信度,得 1。依赖可用性:仅声明需要 python3,未固定版本或列出依赖清单,得 1。失败信息:明确说明后端失败会以 FAILED: <why> 呈现而非静默,且无第二模型家族时拒绝运行,得 2。

适用触发8 / 18 · 2.2/5

受众与场景:清晰面向代码审查、check-if-done、提问、规划等场景,得 2。能力边界:描述了 depth/profile 等旋钮,但未系统列出不支持的情形,得 1。触发精度:依赖自然语言触发(如“review this branch, ultra”),无严格语法定义,得 1。环境适配:支持 claude/codex 插件市场及“其他宿主自行安装”,但安装依赖外部 INSTALL.md 未提供,得 1。

规范维护8 / 18 · 2.2/5

信息架构:README 较长但结构松散、口语化,得 1。安装说明:给出 claude 与 codex 的具体命令,得 2。命名稳定性:无版本化命名约定,得 1。示例与 FAQ:配置示例丰富,含 clown 完整示例,得 2。已知限制:仅零散提及耗时更长、成本,未系统列出,得 1。许可证:MIT 完整,得 2。版本与变更日志:完全缺失,得 0。维护责任:仅个人署名,无 issue 流程或维护承诺,得 1。

有效结果6 / 13 · 2.3/5

输出可用性:报告分为 corroborated/single-source/disagreed/dropped 并附理由,结构清晰,得 2。边际价值:多模型交叉验证确有价值,但评测数据自述且模型名可疑,价值主张支撑不足,得 1。成本效益:自述成本相近但耗时翻倍,且评测不可独立验证,得 1。

证据核验3 / 8 · 1.9/5

主张可追溯:引用 evals/RESULTS.md 但该文件未在证据中提供,得 1。跨源印证:仅 README 与 LICENSE 两个文件,无代码或测试佐证,得 1。事实与推断分离:README 区分了“measured”与主观推荐,但模型名与日期异常使事实性存疑,得 1。

风险与缓解建议
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • README 中出现的模型名(qwen3.8、GLM-5.3、gemini-3.8 等)与日期(30.09.2026)明显异常,可能为虚构或未来化内容,评测数据不可轻信。
  • 评测结果引用 evals/RESULTS.md,但该文件未包含在证据中,无法独立核验其“多找到 29 个 bug”等主张。
  • loop 模式会直接修改工作树,README 未描述逐次确认、diff 预览或失败回滚机制,存在误改风险。
  • API key 存放于 providers.env,未说明文件权限或泄露防护。
  • 无依赖锁定、无版本与变更日志,安装依赖外部 INSTALL.md,供应链与可复现性证据不足。
  • 发布者身份未经 FollowAgents 验证,属未知,不应据此推断安全性。
证据充分度:低 评估于 2026年10月20日 审查版本 a5a02833dbae
评估证据 README.mdLICENSE
查看完整评分方法 →

常见问题

完全不花钱能用吗?
可以。使用 Codex 免费额度、OpenCode 免费模型与 OpenRouter 的 :free 模型即可组成 profile;README 的“no money”示例就是这种组合。但训练数据标注会更严格,no_train = true 时可能只剩少数可用模型。
评审会修改我的代码吗?
默认不会。每个后端读取的是同一份代码快照而非实时工作区,因此不会破坏文件。唯一会编辑工作区的是 loop 模式,它会修复、重新评审并最多重复三轮。
某个后端跑不起来会怎样?
它会在报告中显示为 FAILED: <why>,不会被静默忽略。如果一个非 Claude 评审模型都没有配置成功,插件会直接拒绝运行,而不是给出伪多模型结果。
怎么知道模型会不会用我的代码训练?
每次调用会向 <answer>.trains 追加 yes|no|unknown <model>,报告取最差结果。可用 no_train = true 或单次 --no-train 排除,只有 no 的模型参与;如果账号本身不训练,可在 [backends.<name>] 下设置 trains = false。作者也说明 no 不承诺零保留。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents