AI Agent 工程 · 02
02.1 Tool Calling 的工作原理
理解模型如何提出工具调用建议,以及为什么参数校验、权限检查和错误处理必须留在应用程序中。
知识定位
前一节让模型输出规范数据;本节让规范数据对应到有限的系统能力。下一节会用本地模拟订单完成一次完整查询。
一句话定义
**工具调用(Tool Calling,也常称 Function Calling)**是:应用把可用函数的名称、参数格式和说明告诉模型;模型提出调用建议;应用验证后真正执行函数,再将结果返回给模型。
模型建议 query_order({ orderId: "XB-1024" })
→ 服务端校验格式、登录身份和访问范围
→ 订单服务执行或拒绝
→ 结果作为工具消息回到模型
→ 模型生成面向客户的解释
核心原理
模型从不“执行 JavaScript/Python 函数”。它只返回一项结构化请求。你的应用是执行者,也必须是裁判:允许哪些工具、参数是否有效、当前用户是否有权、结果是否需要脱敏、失败时如何提示。工具描述应当具体,例如 query_order 只读查询,而不是模糊的 run_anything。
外贸案例
跨境客服至少把 query_order 和 get_return_policy 分开:前者需身份和订单归属验证,后者可以公开。即使模型根据语言推测客户是订单拥有者,也不能代替会话认证。涉及退款、改地址的写操作还要增加业务状态检查、审计记录和人工审批策略。
实践任务
输入:为 query_order 写一份工具契约:参数、成功结果、失败结果、谁可调用。执行:列出两项服务端验证。预期输出:一张工具契约表。验收标准:契约中不存在真实密钥,也没有“模型判断后直接退款”。
主动回忆
工具返回“订单不存在”时,是模型错误、工具错误,还是正常业务结果?界面应怎样回答?
纸质笔记
- 必须记:模型提议,应用执行。
- 建议记:每个工具有最小权限、参数校验和明确失败结果。
- 不用记:工具调用响应的某一厂商字段名称。