MedLA: 多智能体医学推理框架

面向 MedQA、PubMedQA、MMLU 医学、MedDdx、BioASQ 等任务的可扩展协作与仲裁架构。

核心思想:专科智能体并行作答 + LogicAgent 逻辑评估 + DecisionMakersAgent 仲裁 → 更稳健的最终答案。

English

关键特性

  • 可配置多智能体讨论--num_agents / --num_rounds
  • 逻辑质量层LogicAgent 生成结构化逻辑报告
  • 仲裁层DecisionMakersAgent 统一冲突候选
  • 单模基线--baseline_bool 1
  • 多数据集medqa / medxpert / mmlu / pubmedqa / bioasq / medddx
  • 多后端:OpenAI、DeepSeek、vLLM、ZhipuAI、SiliconFlow
  • 实验追踪:WandB 指标与诊断
  • 并行/服务化:线程池 + 环境变量配置

仓库结构

adam_baseline/              # 单智能体基线与分析
adama_main_new_prompt/     # 多智能体实验主线
  main.py                  # 入口(基线 + 多智能体)
  util/                    # Agent/Prompt/编排
  sweep/                   # 参数扫描配置
  data/                    # 数据与知识库
adama_main_publish/        # 精简发布(本项目)
docs/                      # 项目页面(当前)
output/, logic_output/, logic_extrac/  # 运行产物与诊断
          

安装

git clone https://github.com/alexander2618/MedLA.git MedLA
cd MedLA
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -r requirements_environment.txt  # 完全复现(可选)

# 可选本地/服务
export ADAMA_PORT=8000        # vLLM 端口
export ADAMA_NUM_THREADS=8    # 覆盖 --num_threads
          

使用示例

多智能体协作

python main.py \
  --dataset medqa \
  --model deepseek \
  --llm_name deepseek-chat \
  --num_agents 8 \
  --num_rounds 3 \
  --few_shots 1 \
  --tag exp_medqa_v1
          

单智能体基线

python main.py --dataset medqa --model deepseek --llm_name deepseek-chat \
  --baseline_bool 1 --tag baseline_v1
          

vLLM 后端

export ADAMA_PORT=8000
python main.py --dataset mmlu --model vllm --llm_name llama3.3_4096 --tag vllm_test
          

常用扫描: sweep/

主要参数

  • --dataset:数据集
  • --model:后端
  • --llm_name:模型名
  • --num_agents:智能体数
  • --num_rounds:讨论轮数
  • --baseline_bool:1 基线 / 0 多智能体
  • --num_samples:样本上限
  • --num_threads:并行度
  • --temp:温度
  • --tag / --debug

环境变量:ADAMA_PORTADAMA_NUM_THREADS

架构概览

  1. 初始化 LogicAgent 与 N 个 MedAgent_Eliminate
  2. 独立生成答案与推理链
  3. LogicAgent 评估一致性并生成 logic_report
  4. 若分歧,进入消歧/精化轮次
  5. 仍冲突则由 DecisionMakersAgent 仲裁
  6. 指标记录并通过 WandB 可视化
LogicAgent
逻辑批判与一致性
MedAgent_Eliminate
医学推理 + 自消歧
DecisionMakersAgent
仲裁与综合
base (util/base.py)
数据编排与流水线
MedLA 架构图

结果与分析

产出位于 output/logic_output/logic_extrac/;使用 adam_baseline/analysis.py 分析。

WandB 指标

  • accuracy:累计准确率
  • talkTimes:讨论轮数
  • retry_count / retry_pro:重试情况
  • make_decision / make_decision_num:仲裁与比例
  • num_right / numn_total:正确/总数

引用

@inproceedings{AdamaAAAI2026,
  title={MedLA: ALogic-Driven Multi-Agent Framework for Complex Medical Reasoning with Large Language Models},
  author={Siqi Ma, Jiajie Huang, Fan Zhang, Jinlin Wu, Yue Shen, Guohui Fan, Zhu Zhang, Zelin Zang},
  booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
  year={2026},
  note={Oral Presentation}
}
          

部署到 GitHub Pages

  1. 推送仓库到 GitHub
  2. Settings → Pages
  3. 选择分支 main 与目录 /docs,保存
  4. 等待生效后访问 Pages 链接