什么是工具调用?Databricks解读AI Agent核心机制
译文 AI 逐段翻译
工具调用与函数调用
这两个术语密切相关,经常互换使用,但存在一个有意义的区别值得理解。
| 工具调用 | 函数调用 | |
|---|---|---|
| 范围 | 广泛的能力,包括API、数据库、代码执行、外部服务以及任何可调用的资源 | 特定机制,其中模型为预定义函数生成参数 |
| 上下文 | 在代理式AI框架中使用,其中模型编排跨多个工具的多步骤工作流 | 最初由OpenAI于2023年引入,用于描述函数调用的结构化输出生成 |
| 关系 | 总括概念 | 工具调用的一个子集 |
| 行业使用 | 随着AI代理能力的增强,行业已趋向于使用这个术语 | 仍用于一些API文档和遗留上下文中 |
函数调用是工具调用的起点。当OpenAI首次引入该功能时,它被定义为模型为开发者定义的函数生成结构化参数的方式。随着生态系统的成熟,代理开始编排涉及多个外部系统的更复杂的工作流,更广泛的术语“工具调用”成为标准。
实际上,如果你阅读的文档说“函数调用”,它描述的是相同的底层机制。Databricks在其文档和平台能力中支持这两个术语。要更深入地了解函数调用在实践中如何被评估,请参阅Databricks的函数调用基准。
AI工具调用的实际应用示例
工具调用已经在各行业的生产环境中运行。以下是组织使用它的具体示例。
客户支持代理
支持代理收到客户询问订单状态的咨询。代理调用工具查询订单管理系统,检索跟踪信息,并回复预计送达时间。如果客户想要更改收货地址,代理调用更新工具修改记录。每次工具交互都通过像Unity Catalog这样的平台进行治理和审计,该平台执行访问控制并维护从代理操作到源数据的血缘关系。
数据分析工作流
分析师要求AI代理比较本季度各地区的收入。代理调用SQL查询工具从湖仓中提取数据,调用代码执行工具计算增长率并生成图表,然后返回格式化的摘要。原本需要分析师30分钟手动查询和电子表格操作的工作,在一次对话中完成。
IT运维和监控
运维团队部署了一个监控基础设施健康状况的代理。当服务器的CPU使用率超过阈值时,代理调用诊断工具收集系统日志,调用告警工具通知值班工程师,并调用修复工具自动扩展资源。代理无需人工干预即可处理一线响应工作流。
企业搜索和知识管理
员工向内部AI助手询问公司的育儿假政策。代理调用检索工具搜索HR知识库,找到相关政策文件,并返回简洁的答案及全文链接。这种模式取代了在内网中搜索并阅读多个页面以找到特定答案的常见体验。
在Databricks上开始构建使用工具调用的AI代理
Databricks提供了一个完整的平台,用于通过Agent Bricks构建、部署和治理工具调用代理。据Databricks称,组织已经在该平台上构建了超过10万个代理,每年处理超过一千万亿个令牌。
Databricks如何支持工具调用
Agent Bricks原生支持模型上下文协议(MCP),这是工具集成的新兴开放标准。这使代理能够通过标准化接口安全地访问API、数据库和SaaS应用。MCP工具可以通过内置目录在组织内发现和共享,每次集成都通过Unity Catalog可见、授权和审计。
开发者可以通过多种方式将代理连接到工具:
- 托管MCP服务器用于Databricks数据源
- 外部MCP服务器注册为受治理的MCP服务
- Unity Catalog函数用于自定义逻辑和特定任务的工具
- 自定义工具使用基于Python的Agent SDK构建
Agent SDK处理工具执行、函数调用、多步骤工作流和会话状态管理。开发者定义代理可以使用哪些工具以及它在多轮对话中的行为。
快速入门
对于首次探索工具调用的团队,AI Playground提供了一个无代码沙盒,您可以选择LLM、添加工具并测试代理行为,然后导出代码。Agent Bricks支持流行的代理框架,包括LangGraph、CrewAI、Agno、Claude Code SDK和OpenAI Agent SDK,因此团队可以使用他们熟悉的框架进行构建。
治理从一开始就内置。代理治理和数据治理直接在Unity Catalog中管理,对模型、工具和连接应用基于角色的访问控制。针对提示注入防护、敏感数据检测和内容过滤的组织级策略在单一控制平面内配置。
要在您自己的数据上开始构建和测试工具调用代理,请探索Agent Bricks和Databricks代理工具框架。
常见问题
AI中的工具调用是什么意思?
工具调用是AI模型调用外部工具、API或系统以执行超出文本生成范围的任务的能力。它允许模型检索实时数据、执行代码并触发外部应用程序中的操作。
工具调用和函数调用有什么区别?
函数调用是工具调用的一个子集。函数调用特指模型为预定义函数生成结构化参数。工具调用是更广泛的概念,涵盖函数调用以及API集成、数据库查询、代码执行和其他外部交互。
LLM中的工具调用是如何工作的?
支持工具调用的LLM遵循一个循环:它识别用户的请求何时需要外部工具,从可用工具中选择适当的工具,生成带有正确参数的结构化请求,然后将工具响应纳入最终答案。模型不直接执行工具,而是生成结构化输出,由应用层来执行。
哪个LLM最适合工具调用?
工具调用的性能因模型和用例而异。伯克利函数调用排行榜(BFCL)是评估各模型工具调用可靠性的最广泛引用的基准。Databricks支持多个LLM提供商,包括来自OpenAI、Anthropic、Google和Meta的模型,因此团队可以根据特定需求选择和比较模型。
AI工具调用和MCP有什么区别?
工具调用是一种能力。MCP(模型上下文协议)是一个标准化层,用于描述、发现和调用工具。MCP提供一致的接口,使代理无需自定义集成代码即可连接到任何兼容MCP的工具。Databricks Agent Bricks原生支持MCP,用于受治理的工具访问。
为什么工具调用对AI代理很重要?
没有工具调用,AI代理仅限于基于训练数据生成文本。工具调用赋予代理行动的能力:查询数据库、调用API、发送消息、执行代码和触发工作流。这是将语言模型转变为能够完成现实世界任务的自主AI代理的核心机制。