跳至内容

什么是工具调用?AI 集成完整指南

发布时间
最近更新

收听收听本文

AI 模型会基于训练数据进行推理和扩展,为用户提供回答。但当请求超出这些初始信息的范围时,该怎么办?

工具调用可弥补知识和功能上的缺口,让模型向外部工具和系统请求额外帮助,例如触发发送更新等操作,或从数据仪表板获取内容。

本文将介绍什么是工具调用、它与函数调用有何区别,以及 ElevenAgents 如何将工具调用用于 对话式 AI 工作流

摘要

  • 工具调用让 AI 模型能够触发操作,并从外部工具和 API 请求信息。
  • AI 模型不会主动运行工具,而是由应用层执行请求。
  • 工具调用遵循 5 个步骤,同一请求中可能会激活多个不同工具。
  • 工具调用可用于信息检索、代码执行、设备控制,以及工作流和流程交互。
  • ElevenAgents 支持语音智能体使用工具调用,让 对话式 AI 助手代你完成任务。

什么是工具调用?

工具调用是 AI 模型的一项能力,使其能够与其他系统交互。这类系统可以是数据库、API、软件,或任何能让模型执行超出训练数据范围功能的对象。

工具调用会生成一个请求,让第三方系统执行任务,通常采用 JSON 格式。AI 系统可通过工具调用查询外部系统、获取实时信息、执行命令或开展操作。调用工具的能力让 智能体式 AI 能够访问外部资源并动态使用第三方系统,从而完成更复杂或多步骤的任务。

调用工具的能力,正是智能体式 AI 助手与只能基于已有知识回答的 LLM 的区别所在。

为什么工具调用很重要?

大语言模型通过海量历史数据训练来发展能力。虽然这让它们能够强大地回应用户并提供信息,但它们很难超越初始训练上下文和信息语料库。如果你要求 LLM 提供超出其范围或能力的信息,它们就需要外部帮助。

工具调用正是这种外部帮助,让 LLM 能从其他来源获取最新数据,或接入企业已经运行的实时系统,例如第三方 API 或内部数据库。

工具调用可为 AI 系统带来许多优势:

  • 减少幻觉:依靠直接工具调用验证信息的系统,基于证据和数据工作,而非可能编造信息或根据训练数据推测。
  • 更强的自主性和能力范围:支持工具调用的 LLM 可完成不止提供信息的操作。
  • 实时回答:通过查询实时数据源,LLM 可从数据库或 API 调用获取实时数据,为你提供仅凭训练数据无法获得的最新信息。
  • 自动化多步骤流程:原本需要与多个不同系统交互的任务,可通过支持工具调用的 LLM 简化为一个提示词。无需离开交互窗口,它就能查询其他系统并为你获取信息。

Gartner 预测,到 2026 年底,40% 的企业应用 将集成任务专用型 AI 智能体,而 2025 年这一比例还不足 5%。能够为任务调用正确工具的模型,可增强自身能力,让用户通过自然语言提示完成更多工作。

工具调用与检索增强生成(RAG)

检索增强生成和工具调用都涉及搜索模型训练数据所提供上下文以外的数据,但侧重点不同。RAG 主要用于静态内容,包括文章、文档,以及 连接到模型的知识库 等信息。它会为 LLM 提供额外上下文,帮助生成更全面的回答。

工具调用用于动态获取信息,包括持续变化的实时系统。RAG 可以获取某一年的定价 PDF,而工具调用则能立即从已连接的系统获取实时定价。大多数 LLM 系统会结合使用这两种能力,因为在许多使用场景中,获取知识库和使用实时工具都很重要。

RAG retrieves static knowledge; tool calling accesses live systems; most systems use both.

工具调用如何运作?

无论 AI 智能体调用的是内部应用还是外部模型,工具调用通常都遵循相对标准的模式。

以下是工具调用工作方式的概览:

  1. 识别何时需要工具调用
  2. 从已连接系统中选择正确工具
  3. 创建并发送请求
  4. 执行请求并返回结果
  5. 模型响应或采取进一步操作

下面逐步详细说明。

Five-step tool-calling flow from prompt to action; model requests, application executes.

第 1 步:识别何时需要工具调用

输入自然语言请求后,模型会读取提示词,并判断是否需要工具提供外部帮助。与训练数据相符的问题无需外部帮助,但超出模型上下文的问题则需要。

例如,“我们在 Salesforce 的第二季度销售额是多少?”以及“我们的 Shopify 商店当前有多少活跃用户?”都需要工具调用。

第 2 步:从已连接系统中选择正确工具

模型可访问的每个工具都有一个架构:名称、说明其功能的自然语言描述,以及可接受的参数。模型会将请求与这些描述逐一比对,找出适合任务的正确工具。尤其当智能体拥有大量工具目录时,它会运行内部流程进行筛选,找出相关工具;因为手动遍历数百个工具会大幅拖慢查找正确工具的速度。

