简要回答
在 prompt 中声明工具 JSON Schema,模型生成 tool_calls 结构化输出,宿主执行函数后将 observation 塞回 messages,模型据此继续回答。
标准回答
调用闭环
- 定义
tools=[{name, description, parameters(schema)}]随请求传给模型。 - 用户提问。
- 模型返回 tool_calls(要调的函数及参数)或最终文本。
- 若有 tool_calls,应用层执行函数并把结果作为 tool message 追加回 messages。
- 模型基于工具结果生成最终回答。
关键点:模型本身不执行函数,它只输出结构化的调用意图,真正执行在宿主侧。
为什么模型能稳定产出合法 JSON
- 训练:用工具调用轨迹做 SFT,让模型学会何时调、怎么填参数。
- 推理:用 constrained decoding 约束输出符合 schema,保证 JSON 合法。
工程实践
工具描述要清晰无歧义;参数校验放在应用层;调用失败时把错误信息回传让模型重试;可并行多个 tool calls 提升效率。
常见误区
⚠️ 常见踩坑
以为是模型直接执行了函数——模型只生成调用意图,执行与鉴权都在应用层,因此参数必须在应用层校验、不能信任模型输出;另一误区是工具描述写得含糊,模型选错工具或填错参数,描述质量直接决定调用准确率。
追问
追问 1:OpenAI tools 和 MCP 如何配合?
题库专题:什么是 MCP(Model Context Protocol)?解决什么问题?OpenAI Function Calling 是模型 API 层的结构化工具调用;MCP 是工具提供方的协议与运行时。常见模式:Host 从 MCP Server 拉取 tool schema,转成 OpenAI tools 格式注入请求;执行时 Host 调 MCP Server,再把结果塞回 messages 完成闭环。
题库延伸:与本追问相关的专题题 → 什么是 MCP(Model Context Protocol)?解决什么问题?
追问 2:如何防止模型调用危险工具?
工具层白名单与参数 schema 校验;高危操作(删库、转账)强制人工确认;沙箱执行与最小权限 IAM;速率限制与审计;模型侧 system prompt 约束;对 tool output 做策略检查后再展示给用户。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📰 AI 资讯
🛠️ AI 工具
- LangChain
最流行的 LLM 应用开发框架,137K+ stars。提供链式编排、RAG 检索增强生成、Agent 构建等核心能力,覆盖 Python 和 JavaScript 双语言生态,是构建 LLM 应用的基础设施
- MCP Playwright
Playwright 浏览器自动化的 MCP 实现,将成熟的 Playwright 测试框架能力通过标准 MCP 协议暴露给 AI Agent。支持网页抓取、表单自动化、E2E 测试场景、SPA 应用交互等完整浏览器自动化能力。5,400+ GitHub Star,相比原生浏览器 MCP 方案,Playwright 的跨浏览器支持(Chromium/Firefox/WebKit)和成熟 API 使其在复杂场景下更可靠
- AutoGen / AG2
微软开源对话式多 Agent 框架,54,000+ GitHub stars(最高),强项是代码沙箱和迭代调试,多个 Agent 通过对话协作完成复杂编程任务,MIT 协议
- crewAI
角色扮演 AI Agent 编排框架,49,411+ stars。通过角色分配让多个 Agent 协作完成复杂任务,支持工具调用、任务委派、结果审核。是构建 Multi-Agent 系统的最流行框架。