【万字长文】Tool Learning综述:如何让大模型学会调用外部工具

363 阅读21分钟

【万字长文】Tool Learning综述:如何让大模型学会调用外部工具

前言:本文基于论文 “Tool Learning with Large Language Models: A Survey”(简称“本文献”)整理撰写,系统性地介绍了大型语言模型(LLMs)如何通过调用外部工具来增强自身能力,以及相关的最新研究进展。


一、引言

随着人工智能技术的迅猛发展,大型语言模型(Large Language Models,LLMs)展现出了惊人的自然语言理解与生成能力。然而,这些模型在面对复杂计算、实时信息、跨模态输入等需求时,往往力不从心。为此,近年来出现了一种名为“Tool Learning”的新研究方向——通过**调用外部工具来扩展大模型原有的“纯文本处理”能力。

举个例子:你问一个大模型“帮我把这张图片里面的文字翻译一下”,传统的大模型只能基于内含的语料进行“盲算”或“推测”。可如果向模型提供图像识别工具或者翻译工具的接口,模型就能先获取到图片内容,再利用翻译 API 做进一步处理,最终给出更准确、更专业的答案。

为了让更多研究者和开发者了解这一新兴领域,本文将根据论文 Tool Learning with Large Language Models: A Survey(以下简称“本文献”)的整体结构,对Tool Learning进行深入综述,带领读者系统性探讨:为什么要做 Tool Learning、Tool Learning 的流程结构、有哪些最新进展与代表性工作、有哪些公共基准与评测方式,以及未来可能的研究方向等。

下面是本文整体结构示意图,对应了原论文的内容安排:

image-20250215105653245

image-20250215105653245

如 上图所示,本文将围绕以下几个方面展开:

  1. Tool Learning 背景与基本概念
  2. 为什么需要 Tool Learning
  3. Tool Learning 四大阶段:任务规划、工具选择、调用工具、答案生成
  4. 现有 Benchmark、工具库与评测方法
  5. 当前挑战与未来研究方向

希望通过本综述,让尚不了解此领域的读者能“一文读懂”Tool Learning 的来龙去脉与关键细节。


二、Tool Learning 的背景与基本概念

2.1 什么是工具(Tool)?

在目前的学术语境下,“工具(Tool)”的定义尚无完全一致的公论,但业内普遍认为——只要能够让语言模型从外部获得或操作知识、实现某些运算、访问系统功能等模块化接口,都可以视为工具。这些“工具”可以是一个检索引擎、一个 Python 解释器、一个地图 API、一个天气 API,甚至一个可以与数据库交互的接口等等。

举例来说,传统的检索增强式生成(Retrieval-Augmented Generation,RAG)就是最常见的工具场景之一:检索引擎可看作是一个“文本搜索”工具。如果我们把检索引擎的使用方式规范化给语言模型,那么它就能在生成长文时通过实时检索,避免“幻觉”式回答。

2.2 什么是 Tool Learning?

Tool Learning”则是指:以外部工具使用为核心,让大型语言模型掌握对外部工具的调用方法,从而拥有更丰富、更精确、更稳定的能力。在这种范式中,大模型通过读写接口(API)与工具交互,之后将工具输出结果重新整合到回答当中。它与“在大模型内部埋藏更多知识”不同——工具学习体现的理念是将大模型从封闭的、参数化的知识中解放出来,使之具备“主动调用各种能力”的潜能。

据本文献总结,Tool Learning 的优势主要体现在以下几点:

  • 获取外部知识:借助搜索、数据库、或在线服务工具获取实时数据等。
  • 增强专业能力:利用专业计算器、Python 解释器等工具处理数学、编程、医疗等专业任务。
  • 执行自动化操作:让模型拥有“动手”能力,比如下单购物、管理日程等。
  • 支持多模态交互:通过图像处理工具、语音工具处理多模态输入。
  • 带来更高的可解释性:模型可以“边调用工具边给解释”,用户更容易理解模型决策过程。
  • 增强模型鲁棒性:在面对未知问题或不完整知识时,大模型能拓展工具系统以应对新环境。

在了解了 Tool Learning 的基本概念后,下一节将聚焦:为什么需要 Tool Learning? 以及它可以给大模型带来哪些收益?


三、为什么需要 Tool Learning?

Tool Learning 的意义不只局限于“再加一个插件”那么简单,它对增强大模型的能力有着重要的意义,主要体现在以下几个方面:

