Google 智能体设计模式:工具使用(函数调用)

工具使用模式概述

  • 前几章主要讨论了 链式、路由、并行化、反思 等内部信息流模式。
  • 要让 Agent 真正与现实世界交互,必须具备 工具使用能力
  • 工具使用通常通过 函数调用(Function Calling) 实现,使 LLM 能调用外部 API、数据库、服务,甚至执行代码。

工具调用流程

  1. 工具定义:描述工具的功能、名称、参数及类型。
  2. LLM 决策:基于用户请求和工具定义,决定是否调用工具。
  3. 函数调用生成:LLM 输出结构化数据(如 JSON),指定工具名和参数。
  4. 工具执行:框架拦截并执行实际函数。
  5. 结果返回:工具输出反馈给 Agent。
  6. LLM 处理:LLM 使用结果生成最终回答或决定下一步动作。

工具调用突破了 LLM 的训练数据限制,使其能访问实时信息、执行计算、操作用户数据或触发现实世界行动。

工具调用 vs 函数调用

  • 函数调用:调用预定义代码函数。
  • 工具调用:更广义,涵盖 API、数据库查询、甚至调用其他 Agent。
  • 这种视角让 Agent 成为 跨数字资源和智能体的编排者

框架支持

  • LangChain / LangGraph:提供工具定义与集成能力。
  • Google Agent Developer Kit (ADK):内置 Google 搜索、代码执行、Vertex AI 搜索等工具。
  • CrewAI:支持多 Agent 协作与任务分配。

实际应用与用例

  1. 信息检索

    • 工具:天气 API
    • 示例:用户问"伦敦天气如何",Agent 调用 API 返回实时天气。
  2. 数据库与 API 交互

    • 工具:库存查询 API
    • 示例:电商 Agent 查询产品库存。
  3. 计算与数据分析

    • 工具:股票 API + 计算器
    • 示例:计算买入股票的潜在利润。
  4. 通信发送

    • 工具:邮件 API
    • 示例:用户让 Agent 给 John 发邮件。
  5. 代码执行

    • 工具:代码解释器
    • 示例:运行 Python 代码并返回结果。
  6. 设备控制

    • 工具:智能家居 API
    • 示例:关闭客厅灯光。

工具使用让 LLM 从"文本生成器"变为能 感知、推理、行动 的智能体。

概览与经验法则

  • 是什么:LLM 本身与外部世界断开,工具使用是连接桥梁。
  • 为什么:解决 LLM 无法获取实时数据、执行操作的限制。
  • 何时用:当任务需要实时数据、私有信息、精确计算、代码执行或触发外部系统时。

关键要点

  • 工具使用(函数调用)是 Agent 与外部世界交互的核心模式
  • 流程:定义工具 → LLM 决策 → 生成调用 → 框架执行 → 返回结果 → LLM 整合。
  • 框架支持:LangChain、CrewAI、Google ADK。
  • 应用场景广泛:信息检索、数据库交互、计算分析、通信、代码执行、设备控制。
  • 工具使用让 Agent 能执行 现实世界操作,而不仅是生成文本。
相关推荐
__万波__15 小时前
二十三种设计模式(十三)--模板方法模式
java·设计模式·模板方法模式
⑩-18 小时前
Java设计模式-命令模式
java·设计模式·命令模式
AM越.18 小时前
Java设计模式超详解--状态设计模式
java·开发语言·设计模式
FreeCode19 小时前
智能体设计模式解析:ReAct模式
设计模式·langchain·agent
程序员爱钓鱼19 小时前
BlackHole 2ch:macOS无杂音录屏与系统音频采集完整技术指南
前端·后端·设计模式
syt_101319 小时前
设计模式之-观察者模式
观察者模式·设计模式
廋到被风吹走1 天前
【Java】常用设计模式及应用场景详解
java·开发语言·设计模式
Jaycee青橙1 天前
软件设计模式详解
设计模式
alibli2 天前
一文学会设计模式之结构型模式及最佳实现
c++·设计模式
电子科技圈2 天前
SiFive车规级RISC-V IP获IAR最新版嵌入式开发工具全面支持,加速汽车电子创新
嵌入式硬件·tcp/ip·设计模式·汽车·代码规范·risc-v·代码复审