AnyTool-论文粗读

 

AnyTool 论文粗读💡 Meta Data Title AnyTool: Self-Reflective, Hierarchical Agents for Large-Scale API Calls Journal  (10.48550/arXiv.2402.04253 ICML 2024) ...

AnyTool 论文粗读


💡 Meta Data

| Title | AnyTool: Self-Reflective, Hierarchical Agents for Large-Scale API Calls | | —————————————————————— | ———————————————————————————————————————————————————— | | Journal |  (10.48550/arXiv.2402.04253 ICML 2024) | | Authors | Du Yu,Wei Fangyun,Zhang Hongyang | | Pub.date | 2024-02-06 |

📜 研究背景 & 基础 & 目的 (Motivation)

  • 如何驱动 LLM 有效的使用工具
  • 提供一种使用大量工具解决用户查询的方式

🔬 研究方法


提出了AnyTool

Anytool 采用GPT-4 API 无需训练外部模块

  • 一个具有层次结构API 检索器(用 GPT-4无需训练)

    • 由三个层组成,每个层包含一个或多个具有不同角色的 agent,克服了LLMs 中最大上下文长度的限制
    • 首先 meta agent 根据 rapidapi 类和 query 动态给出类别代理
    • 然后类别代理从工具集中识别工具,创建工具代理
    • 最后工具代理选择 API添加到 API 候选池中(工具代理不只管理一个工具)
  • 使用选定 api 候选者解决用户查询的求解器(Tool LLaMA / GPT-4)

    • 有两种输出:给出解决方案和放弃
    • 当放弃时 要给出不相关 API 的原因和名称 *
  • 自我反思机制

    • 如果初始解决方案被证明不可行,则重新激活 AnyTool

    • 两种情况会被激活:

      • 给出解决方案,但是 GPT4 评判未解决(由 GPT-4 给出理由)
      • 求解器给出放弃的结果(由求解器给出理由)
    • 然后将理由添加在API 检索器中刚刚激活的代理的上下文中(从下到上),这个过程会重新扩展 API 候选池

    • 优点:显著减少了对简单查询的“过渡搜索“的倾向,同时为复杂查询提供了更丰富的上下文和更深入的搜索。

提出修订的评估办法:AnyToolBench

  • 原本:\(R=\frac{\#(\text{Non-solvable})+\#(\mathrm{Solved})}{\#(\text{Non-solvable})+\#(\mathrm{Solved})+\#(\mathrm{Unsolved})}.\)修改后:
\[R=\frac{\#(\mathrm{Solved})}{\#(\mathrm{Solved})+\#(\mathrm{Unsolved})}.\]
  • 解决了在不可解决的 query 算通过率,导致了人为的提高通过率的问题,能更好的反应实际应用场景的

🚩 结论


在多个数据集上实验表明,AnyTool 的比ToolLLM、GPT-4要好

  • 在 ToolBench 上,AnyTool 的平均通过率比 ToolLLM 高 35.4%

  • 在 AnyToolBench 上

📌 感想 & 疑问


  • 消融实验非常的完善
  • 将自我反思作用在Retriever 上,通过添加 agent 的上下文来实现是一种有效的自我反思方法。
  • 自我反思关键是要能把已有的错误修正。