分享AI实践与思考
入门
上手
教程
基础
概念解释
Microsoft Foundry
开发工具
操作指南
参考
治理与网络
工具与知识
概念解释
操作指南
Agent Service
总览
概念解释
Azure OpenAI
API 与开发
总览
Azure AI Search
权限与安全
参考
检索概念
概念解释
快速上手
教程
Foundry Tools
其他与已退役
总览
概念解释
RAG 与知识工程
智能体与工具
MCP 与 Skills
操作指南
基础
评测、观测与安全
安全
评测
概念解释
参考
企业架构与成本
解决方案场景
样例与学习资源
附录
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 | 一次响应中包含多个调用 | 需模型与部署类型支持 |
基本流程
- 携带 tools 与用户输入调用模型。
- 模型返回 tool call;应用据此调用自己的函数或 API。
- 应用把结果以 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...