RepoInclusionAI (Ant Group)InclusionAI (Ant Group)published Jul 23, 2026seen 3w

inclusionAI/PanelWise

Python

Open original ↗

Captured source

source ↗
published Jul 23, 2026seen 3wcaptured 3whttp 200method plain

inclusionAI/PanelWise

Description: Self-hosted multi-model deep research system that fuses independent research agents into evidence-grounded reports.

Language: Python

License: Apache-2.0

Stars: 1

Forks: 0

Open issues: 0

Created: 2026-07-23T11:05:07Z

Pushed: 2026-07-28T04:28:08Z

Default branch: main

Fork: no

Archived: no

README:

PanelWise — 在历史 DRACO 实验中复现并超过 OpenRouter Fusion 公开分数

![CI](https://github.com/inclusionAI/PanelWise/actions/workflows/ci.yml)

PanelWise 是一套自管的多模型深度研究系统:多个研究 agent 独立检索和撰写报告,随后由分析与合成阶段生成最终结果。在我们当时进行的 100 任务历史实验中,前沿组合得到 73.68,高于当时记录的 OpenRouter Fusion 公开分数 68.3;budget 组合得到 66.42,高于当时记录的 Fable 5 65.3,内部记录成本约为其公开成本估计的 1/5

> 完整、面向非技术读者的介绍见 [FUSION_REPORT.md](./FUSION_REPORT.md)。

历史实验中的优势结果

以下结论描述我们在当时实验中实际记录的结果。它们支持“该次 PanelWise 实验超过当时公开参考分数、budget 运行具有记录成本优势”的历史声明,但不代表所有配置、时间或协议下都成立。

| 历史配置 | DRACO 聚合分数 | 记录成本 | 证据 | |---|---:|---:|---| | 前沿组合 Fusion(Opus 4.8 + GPT-5.5 + Gemini 3.1 Pro),聚合文件标记为 official grader | 73.68 | 生成与本地评分运行记录 $401.31(约 $4.01/题);official regrade 另记录 $47.92 | [frontier_fusion_official.json](./results/frontier_fusion_official.json)、[frontier_fusion_ourjudge.json](./results/frontier_fusion_ourjudge.json) | | 同一 official-grader 聚合中的 Claude Opus 4.8 单模型结果 | 64.57 | 未单独记录 | [frontier_fusion_official.json](./results/frontier_fusion_official.json) | | GLM 5.1 + MiniMax M3 + Qwen 3.7 Max 的 Budget Fusion | 66.42 | $130.84(约 $1.31/题) | [budget_fusion_glm_minimax_qwen.json](./results/budget_fusion_glm_minimax_qwen.json) | | Budget panel 替换为 Gemini 3.5 Flash 后的 Fusion | 70.95 | $80.08 增量成本;该实验复用了已有 panel 报告,不是完整独立运行成本 | [budget_swap_geminiflash.json](./results/budget_swap_geminiflash.json) |

  • 历史分数优势:73.68 比当时记录的 OpenRouter Fusion 68.3 高 5.38 分
  • 历史 budget 优势:66.42 比当时记录的 Fable 5 65.3 高 1.12 分;约 $1.31/题相当于当时外部成本估计 ~$7/题的约 19%
  • 额外结果:复用已有报告的 Gemini 3.5 Flash panel swap 得到 70.95,但不能把它的 $80.08 增量成本表述成完整端到端成本。

这些比较采用当时公开数字作为参考,但本仓库没有保存足以证明协议完全等价的外部证据。数据集版本、模型快照、搜索设置、grader、重试和成本口径可能存在差异。因此这里的“超过”和“成本优势”严格限定于我们当时记录的实验结果与当时记录的公开参考值,不是对当前产品表现或协议等价性的普遍声明。

仓库不包含原始题目、rubric、逐题报告、轨迹或完整运行 manifest。现有产物能够确认模型名称、样本数、聚合分数以及部分领域/成本字段;无法确认的设置包括确切模型快照、代码提交、依赖锁、搜索后端、direct-fetch、域名屏蔽、提示词版本和失败处理。未知设置保持标记为未知,不从当前默认值倒推。详见 [FUSION_REPORT.md](./FUSION_REPORT.md)。

管线

自建研究 agent(ReAct 循环 + Exa 搜索 + 全 trajectory + 无黑盒上限)
×N 并行研究同一题
→ fusion judge 结构化分析(共识/矛盾/独特发现/盲区)
→ synthesizer 合成终稿
→ DRACO 官方 grader 评分

仓库结构

draco_eval/ 核心包
dataset.py DRACO 数据集加载 + 加权 rubric 解析
openrouter.py 异步 OpenRouter 客户端(限速/重试/成本)
research_agent.py 自建 ReAct 研究 agent(Exa 搜索 + web_fetch + trajectory)
fusion.py Fusion 管线(panel → judge 分析 → synthesizer)
judge.py 我们的 DRACO 裁判
official_judge.py 接官方 rubric grader(paper-instruments/rubric)
scoring.py DRACO 评分公式
agent.py / pipeline.py / run.py
fusion_full.py 前沿组合全量评测
budget_fusion_full.py 便宜组合全量评测
panel_swap.py 换 panel 第三人(复用前两位报告)
solo_ranking.py 单模型排名
synth_ablation.py / budget_fusion_synth.py 合成器选型
*_ablation.py / compare_*.py / regrade_official.py 各项对照实验
results/ 历史聚合结果(json)
FUSION_REPORT.md 历史实验与证据限制说明

v0.1 支持范围

受支持接口

  • draco_eval 核心包中明确写入 README 的接口;未记录的接口不承诺兼容性。
  • draco_eval.fusion.run_fusion_messagesdraco_eval.research_agent.run_research_messages
  • fusion_full.py--dry-run、有界 --limit 1 和由用户明确发起的完整运行路径。
  • README 中记录的 direct-fetch 配置、本地 judge 和可选 official grader 安装路径。

以下划线开头的辅助函数(包括 _analyze_synthesize)属于内部实现,不是稳定 API。

实验性、best-effort 工作流

fusion_demo.pyresearch_demo.pybudget_fusion_full.pybudget_fusion_synth.pysolo_ranking.pyregrade_official.py 作为研究工作流保留。它们可能依赖特定模型、可选依赖、付费服务或先前生成的中间产物,不享有与受支持接口相同的兼容性承诺。

归档研究脚本

aggregate_sweep.pybackend_ablation.pycompare_modes.pycompare_selfbuilt_vs_st.pyengine_compare.pyjudge_delta.pynative_retest.pyor_fusion_compare.pypanel_swap.pyrejudge.pyrerun_failed.pysearch_tier_ablation.pysynth_ablation.py 为研究透明度而保留,但不是 PanelWise v0.1 的稳定接口。这些脚本可能依赖未随仓库发布的历史模型、配置或中间产物。

运行

python3.11 -m venv .venv && .venv/bin/pip install -r requirements.txt
cp .env.example .env # 填 OPENROUTER_API_KEY;搜索用 Exa 需 EXA_API_KEY

# 首先执行无网络、无付费调用的命令检查配置和入口
.venv/bin/python fusion_full.py --dry-run

# 有意进行一个有上限的冒烟运行(会产生模型和搜索费用)
.venv/bin/python fusion_full.py --limit 1

fusion_full.py --dry-run 不加载数据、不创建输出、也不调用模型、搜索或 grader。--limit 1 明确限制为一个任务;它不是免费的 dry run。

> 全量运行会产生费用。 下列命令会进行付费模型调用;自管 research agent 使用 Exa 时还会 > 产生 Exa 搜索费用。先运行 dry run,再用 --limit 1 验证你的 key、模型和预算。

# 前沿组合全量(100 题;存答案版,使用项目本地 judge)
.venv/bin/python fusion_full.py

# 便宜组合全量(100 题;使用官方 rubric grader)
# 先安装可选的官方 grader 依赖:.venv/bin/pip install -r requirements-eval.txt
AGENT_REASONING_EFFORT=high .venv/bin/python budget_fusion_full.py

# 单模型排名(10 子集;同样会产生模型/搜索费用)
.venv/bin/python solo_ranking.py

上述完整评测工作流支持将记录写入 output/ 后恢复运行;实验性和归档脚本的恢复行为取决于各自实现,不作统一保证。output/ 已被 gitignore。

安装、grader 与运行环境

  • 推荐并已验证的完整路径是 Python 3.11。核心依赖当前也可在 Python 3.9 上运行;可选的

rubric==2.2.0 要求 Python 3.10+(其发布页面声明支持 3.10–3.13)。

  • requirements.txt 仅包含核心运行依赖。requirements-eval.txt 是可选的官方 grader 依赖,

固定为 rubric==2.2.0;其 canonical source 是 `paper-instruments/rubric`

  • fusion_full.py 使用本仓库的 draco_eval.judge.judge_once,不是 rubric

budget_fusion_full.pybudget_fusion_synth.pysolo_ranking.pyregrade_official.py 以及其他 official-grader experiment scripts 都导入 draco_eval.official_judge,因此需要 先安装 requirements-eval.txt

  • fusion_full.py 是 provider-flexible 的受支持入口:默认 OpenRouter 需要

OPENROUTER_API_KEYMODEL_PROVIDER=zenmux 时需要 ZENMUX_API_KEY,且 ZenMux 仅支持 RESEARCH_SEARCH_BACKEND=exa。OpenRouter 支持 exanativeexa_or;直连 Exa 搜索 需要 EXA_API_KEYnative/exa_or 使用 OpenRouter server tools。budget_fusion_full.pybudget_fusion_synth.pysolo_ranking.pyregrade_official.py 是 OpenRouter-only historical/evaluation scripts,均需要 OPENROUTER_API_KEY

  • 运行产生的可忽略输出位于 output/fusion_full_v2*/output/budget_full/

output/budget_panel/output/budget_synth/output/fusion_full_v2/official_grades/。 不要将报告、下载数据、日志、.env 或凭据提交到 Git。 若切换 direct-fetch 模式,请设置 FUSION_OUTBUDGET_PANEL_DIRBUDGET_FULL_REC_DIRBUDGET_SYNTH_DIRSOLO_RANKING_OUT 到新的输出目录,避免复用不同模式的缓存。

自管研究 agent 的本地抓取

RESEARCH_ENABLE_DIRECT_FETCH=1 是默认设置,保留自管 research agent 的 Exa 搜索加本地 httpx...

Excerpt shown — open the source for the full document.