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