传统的AI助手通常依赖于单一模型或有限的工具集,难以应对需要多步推理、跨领域知识融合及高精度数据分析的任务。例如,解决视觉谜题,需要精细图像理解和基于文本的混合推理。
为了解决这一难题,斯坦福开源了OctoTools,这是一个融合了11种不同工具专用于复杂推理的AI Agent。根据测试数据显示,Octotools在多领域的 16 项基准测试中,平均准确率非常高,可以轻松应对数学、科学、医学诊断等复杂场景任务。
开源地址:https://github.com/octotools/octotools
工具卡片是OctoTools框架的基础构件,通过标准化封装的方式,将各种工具的功能和元数据整合在一起。这些工具可以是图像识别工具、数学计算工具、网络搜索工具,特定领域的专家系统等。
每个工具卡片都包含了工具的基本信息,如输入输出格式、使用限制以及最佳实践建议。这些元数据为规划器和执行器提供了必要的信息,帮助它们更好地理解和使用这些工具。
例如,图像字幕生成的工具卡片会说明它需要输入图像路径和一个描述性提示,输出则是图像的描述性字幕。而对象检测工具卡片则会说明它需要输入图像路径和目标对象的标签,输出则是检测到的对象列表及其置信度。
工具卡片的另一个重要特点是它们的动态性。在运行时,工具卡片可以根据任务的具体需求,动态地调整其行为。例如,如果任务需要对图像进行更细致的分析,工具卡片可以调用更高级的图像处理算法;如果任务需要快速响应,工具卡片则可以选择更高效的算法。
规划器是OctoTools框架的“大脑”,负责对用户查询进行分析,并制定出全局的解决方案。它通过分析查询的目标、所需技能和相关工具,生成一个初步的计划。这个计划不仅包括了任务的总体目标,还详细列出了每一步需要完成的子目标以及所需的工具。
规划器的工作方式类似于人类在解决问题时的思考过程。它首先对任务进行宏观分析,确定任务的整体目标和所需技能。
然后根据这些信息,选择合适的工具,并为每一步制定具体的行动计划。例如,在处理一个需要图像理解和数学计算的任务时,规划器会先使用图像字幕生成工具来获取图像的描述,然后再使用数学计算工具来解决问题。这种逐步细化的过程使得规划器能够更好地应对复杂的任务,确保每一步都朝着最终目标前进。
执行器相当于OctoTools的“四肢”,负责将规划器生成的行动计划转化为可执行的命令,并运行相应的工具。执行器的工作方式类似于人类在执行任务时的具体操作过程。会根据规划器的指令,生成具体的命令,运行工具,并将结果反馈给规划器。
执行器不仅能够处理简单的命令,还能够处理复杂的多步操作。例如,如果规划器决定使用对象检测工具,执行器会根据工具的元数据,生成具体的命令,运行工具,并将结果反馈给规划器。这种分离规划和执行的设计,使得系统的错误率降低,提高了系统的可靠性和可维护性。
上下文验证器是OctoTools的验证模块,主要负责检查当前的上下文是否已经满足了用户的要求。会验证结果的完整性,检查是否存在不一致或模糊的地方,并决定是否需要进一步的工具调用。
如果发现某个步骤的结果存在问题,上下文验证器会要求规划器重新评估任务的进展,并调整后续的行动计划。