ReflecTool: Towards Reflection-Aware Tool-Augmented Clinical Agents¶
会议: ACL 2025
arXiv: 2410.17657
代码: https://github.com/BlueZeros/ReflecTool
领域: LLM Agent
关键词: 工具增强Agent, 临床智能体, 反思学习, 长期记忆, 医疗AI
一句话总结¶
ReflecTool 提出了一个反思感知的工具增强临床 Agent 框架,通过优化阶段积累成功轨迹和工具级经验,推理阶段检索相似案例并用验证器改进工具使用,在涵盖 18 个任务的 ClinicalAgent Bench 上超越纯 LLM 10+ 分、超越已有 Agent 方法 3 分。
研究背景与动机¶
- 领域现状:LLM 在医疗领域展现潜力,但仅限文本交互,无法处理临床环境中的多模态信息(医学图像、EHR 等)
- 现有痛点:现有临床 Agent(如 EHRAgent、MMedAgent)各自针对单一场景,工具种类有限,缺乏跨场景通用性
- 核心矛盾:临床环境需要 Agent 同时具备知识推理、多模态理解、数值分析、数据理解和可信度等多维能力,但缺乏统一的评测基准和通用框架
- 本文要解决什么:(1) 构建全面的临床 Agent 评测基准 (2) 设计能有效学习并使用领域工具的通用 Agent 框架
- 切入角度:通过自反思对比成功/失败轨迹来积累工具使用经验,用长期记忆存储成功案例
- 核心idea一句话:让 Agent 在优化阶段「练习」使用工具并积累经验,推理阶段检索相似成功案例+工具级经验来指导决策
方法详解¶
整体框架¶
输入是临床任务(问题 + 多种格式的输入数据)→ 工具箱包含 15 种临床工具 → 两阶段框架:优化阶段在小规模训练集上试错积累经验 → 推理阶段检索相似案例 + 工具级验证 → 输出答案。基于 ReAct 风格的多步推理。
关键设计¶
- ClinicalAgent Bench (CAB):
- 做什么:提供全面的临床 Agent 评测框架
- 核心思路:涵盖 5 个维度(知识推理、多模态、数值分析、数据理解、可信度)共 18 个任务,配套 15 种临床工具
-
设计动机:现有医疗 Agent benchmark 只覆盖单一场景,无法全面评价 Agent 的临床能力
-
Optimization Stage (优化阶段):
- 做什么:在小规模样本上积累工具使用经验和成功案例
- 核心思路:Agent 先尝试解题生成轨迹 \(\mathcal{C}_1\),对比 ground truth 自反思生成改进建议 \(\mathcal{S}\),据此重新产生轨迹 \(\mathcal{C}_2\)。若成功则存入长期记忆 \(\mathcal{M}\),并对比两轨迹提取工具级经验 \(\mathcal{E}\)
-
设计动机:直接使用工具效果差,通过「试错→反思→积累」让 Agent 学会领域工具的正确用法
-
Inference Stage with Tool-wise Reflection (推理阶段):
- 做什么:利用长期记忆和工具级经验来指导推理
- 核心思路:(1) BM25 检索相似成功案例作为 few-shot 示范 (2) 两种验证方式:Iterative Refinement(迭代精炼动作直到稳定或达到上限)和 Candidate Selection(采样多个候选动作,由验证器选最优)
- 设计动机:Iterative Refinement 适合弱模型(逐步改进),Candidate Selection 适合强模型(多方案择优),互补提高适用性
损失函数 / 训练策略¶
无需微调模型参数。优化阶段仅需很少的标注样本(实验中~200个),通过 LLM 自反思生成经验,存入外部记忆。
实验关键数据¶
主实验¶
| 模型 / 方法 | 指标(Avg) | 对比 | 提升 |
|---|---|---|---|
| Qwen2-7B (纯LLM) | 38.01 | - | - |
| ReflecTool (Qwen2-7B, IR) | 49.37 | vs 纯LLM | +11.36 |
| Reflexion (Qwen2-72B) | 56.37 | 最强基线 | - |
| ReflecTool (Qwen2-72B, CS) | 59.66 | vs Reflexion | +3.29 |
消融实验¶
| 配置 | Avg | 说明 |
|---|---|---|
| 无记忆无反思 (ReAct) | 52.37 | 基线 |
| +长期记忆 | 54.86 | +2.49 |
| +长期记忆+工具级经验 (IR) | 57.01 | +4.64 |
| +长期记忆+工具级经验 (CS) | 60.28 | +7.91 |
关键发现¶
- 长期记忆是最关键的组件,移除后 Refinement 降 4 分、Selection 降 7 分
- Candidate Selection 在强模型上效果更好,Iterative Refinement 在弱模型上更有效
- 优化步数越多性能越好,但边际收益递减(~800步趋于稳定)
- 验证次数 n=2 通常最优,过多反而有害
亮点与洞察¶
- 将「工具级经验」从轨迹对比中提取出来的思路很巧妙,可以迁移到其他领域的 Agent(如代码、金融)
- 两种验证方法(迭代精炼 vs 候选选择)的互补发现有实际价值:可根据模型强弱自动选择策略
- CAB benchmark 设计全面、覆盖 5 个维度 18 个任务,填补了临床 Agent 综合评测的空白
局限性 / 可改进方向¶
- 优化阶段需要 ground truth 答案,限制了在无标注场景的适用性
- 工具箱是预定义的,缺乏动态发现/创建新工具的能力
- 仅在 Qwen2 系列测试,对其他模型的泛化性未充分验证
- 临床场景中 Agent 的安全性和可解释性未深入讨论
相关工作与启发¶
- vs Reflexion: 都用反思,但 Reflexion 是行为层面反思,ReflecTool 细化到工具级别的经验积累和验证
- vs EHRAgent/MMedAgent: 各自只做单一场景,ReflecTool 是通用临床 Agent
- vs CRITIC: CRITIC 用自我验证改进输出,ReflecTool 在每步动作层面用工具经验验证
评分¶
- 新颖性: ⭐⭐⭐⭐ 工具级反思经验 + 双验证方式的设计有新意
- 实验充分度: ⭐⭐⭐⭐ 18个任务5个维度+多种基线+消融+详细分析
- 写作质量: ⭐⭐⭐⭐ 框架图清晰,方法描述规范
- 价值: ⭐⭐⭐⭐ CAB benchmark 和工具级反思框架都有实用价值