本章目录
阅读过程中可按 Ctrl + Z 快速返回当前页面的本章目录;也可以点击右下角按钮。
本章思维导图
知识流向:先完成左侧基础,再进入中间机制,最后用右侧工程控制把它变成可上线能力。节点可直接点击跳转。
模型提出工具请求
按照本模块顺序完成以下知识点,再进入下一模块。
T01工具调用的执行边界
模型API能力 Function Calling也叫Tool Calling。开发者把工具名称、说明和参数Schema随模型请求传入;模型返回“建议调用哪个工具以及参数”,真正的函数由你的后端执行。
T02工具 Schema 与字段职责
tools = [{
"name":"get_order",
"description":"按订单号查询当前登录用户自己的订单",
"parameters":{
"type":"object",
"properties":{"order_id":{"type":"string"}},
"required":["order_id"]
}
}]| 部分 | 谁写 | 作用 |
|---|---|---|
| name | 开发者 | 稳定的机器标识,后端据此路由到函数 |
| description | 开发者 | 告诉模型何时使用;描述模糊会选错工具 |
| parameters Schema | 开发者 | 限制参数外形;不保证订单属于当前用户 |
T03完整工具调用循环
call_id:用于把某次工具结果对应回某次工具请求,不能在并行调用时混淆。
程序控制执行风险
按照本模块顺序完成以下知识点,再进入下一模块。
T04参数、业务与权限三层校验
工具参数即使符合JSON Schema,也是不可信输入。订单号可能不存在,金额可能超限,用户可能试图查询别人的订单。
1. Schema校验:order_id必须是字符串 2. 格式校验:符合公司订单号规则 3. 身份绑定:user_id只取登录会话,不取模型参数 4. 资源归属:订单必须属于该user_id 5. 状态规则:只有paid状态可申请退款 6. 风险控制:金额过大转人工审批
T05读工具和写工具必须区别对待
读工具
查询订单、查库存、算运费。通常可自动执行,但仍需权限、超时和脱敏。
写工具
退款、发邮件、删数据、改权限。会改变现实状态,默认要求确认、幂等键、审计和更严格授权。
默认策略:低风险只读工具可自动;高风险写工具先展示将要执行的对象和影响,让用户或人工明确确认后再执行。
T06幂等:重试不能退款两次
业务执行性质 幂等表示同一个业务请求执行一次或重复执行多次,最终效果相同。后端为写操作生成idempotency_key,并在业务数据库保存执行结果。
idempotency_key = "refund:A10086:request-7821" 第一次调用:创建退款R9001并保存结果 网络超时后重试:发现该key已成功,直接返回R9001 不会再创建第二笔退款
幂等不是让模型记住“我调用过了”,而是由权威业务系统用唯一键保证。
T07超时、重试与部分成功处理
| 情况 | 程序做法 | 不能做 |
|---|---|---|
| 查询超时 | 有限重试,仍失败则说明暂时无法查询 | 让模型猜订单状态 |
| 写入返回超时 | 先用幂等键查询是否已成功,再决定重试 | 直接再次退款 |
| 多工具部分成功 | 记录每步状态,必要时补偿或人工处理 | 把整个流程笼统标成失败后全部重跑 |
| 工具返回恶意文本 | 视为外部不可信数据,限制其指令效力 | 把工具文字当System规则 |
T08并行调用和串行调用
两个互不依赖的只读查询可以并行,例如同时查订单和物流;“先查订单再退款”必须串行,因为第二步依赖第一步状态。并行能降延迟,但要为每个call_id独立记录结果、超时和错误。
可并行:get_order(A10086) + get_logistics(A10086) 必须串行:get_order → check_refund_rule → confirm → create_refund
标准化接入能力
按照本模块顺序完成以下知识点,再进入下一模块。
T09MCP 与 Function Calling 的关系
开放通信协议 MCP是Model Context Protocol,中文可理解为“模型上下文协议”。它不是模型,也不是数据库;它规定AI应用怎样发现并调用外部服务器提供的工具、资源和提示模板。
Host
承载AI体验的应用,负责权限、用户同意和上下文汇总。
Client
Host里连接某个MCP Server的协议客户端。
Server
暴露特定工具或资源的服务,例如CRM服务器。
Tools / Resources / Prompts
可执行能力、可读取内容、可复用提示模板。
关系:Function Calling是模型API表达“我要调用函数”的机制;MCP是应用与外部能力提供方之间的标准连接方式。Host可把MCP工具转换成模型可见的工具定义。
T10本章可靠架构
模型负责选择和填写,程序负责授权和执行,业务系统负责事实和幂等。
本章总结:从哪里来,解决什么,为什么继续
本章参考的权威资料
课程讲的是跨厂商通用工程方法;具体参数会更新,真正开发时再以所选厂商最新官方文档为准。