Google 智能体设计模式:工具使用(函数调用)
工具使用模式概述
- 前几章主要讨论了 链式、路由、并行化、反思 等内部信息流模式。
- 要让 Agent 真正与现实世界交互,必须具备 工具使用能力。
- 工具使用通常通过 函数调用(Function Calling) 实现,使 LLM 能调用外部 API、数据库、服务,甚至执行代码。
工具调用流程
- 工具定义:描述工具的功能、名称、参数及类型。
- LLM 决策:基于用户请求和工具定义,决定是否调用工具。
- 函数调用生成:LLM 输出结构化数据(如 JSON),指定工具名和参数。
- 工具执行:框架拦截并执行实际函数。
- 结果返回:工具输出反馈给 Agent。
- LLM 处理:LLM 使用结果生成最终回答或决定下一步动作。
工具调用突破了 LLM 的训练数据限制,使其能访问实时信息、执行计算、操作用户数据或触发现实世界行动。
工具调用 vs 函数调用
- 函数调用:调用预定义代码函数。
- 工具调用:更广义,涵盖 API、数据库查询、甚至调用其他 Agent。
- 这种视角让 Agent 成为 跨数字资源和智能体的编排者。
框架支持
- LangChain / LangGraph:提供工具定义与集成能力。
- Google Agent Developer Kit (ADK):内置 Google 搜索、代码执行、Vertex AI 搜索等工具。
- CrewAI:支持多 Agent 协作与任务分配。
实际应用与用例
-
信息检索
- 工具:天气 API
- 示例:用户问“伦敦天气如何”,Agent 调用 API 返回实时天气。
-
数据库与 API 交互
- 工具:库存查询 API
- 示例:电商 Agent 查询产品库存。
-
计算与数据分析
- 工具:股票 API + 计算器
- 示例:计算买入股票的潜在利润。
-
通信发送
- 工具:邮件 API
- 示例:用户让 Agent 给 John 发邮件。
-
代码执行
- 工具:代码解释器
- 示例:运行 Python 代码并返回结果。
-
设备控制
- 工具:智能家居 API
- 示例:关闭客厅灯光。
工具使用让 LLM 从“文本生成器”变为能 感知、推理、行动 的智能体。
概览与经验法则
- 是什么:LLM 本身与外部世界断开,工具使用是连接桥梁。
- 为什么:解决 LLM 无法获取实时数据、执行操作的限制。
- 何时用:当任务需要实时数据、私有信息、精确计算、代码执行或触发外部系统时。
关键要点
- 工具使用(函数调用)是 Agent 与外部世界交互的核心模式。
- 流程:定义工具 → LLM 决策 → 生成调用 → 框架执行 → 返回结果 → LLM 整合。
- 框架支持:LangChain、CrewAI、Google ADK。
- 应用场景广泛:信息检索、数据库交互、计算分析、通信、代码执行、设备控制。
- 工具使用让 Agent 能执行 现实世界操作,而不仅是生成文本。