将工具与 Gemini API 搭配使用

工具扩展了 Gemini 模型的功能,使其能够采取行动、访问实时信息以及执行复杂的计算任务。模型可以使用标准请求-响应互动和 实时流式会话中的工具(使用 Live API)。

工具是模型可用于回答查询的特定功能(例如 Google 搜索或代码执行)。Gemini API 提供了一套全托管式内置工具,您也可以使用 函数 调用来定义自定义工具。

如需构建多步、以目标为导向的系统,请参阅智能体 概览。

可用的内置工具

工具 说明 使用场景
Google 搜索 以网络上的时事和事实为依据来提供回答,以减少幻觉。 回答有关近期事件的问题,使用各种来源验证事实。
Google 地图 构建可感知位置的助理,这些助理可以查找地点、获取路线并提供丰富的 Local Context。 规划包含多个停靠点的旅游行程,根据用户条件查找本地商家。
代码执行 允许模型编写和运行 Python 代码,以准确解决数学问题或处理数据。 解决复杂的数学方程式,准确处理和分析文本数据。
网址上下文 指示模型读取和分析特定网页或文档中的内容。 根据特定网址或文档回答问题,检索不同网页上的信息。
计算机使用(预览版) 让 Gemini 能够查看屏幕并生成操作,以与网络浏览器界面互动(客户端执行)。 自动执行基于 Web 的重复性工作流,测试 Web 应用界面。
文件搜索 为自己的文档编制索引并进行搜索,以启用检索增强生成 (RAG)。 搜索技术手册,根据专有数据回答问题。

如需详细了解与特定工具相关的费用,请参阅价格页面。

工具执行的工作原理

工具允许模型在对话期间请求执行操作。流程因工具是内置工具(由 Google 管理)还是自定义工具(由您管理)而异。

内置工具流程

对于内置工具(Google 搜索、Google 地图、网址上下文、文件搜索、代码执行),整个过程都在一次 API 调用中完成:

  1. 您 发送提示:“GOOG 最新股价的平方根是多少?”
  2. Gemini 确定需要使用工具,并在 Google 的服务器上执行这些工具(例如,搜索股价,然后运行 Python 代码来计算平方根)。
  3. Gemini 会根据工具结果发回最终答案。

自定义工具流程(函数调用)

对于自定义工具和计算机使用,您的应用会处理执行:

  1. 您 发送提示以及函数(工具)声明。
  2. Gemini 可能会发回结构化 JSON 以调用特定函数 (例如,{"name": "get_order_status", "args": {"order_id": "123"}}), 并且始终包含唯一的 id。
  3. 您 在应用或环境中执行该函数。
  4. 您 将函数结果(与函数调用具有相同的 id)发回给 Gemini。
  5. Gemini 使用这些结果生成最终回答或其他工具调用。

如需了解详情,请参阅函数调用指南。

组合使用内置工具和自定义工具的流程

对于组合使用内置工具和自定义工具(函数调用)的请求, 模型使用工具上下文循环来 协调不同环境中的执行:

  1. 您 发送提示并声明要启用的内置工具和自定义函数,并设置一个标志以启用组合支持。
  2. Gemini 执行内置工具,如果生成任何客户端函数调用,则将控制权交给用户(先执行哪个函数取决于提示和模型做出的决定)。它会发回包含以下内容的响应:
    • 工具调用的确认信息
    • 工具响应的结果(如果模型生成了两个并行函数调用,则此结果可能会在 JSON 之后显示)
    • 用于调用函数的结构化 JSON
    • 用于保留上下文的加密思想签名
  3. 您 在应用或环境中执行该函数。
  4. 您 返回 Gemini 响应的所有部分,以及函数调用结果。
  5. Gemini 使用所有组合上下文生成最终响应。

如需了解如何启用对内置工具和自定义工具组合的支持以及上下文循环的示例,请参阅工具组合指南。

结构化输出与函数调用

Gemini 提供了两种生成结构化输出的方法。当模型需要通过连接到您自己的工具或数据系统来执行 中间步骤时,请使用函数 调用。当您严格要求模型的最终响应遵循特定架构(例如用于呈现自定义界面)时,请使用 结构化输出。

使用工具的结构化输出

您可以将结构化输出与 内置工具组合使用,以确保以外部数据或 计算为依据的模型响应仍遵循严格的架构。

如需查看代码示例,请参阅使用工具的结构化输出 。