3.1 获得更丰富的外部知识

纯语言模型的内部知识固化于训练语料中,一旦涉及世界最新资讯或时效性较强的数据(如天气、新闻、股票),LLM 往往会产生“幻觉”。通过整合搜索引擎、在线数据库、知识库等工具,模型能**“出门看看外面的世界”**,在回答用户实时问题时具有更高的准确度与时效性。

3.2 具备更专业的技能

大模型虽在通用场景下表现出色,但当问题需要专业技能(如高等数学、多语言编程、复杂逻辑推理、生物化学计算)时,仅靠内置参数难以覆盖。若能“外呼”专业工具(如 Python 解释器、统计学数据库、分子模拟器),则能大幅提升在垂直领域的表现。

3.3 自动化与效率提升

调用懂得执行系统操作的工具(如电商下单、日程管理、邮件过滤),让大模型从“被动回答”转变为“主动执行”并完成真实动作,大幅解放人工操作成本。

3.4 多模态输入理解能力

对文字以外的模态(图像、语音、视频等)进行理解,本身就超出了纯文本语言模型的能力。通过“多模态工具”来前置识别、转换,LLM 才能融合多模态信息,从而实现视觉 Q&AOCR 翻译等功能。

3.5 更高可解释性与用户信任

和“让模型自己算”不同的是,在 Tool Learning 场景中,大模型可呈现整个调用过程,用户能看到预测逻辑及具体执行步骤——相比“黑盒式”输出更具透明度与可解释性

3.6 更好的鲁棒性与适应性

由于外部工具是一个可动态更新、可裁剪替换的模块化系统,LLM 的功能得以在系统层面灵活拓展。即便某一工具失效,亦可切换替代方案,增强系统的健壮性与适应性


四、Tool Learning 的全过程:四大阶段与常见 Paradigm

论文指出,工具学习的目标是让大语言模型在面对用户复杂任务时,能够动态地使用外部工具来完成任务,从而显著提升模型的整体能力与应用广度。其典型的交互流程可划分为以下四个阶段

  1. Task Planning(任务规划)
  2. Tool Selection(工具选择)
  3. Tool Calling(工具调用)
  4. Response Generation(回答生成)

此外,论文还对工具学习的两种代表性范式(“一步式工具使用”与“迭代式工具使用”)进行了区分:

  • 一步式(One-step) :模型一次性规划出所有子任务并调用工具后,直接产出最终答案。
  • 迭代式(Iterative) :在执行过程中模型会多次微调计划或者多次调用工具,每一步都可根据工具返回的信息做出修正,最后完成整体任务。

image-20250215105920471

image-20250215105920471

接下来将分别介绍这四大阶段对应的方法与研究进展。

4.1 Task Planning:从用户问题出发的任务分解

核心思路

“任务规划”是当模型接收到用户的复杂查询后,需要先进行意图理解与任务分解。如果问题本身是多步骤、多子任务的组合(例如需要实时信息、进行复杂计算或跨不同领域的推理),模型就需要先把整个问题分解成若干容易执行的小任务或步骤,并确定这些步骤的依赖关系执行顺序

研究进展与常用方法

根据论文的总结,这一阶段的工作可大致分为免调优(tuning-free)需要微调(tuning-based) 两类方法:

  1. 免调优方法(Tuning-free)

    • Few-shot/Zero-shot Prompting:借助提示工程(prompt engineering)技巧,直接用大语言模型自身的推理能力来分解任务(如Chain-of-Thought、ReACT等)。
    • 多回合或自我思考:模型在输出最终答案前,递归或迭代地生成子问题,从而得到一份面向执行的计划。例如 RestGPT 等工作会让模型使用“Coarse-to-Fine”规划方式,根据工具的反馈来进一步细化方案。
  2. 需要微调方法(Tuning-based)

    • 通过大规模标注或合成的“任务分解”训练数据,直接微调语言模型,让其更擅长做任务规划。例如 Toolformer、TPTU-v2、DEER 等工作。
    • 将模型专门训练成“Planner + Solver”的架构,其中Planner模块做任务/步骤规划,再调用特定工具执行子任务。这使得模型更具可控性。

关键挑战与价值

  • 如何高效且正确地识别哪些子任务需要用工具?哪些只需模型内部推理就能完成?
  • 对于比较复杂的问题,如何避免过度分解或冗余规划?
  • 任务规划的质量直接影响后续的工具调用与最终答案准确度,因此好的规划策略是工具学习成功的前提。

