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 能执行 现实世界操作,而不仅是生成文本。
相关推荐
ZHE|张恒1 天前
设计模式(十二)代理模式 — 用代理控制访问,实现延迟加载、权限控制等功能
设计模式·代理模式
SakuraOnTheWay1 天前
《深入设计模式》学习(1)—— 深入理解OOP中的6种对象关系
设计模式
q***71851 天前
Java进阶-SpringCloud设计模式-工厂模式的设计与详解
java·spring cloud·设计模式
白衣鸽子1 天前
告别参数地狱:业务代码中自定义Context的最佳实践
后端·设计模式·代码规范
帅中的小灰灰2 天前
C++编程建造器设计模式
java·c++·设计模式
ZHE|张恒2 天前
设计模式(十)外观模式 — 提供统一入口,简化复杂系统的使用
设计模式·外观模式
howcode2 天前
女友去玩,竟带回一道 “虐哭程序员” 的难题
后端·设计模式·程序员
apigfly3 天前
深入Android系统(十三)Android的窗口系统
android·设计模式·源码
y***54883 天前
Java设计模式之观察者模式
观察者模式·设计模式
明洞日记3 天前
【设计模式手册010】组合模式 - 树形结构的优雅处理
java·设计模式·组合模式