Tool calling 概念

Tool calling(函数调用)是模型提出“请调用某个函数,参数是这些”、由应用执行函数并把结果回传的协作机制,是智能体连接外部能力的基础。

为什么需要

模型本身无法查询实时数据或直接执行动作。Tool calling 的分工是:模型根据上下文生成结构化的调用请求(函数名与 JSON 参数),应用决定是否执行、如何执行,再把结果交还模型生成最终回答。应用始终保留对动作的控制权。

核心概念

概念
含义
说明
tools 定义
在请求中声明函数的名称、描述与参数(JSON Schema)
描述与参数说明直接影响模型是否调用、如何填参
tool_choice
auto(默认,模型自行决定)、指定某个函数、none(不调用)
可强制调用某函数,或强制模型只输出文本
tool call
模型返回的调用请求,含调用 id、函数名与 arguments
arguments 为 JSON 字符串,应用需解析并校验
tool result
应用执行后以 role: tool 回传,并带上对应的 tool_call_id
回传后需再次调用模型,得到最终回答
parallel tool calling
一次响应中包含多个调用
需模型与部署类型支持

基本流程

  1. 携带 tools 与用户输入调用模型。
  1. 模型返回 tool call;应用据此调用自己的函数或 API。
  1. 应用把结果以 tool 消息追加到对话,再次调用模型,得到最终回答。
官方页面说明:Chat Completions 中的 functions 与 function_call 参数已弃用,应改用 tools 与 tool_choice。Responses API 的函数调用请求与响应格式不同,需分别按对应 API 文档实现。

与相邻概念对比

维度
Tool calling
MCP
Skills
工具定义在哪里
应用请求中声明的函数
外部 MCP 服务器暴露的 tools、resources、prompts
打包的指令、脚本与资源
谁执行
应用代码执行函数
MCP 客户端调用 MCP 服务器
智能体按任务需要使用
典型用途
应用内的自定义函数
跨应用复用外部系统的工具与数据
为专门任务提供可复用的做法与资源

限制与待核实

  • 工具(函数)描述长度上限为 1,024 字符(官方页面抓取时所见,2026-11-05 获取,待核实是否变化)。
  • 支持 function calling 的模型、API、部署类型与版本因目录而异,需在模型详情中逐一核对(待核实,2026-11-05 获取)。
  • 模型返回的 JSON 不一定总是合法,应用需要容错处理。
  • 安全建议(官方页面):校验模型生成的函数名与参数;只使用可信数据与工具;按最小权限授权;对会产生实际影响的操作,在执行前加入用户确认。

来源与核对

  • 来源:
  • https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/function-calling
  • https://learn.microsoft.com/en-us/azure/foundry/agents/overview
  • read_scope:正文已读(两页正文均已读取;Foundry 中具体的工具配置界面未在本页展开)。
  • 上述数字与参数均取自官方页面,记录日期 2026-11-05。
上一篇
智能体的组成与执行循环
下一篇
权限感知检索
Loading...
文章列表
分享AI实践与思考
入门
Microsoft Foundry
开发工具
治理与网络
观测与评测
工具与知识
模型与部署
Azure OpenAI
Azure AI Search
性能与基准
索引与分块
概念解释
快速上手
Foundry Tools
RAG 与知识工程
检索质量与评测
数据准备
智能体与工具
评测、观测与安全
企业架构与成本
成本与容量
架构
解决方案场景
文档与服务
知识与分析
样例与学习资源
附录