4.2 Tool Selection:为子任务挑选最合适的工具

核心思路

在完成任务分解(即明确了子问题)后,模型需要在多个可用的工具(或API)中检索并选择最合适的工具。不同工具往往功能、输入输出方式、调用代价都不同,因此正确选择、尤其是一次或多次选择不同工具组合对于成功解决子任务至关重要。

研究进展与常用方法

论文将“工具选择”的方法也分成两类

  1. 基于检索器(Retriever-based Tool Selection)

    • 当工具数目庞大时,通常先配备一个外部检索器来筛选Top-K可能相关的工具,再把它们的描述与用户子问题一并输入LLM,最终由LLM做进一步的判别。
    • 常见的检索方法包括多种传统IR技术(TF-IDF/BM25)或者语义向量检索(Sentence-BERT、ANCER、Contriever 等),也有学者构建特定的神经网络检索器(如COLT、ToolRerank 等),以提高工具搜索的覆盖率与准确性。
  2. 基于LLM的直接选择(LLM-based Tool Selection)

    • 当备选的工具数量可控时,可以直接把工具描述全部拼接进模型输入,让LLM阅读后选出最优工具。
    • 代表方式包括在Prompt中展示多个tool_name + tool_description,再采用链式思维(COT)或ReACT等提示模板,引导模型逐步给出“在这一步需要调用哪个工具”。
    • 若对各工具有使用时序要求(即先后依赖关系),LLM也可通过多轮推理依次决定调用顺序。

关键挑战与价值

  • 在成百上千个工具里找到“真正合适”的那几个,需要兼顾检索精准度多工具组合的可行性。
  • 当工具太多导致Prompt无法容纳全部描述时,引入高效检索阶段就显得十分必要。
  • “工具选择”最核心的问题在于:在有限的上下文中,如何让LLM充分理解各工具的功能与输入输出格式,并匹配到子任务需求。

4.3 Tool Calling:向工具发送调用请求及参数提取

核心思路

在选定要用的工具后,LLMs 需要以正确的格式向工具发送调用请求(如HTTP或函数调用),并准确填充调用参数。这往往需要遵循工具文档中要求的格式(可能包含参数名称、类型、取值范围等),否则调用会失败或返回错误结果。

研究进展与常用方法

仍然可分为免调优(tuning-free)需要微调(tuning-based) 两类:

  1. 免调优方法

    • 大多通过在Prompt中提供调用示例,让LLM在生成输出时带上{param_name: param_value}等结构化信息,以此让模型学会如何产生参数。
    • 也可能用特定的“规则”或“模板”,去校正模型输出,或者进行字符串后处理,保证参数不漏写、格式不出错(如EasyTool、ControlLLM等做法)。
  2. 需要微调方法

    • 直接在真实的“工具调用数据”上进行微调,比如利用LoRA方式让LLM学会输出满足API要求的格式。
    • GPT4Tools、ToolkenGPT等的研究会构造专门的数据集,让模型能比较稳定地生成函数调用语句或输入参数。
    • 同时会融入错误处理逻辑:如果调用失败,会解析工具返回的错误信息,在下一步反思并修正参数。

关键挑战与价值

  • 工具文档格式多样、参数要求严格,尤其当工具参数众多时,让LLM正确填充并保证覆盖率与准确性并不容易。
  • 任何格式错误、漏参或越界都会造成工具调用失败,如何设计自适应的异常处理机制及“自我纠错”是重要研究点。
  • 注重安全性。若参数中包含敏感信息或导致潜在恶意操作,需要在调用阶段进行防护或二次审核。

4.4 Response Generation:将工具结果整合进用户可读答案

核心思路

工具调用完成后,LLM收到输出结果。接下来需要基于工具结果与自身知识,整合、分析并生成最终回答给用户。在此,输出可能是文本、数字、表格、代码片段甚至图片等格式,模型需正确组织并呈现给用户。

