https://arxiv.org/abs/2402.04253
这篇文章介绍了一个名为AnyTool的Agent系统,它旨在通过大规模API调用来解决用户查询。内容概括如下:
-
API检索器(API Retriever):
-
AnyTool利用了一个分层结构的API检索器,这个结构分为三个层次:元代理(meta-agent)、类别代理(category agents)和工具代理(tool agents)。
-
元代理负责根据用户查询动态生成类别代理,每个类别代理对应Rapid API中的一个类别,并负责从该类别的工具集合中识别最相关的工具。
-
类别代理进一步创建工具代理,这些代理负责搜索其管理的工具中的API,并将可能解决查询的API添加到API候选池中。
-
-
求解器(Solver):
-
解求解器的目标是使用生成的API候选池来解决用户的查询。它实现了一个单一代理,利用GPT-4的函数调用能力。
-
解求解器可以采用深度优先搜索决策树(DFSDT)或链式思考(Chain of Thought, CoT)方法来解决查询。
-
-
自反思机制(Self-Reflection Mechanism):
-
如果初始解决方案未能解决用户查询,AnyTool的自反思机制会重新激活系统,首先激活API检索器,然后是求解器。
-
在API检索器中,自反思机制会识别查询未解决的原因,并根据这些原因重新激活代理,从工具代理到类别代理,最后到元代理。
-
在求解器中,如果求解器决定放弃,它会提供放弃的原因和不相关的API名称。然后,这些API将从候选池中移除,求解器将使用新的提示、更新的API候选池和清理过的历史上下文重新激活。
-
-
评估协议(Evaluation Protocol):
- 文章还提出了一种新的评估协议,称为AnyToolBench,以更好地反映实际应用场景。这个协议通过手动审查所有查询,只保留那些可以通过API池中的特定API解决的查询。
-
实验与结果:
- 实验结果表明,AnyTool在处理各种数据集时的性能优于ToolLLM和GPT-4的变体。例如,在ToolBench上,AnyTool的平均通过率比ToolLLM提高了35.4%。
AnyTool的设计充分利用了GPT-4的函数调用特性,通过分层结构和自反思机制,有效地利用了超过16,000个API来解决用户查询,同时避免了对外部模块的训练需求。