分享AI实践与思考
入门
上手
教程
基础
概念解释
Microsoft Foundry
开发工具
操作指南
参考
治理与网络
工具与知识
概念解释
操作指南
Agent Service
总览
概念解释
Azure OpenAI
API 与开发
总览
Azure AI Search
权限与安全
参考
检索概念
概念解释
快速上手
教程
Foundry Tools
其他与已退役
总览
概念解释
RAG 与知识工程
智能体与工具
MCP 与 Skills
操作指南
基础
评测、观测与安全
安全
评测
概念解释
参考
企业架构与成本
解决方案场景
样例与学习资源
附录
为 agent 添加工具
本页说明为智能体添加工具的两种方式:推荐的 Toolbox 方式,以及在 SDK 中定义函数工具(函数调用)的方式。假定读者已了解智能体与 Toolbox 的基本概念。
适用场景
- 为提示词智能体或托管智能体添加网页搜索、MCP 服务器、OpenAPI 等工具,并希望多个智能体共用。
- 为智能体添加只在应用内执行的自定义函数,例如查询内部系统或执行计算。
前提
- 有 Foundry 项目,并对开发者身份与智能体身份授予 Foundry User 角色(按场景还可能需要终端用户的 OAuth 身份)。
- 已安装对应语言的 SDK,例如 Python 的
azure-ai-projects。
- 工具所在区域与模型的支持情况:待核实(2026-11-05 获取),以官方“区域与模型兼容性”说明为准。
方式一:使用 Toolbox(推荐)
- 创建工具集版本,把需要的工具(如 MCP 服务器、网页搜索)放入同一个版本。每个工具都应填写
description,帮助模型选择工具。
- 首个版本自动成为默认版本;后续版本需要测试后手动提升为默认。
- 复制工具集的消费端点(consumer endpoint),在托管智能体中以 MCP 客户端方式接入。
- 验证:用特定版本的端点列出工具,再发送一条会触发目标工具的请求。
方式二:函数调用(function calling)
函数调用由应用在本地执行,流程是:模型请求调用函数,应用执行函数,再把结果回传给智能体。
- 定义函数的名称、描述与参数(JSON Schema),并把必填字段写入
required。
- 在创建智能体时把函数工具放入
tools。
- 发送用户问题,检查输出中是否有
function_call类型的项。
- 本地执行函数,用
function_call_output把结果回传到同一会话。
- 获取智能体基于函数结果的最终回答。
两种方式的对比
项目 | Toolbox | 函数调用 |
执行位置 | 工具在平台侧或由工具集代理执行 | 在应用本地执行 |
复用 | 多个智能体共用同一端点 | 通常绑定在单个智能体定义中 |
配置入口 | 工具集版本,可用 SDK、REST、Azure Developer CLI 或 VS Code 扩展 | 智能体定义中的函数工具,需用 SDK 或 REST;门户不能增删改函数定义 |
认证 | 集中配置,支持 Entra、OAuth 透传等 | 由应用自行管理 |
验证
- 方式一:列出的工具与预期一致,一次请求确实调用了目标工具。
- 方式二:首次响应包含
function_call项;应用回传结果后,智能体给出自然语言回答。
- 如启用了追踪,可在追踪中确认工具调用发生。
排错
现象 | 可能原因 | 处理 |
只有 function_call,没有最终回答 | 未回传工具输出 | 执行函数后用同一会话再次调用 |
模型从不调用函数 | 函数未加入智能体定义,或名称、描述不清 | 确认已添加,改进名称与描述 |
参数不是合法 JSON | 模型生成的参数与 Schema 不符 | 校验 Schema,应用侧做解析容错 |
必填参数缺失 | Schema 未声明 required | 补充 required,支持时设置 strict |
工具输出失败,提示运行已过期 | 运行创建后有 10 分钟的时限 | 尽快回传输出;慢操作改为返回状态后轮询 |
工具集报 invalid_payload | 同一类型的多个工具未设置唯一 name | 为每个实例设置不同的 name |
安全注意
- 把工具参数与工具输出视为不可信输入,使用前校验与清理。
- 不要在工具输出中放入密钥、令牌或连接字符串,只返回模型需要的数据。
- 为身份分配最小权限。
- 有写入或删除等副作用的操作,应要求用户明确确认。
限制与待核实
- 工具集与函数调用的预览状态、各工具的区域与模型支持:待核实(2026-11-05 获取)。
- 运行 10 分钟时限为官方函数调用页面的说明,待核实是否适用于所有运行形态。
- 官方工具集页面的完整操作步骤较长,本页只摘录主线,具体命令以官方页面为准。
来源与核对
- 来源:Create and manage a toolbox in Microsoft Foundry(https://learn.microsoft.com/en-us/azure/foundry/agents/how-to/tools/toolbox)
- 来源:Use function calling with Microsoft Foundry agents(https://learn.microsoft.com/en-us/azure/foundry/agents/how-to/tools/function-calling)
- 来源:What is Toolbox in Microsoft Foundry?(https://learn.microsoft.com/en-us/azure/foundry/agents/concepts/toolbox-overview)
- 核对范围:正文已读(函数调用页正文已读;工具集操作页已读前置条件、版本与排错相关章节,未逐段核对全部代码)。
上一篇
可观测性概览
下一篇
Toolbox 与工具
Loading...