研究进展与常用方法

  1. 直接插入式(Direct Insertion Methods)

    • 最简单的做法:如让模型回答时先写一句“这里是工具返回结果:ToolResult()”,然后在呈现给用户前,将“ToolResult()”替换成实际工具输出文本。
    • 但对于大型或多模态输出,这种方式往往不够灵活,也可能影响可读性。
  2. 信息整合式(Information Integration Methods)

    • 更常见的做法是先将工具结果作为额外上下文,继续输入LLM,让它基于这个信息写出完整、自然的叙述式答案(如RestGPT、ToolLLaMA、ReCOMP等方案)。
    • 若工具输出过大(可能超出LLM的上下文窗口),会先对工具结果进行压缩或抽取:比如通过压缩模型(compressor)或提取关键信息表,再让LLM据此生成答复;或者多轮问答,按需获取或处理数据。

关键挑战与价值

  • 工具输出格式多样,可能是长文本、表格、多模态结果,如何融入LLM的提示上下文并保证信息完整性是难题。
  • 面临上下文长度限制时,需要智能“去噪”,保留对最终解答最关键的工具信息。
  • 如何在回答中“引用”或“标注”工具结果以提高可解释性,还需兼顾用户体验与答复连贯度。

五、Benchmark、工具库与评测方法

5.1 Benchmark

论文的第五章首先系统梳理了常见的基准数据集(Benchmark) ,用以评测大模型在工具使用(Tool Learning)方面的能力。该领域目前已有诸多公开基准,它们在覆盖范围、评测侧重点及规模大小上各有不同,可大致分为“通用型”与“特定场景型”

  1. 通用型基准

    • API-BankToolBenchTaskBenchUltraTool 等,这些基准数据集通常包含多个领域的丰富工具接口,或设置了较多的功 能点以考验模型“多阶段、多样化”的工具运用能力。
    • 其中 ToolBench2 规模尤为大,拥有 16,464 个工具描述、126,486 条测试实例,是目前体量较高的公开数据集之一。
    • 部分基准如 API-BLENDSeal-Tools 则专注某些特定场景的 API 调用,但仍具有“跨多个功能接口”的特点。
  2. 特定场景型基准

    • ToolQA 专门为问答场景设计,聚焦模型在外部工具辅助下的问答准确率;
    • ToolTalkToolSandbox 面向多轮对话或任务式的工具调用过程;
    • MLLM-Toolm&m’s 等针对于多模态输入(图像、语音);
    • ToolSwordRoTBenchToolEmu 则重点考察安全性与鲁棒性问题,如当工具调用出现失误或恶意请求时,大模型的应对策略。

    不同Benchmark的比较如下:

image-20250215110908010

image-20250215110908010

科研和工业界普遍认为,当前绝大多数基准还存在某些局限,如工具接口可能并不稳定或不再可用、数据以合成或模拟用户为主、缺乏精准还原真实生产环境等。这给后续研究提出了更高要求——需要构建更贴近真实场景、规模更大、更全面的评测集合,以此真正衡量模型在复杂任务中调用外部工具的表现。

5.2 工具库(Toolkits)

在基准评测之外,论文也提到了若干开源工具库,方便研究者或开发者更迅速地验证、实现 Tool Learning 思想。

  • LangChain:一套广受关注的多语言框架,可对接数据库、搜索、其他常见 API,借助“Chain”式流程让大模型在调用工具的同时保留上下文信息。
  • Auto-GPT:强调让大模型“自主”发动下一个任务目标,通过持续调用外部接口实现多步目标达成,可把它视为一种“Agent”框架的代表作。
  • BabyAGI:同样面向自动化执行场景,提供了较为简洁的模块设计,用户可根据需求插拔新的工具或模块。
  • BMTools:支持“插件式”导入大量常见工具,如翻译、检索、天气 API 等,适合快速搭建雏形系统。
  • WebCPM:基于中文搜索、问答场景的框架,支持多轮交互检索。

这些框架普遍以可扩展性、易用性为设计目标,研究者只需在固定格式中注册工具接口,便能让大模型无缝“学会”调用该接口的参数,从而完成更复杂的推理或任务执行。

5.3 评测方法