第 3 步:创建并发送请求

选择正确工具后,模型会构建结构化调用,通常采用 JSON 格式。该调用会定义所调用的工具及请求包含的内容。例如,查询 Bogota 的天气可能如下:{"name": "get_weather", "arguments": {"city": "Bogota"}}。模型输出该调用后,应用层会在下一步执行它。

第 4 步:执行请求并返回结果

应用层接收模型请求,运行工具或调用 API 来执行请求。随后,响应会作为更多上下文传回原始模型,模型再据此生成对用户的回复。

第 5 步:模型响应或采取进一步操作

模型获得工具调用返回的数据或信息后,可以使用自然语言回复用户,也可以确认已完成特定操作。后者适用于用户想完成的是操作型任务,例如向特定平台发布消息或向数据库录入数据。

如果任务需要更多步骤,模型会相应重复步骤 1 至 4。更复杂的请求可能需要调用多个工具后,才能生成最终回复。例如,如果用户想查询当前汇率后再进行货币兑换,模型就必须按顺序执行多个步骤来达成目标。

工具调用的类型

只要模型为获取超出其基础训练范围的数据而调用外部系统,就属于工具调用。实际流程可能会调用多个不同系统,不同使用场景也会用到不同类型的工具。

  • 信息检索:从 API、已连接的企业数据库或搜索索引等外部来源获取数据,以回答超出模型原始训练上下文范围的问题。
  • 代码执行:通过代码环境运行脚本、数据转换流程或计算。这通常用于分析数据,而不只是描述分析在实际中可能如何进行。
  • 流程自动化:指 API 调用在另一系统中触发特定工作流,例如与 CMS 交互、安排会议、更新记录、发送通知,或将请求转化为已完成的操作。这在为个人执行任务的智能体式系统中尤其常见。
  • 设备和系统控制:与其他设备、电话系统、智能家居助手等进行交互的工具调用,都属于这一类别。

工具调用往往不会只属于其中一个类别。你可能会使用多步骤的链式调用,在连续流程中结合上述多个类别。例如,可以先获取客户订单状态,再触发退款,接着更新内部 CRM,最后将信息转告给人工客服。

Four types of tool calling: retrieval, code, automation, and device control, often chained.

工具调用与函数调用:主要区别

工具调用比函数调用涵盖的类别更广,涉及更大的范围和更多样的潜在能力。函数调用是指模型生成一个带参数的结构化调用,用于调用预定义函数。

下表列出了工具调用与函数调用的区别。

Function calling
Overall scope
A model that can generate a function call for a specific predetermined action
Origin
OpenAI introduced the term back in 2023
Relationship
A narrow subset of tool calling
Commonly found
Within older API documentation or legacy parameters
Tool calling
Overall scope
A wide capability that relates to calling APIs, executing code, and interacting with external systems
Origin
The wider industry term that has now become popularized, stemming from a model’s ability to interact with multiple external tools
Relationship
A broad concept that includes function calling
Commonly found
Modern documentation used by most AI companies
Function calling is a narrow subset of tool calling; terms are often used interchangeably.

工具调用有多可靠?

工具调用的可靠性完全取决于发起调用的模型。同样,失败在不同系统中的表现也可能不同。例如,一个 AI 模型在工具调用失败后可能直接产生幻觉式回答,另一个则可能提示用户重试。

Berkeley Function Calling Leaderboard 是一个常被引用的排行榜,用于比较不同模型在工具调用方面的表现。虽然它被称为函数调用排行榜,但实际上会通过测试模型的 API 调用、从数据库查询中收集信息、并行运行调用或响应多轮对话,来衡量工具调用效率。

模型会在总成本、网页搜索能力、多轮对话准确性、幻觉测量、延迟等方面接受评估。如果你要运行复杂或多步骤工作流,了解哪些模型具备更全面的工具调用能力会很有帮助。

使用 ElevenAgents 开始工具调用

在 ElevenAgents 中,你可以从多个模型中选择,让工作负载匹配 最合适的底层模型语音智能体 可调用工具、查询订单、核对记录、更新数据库,并从 API 收集信息。

你可以调用多种工具,包括用于调用外部 API 的 webhook 工具、用于在应用或浏览器中触发操作的客户端工具、用于自定义服务器端逻辑的代码工具、连接外部工具服务器的 MCP 工具,以及用于转接人工客服等内置操作的系统工具。

ElevenLabs 还提供 预构建原生连接器,可连接 Zendesk、HubSpot、Salesforce 等众多服务,无需配置自定义设置。了解更多 ElevenAgents,或注册,立即开始构建支持工具调用的语音智能体。

常见问题

相关内容

用高质量 AI 音频创作