最后,论文还就评测方法做了系统介绍,因为 Tool Learning 涉及任务规划、工具选择、工具调用、答案生成四个阶段,每个阶段都有不同的指标。

  1. 任务规划

    • 常测量大模型是否能正确判断出“要不要用工具”,或评估其子任务拆解的准确性、可行性,衡量指标可用精确率、召回率、人工打分等。
    • 部分研究会设计“通过率”或“Pass Rate”来判定在若干子任务场景下能否找到合适工具并顺利完成。
  2. 工具选择

    • 一般采用信息检索领域常见的Recall@K、NDCG 等做匹配准确度衡量;
    • 或者衡量是否找到了所有必需工具的集合(COMP@K),以保证完成任务不缺关键资源。
  3. 工具调用

    • 主要关注参数提取正确性调用格式是否合规:如调用参数是否全部填写正确,有没有越界或空缺;遇到报错能否自我修正;
    • 测量方式包括自动比对与人工复查,或统计成功调用率。
  4. 答案生成

    • 评估最终输出效果,如文本BLEU、ROUGE-L、Exact Match 等经典指标;
    • 若有特定决策场景(如设备控制),也会采用任务完成率或用户满意度等更高层次标准。

这些评测细分维度能让研究者清晰定位到模型在哪个环节出现了短板(如工具检索不佳、参数提取不匹配等),从而更有针对性地优化。


六、挑战与未来方向

论文在第六章指出,Tool Learning 这一新兴领域虽然前景广阔,但仍面临诸多实质挑战,并在实践落地时需要考虑以下关键问题。

  1. 高延迟

    • 当大模型需要与多个外部工具交互时,调用链条容易变长,加之大模型推理本身的速度瓶颈,整体响应可能显著变慢,影响用户体验。
    • 如何在调用最少工具保持高准确度低时延之间找到平衡,是核心技术难题。
  2. 评测的全面性与客观性不足

    • 现有多数评测仅局限于单一或少数指标,缺乏对真实复杂任务的深度模拟;
    • 同时缺乏大型、多样化的真实场景数据,对模型的比较研究往往难以全面、客观。
  3. 丰富与可维护的工具生态

    • 尽管已有不少公共 API,但实际场景中仍可能出现接口失效、描述不统一、权限或安全限制等问题;
    • 未来或需建立一个大规模、可持续更新管理的“工具超市”,供不同 LLM 动态选择并兼容。
  4. 安全性与稳健性

    • 若大模型错误调用金融或医疗等高风险接口,可能导致巨额损失;或遭到恶意注入(攻击者利用工具调用权限)。
    • 需探索合规、鉴权、风控等方面机制,增强模型自治能力与免疫力。
  5. 统一的 Tool Learning 框架

    • 目前大都集中在某一个阶段或针对某一些应用场景进行研究,不同方法间难以直观比较;
    • 建立一个“一站式”的统一框架,囊括任务规划、工具检索、调用适配、答案整合等环节,对于规模化和工业化应用十分重要。
  6. 真实世界场景下的大规模数据集

    • 大多基准仍属合成脚本或小规模测试,不能代表线上海量多元需求;
    • 亟须能采集真实人口输入、真实商业接口的真实任务数据,从而推进这项技术真正落地。
  7. 多模态方向的探索

    • 当前多模态 Tool Learning 研究尚少,如果但凡涉及语音、图像、视频等,如何对接更多形态工具让大模型跨模态理解与协同,是极具潜力的交叉领域。

七、总结

在第七章,论文对全文做了简要回顾,并概括了 Tool Learning 这一领域的整体进程与前景。总体来看:

  1. Tool Learning 的必要性:正确调用外部工具不仅能显著改善大模型的事实性和专业度,还能提升多模态、动态场景下的灵活性与执行能力。
  2. 基本四阶段与两大 Paradigm:从“任务规划——工具选择——工具调用——答案生成”的流水线上,衍生出“单次调用”或“多轮迭代”的两种主要范式,为研究者提供了整体技术框架。
  3. 评测与 Benchmark:工具学习的评价体系正日趋完善,各类数据集与工具库也层出不穷,但仍需更贴近真实世界的评测场景与可持续工具生态。
  4. 当前挑战与未来方向:高延迟、健壮性、安全性等尚未完全解决,多模态扩展与更统一的通用框架仍是重大研究蓝海。

总之,Tool Learning 为大型语言模型指明了一条可行有效的“增强之路” 。通过调用外部服务,LLM 不再局限于自身参数中所蕴藏的知识;而是不断吸收、利用人类世界广泛存在的知识、功能与算力,成为真正“通用的、可执行的人工智能代理(AI Agent)”。随更多开源项目落地与实际应用示范,Tool Learning 将在学术与工业领域释放更大潜能。


参考文献 [1] Changle QU, Sunhao DAI, Xiaochi WEI, et al. Tool Learning with Large Language Models: A Survey. arXiv:2405.17935v3, 2024.