Function Calling 的完整安全链路是什么?
模型只提出工具名与参数;应用校验结构、业务语义与权限,再执行。写操作需要确认绑定和幂等,结果未知先查状态,返回文本也不自动可信。
发布于 2026-08-31 · 更新于 2026-09-07
本文目录

图:工具处于 Agent 与外部环境的边界,调用前需要参数校验、权限与执行隔离。 来源:Generative AI agent architecture,作者 Marxav,许可 CC BY-SA 4.0。
考察意图
确认候选人不会把模型输出直接当成可信命令执行。
回答前自测
- JSON 正确为何不能直接执行?
- 重试如何防重复?
- 工具返回恶意指令怎么办?
30 秒回答
模型只提出工具名与参数;应用校验结构、业务语义与权限,再执行。写操作需要确认绑定和幂等,结果未知先查状态,返回文本也不自动可信。
评分点
提议与执行、两类校验、确认幂等、结果可信度。
90 秒回答
模型只根据工具 Schema 生成“想调用什么和参数是什么”,真正执行由应用负责。应用先做 Schema 和业务语义校验,再检查用户身份、资源权限、额度和风险;高风险操作要求人工确认。执行使用超时、最小权限和幂等键,结果记录审计并作为不可信内容返回模型。失败需要区分可重试、需改参和不可恢复,停止循环。工具描述、参数、执行身份和结果必须在日志中关联,才能回放和追责。
深入解释
三道不同检查
创建工单时 schema 检查参数类型;业务校验检查项目存在、日期有效;授权检查会话用户能否创建。模型生成 user_id 或 admin 标志不能改变可信身份。
确认与参数绑定
用户确认具体动作及最终参数,执行前若参数改变,旧确认不能继续沿用。保存动作 ID、参数摘要、范围和有效期。提交由程序完成,不解析模型自由文本作为主机命令。
超时不代表没执行
创建成功但响应丢失时,先查动作状态或复用原幂等键。去重需持久化并跨实例有效。工具成功只是一部动作,最终任务还需检查外部结果。回注结果限定大小与敏感信息,将嵌入指令当作数据处理。
工程权衡
严格确认降低自动化程度,却限制不可逆损失。工具粒度过粗扩大权限,过细增加规划和调用成本。
常见错误回答
认为 JSON Schema 验证通过就可以执行,或把 MCP 当成自动解决权限与可信度的协议。
连续追问
JSON 正确为何不能直接执行?
格式正确不代表资源存在、参数合理或有权执行。
重试如何防重复?
稳定业务动作键、同键同参数、持久结果及对端幂等;未知结果先查询。
工具返回恶意指令怎么办?
不提升其指令优先级,配合权限、沙箱和网络边界限制实际影响。
项目结合
准备一个带副作用操作的完整时序:用户授权、参数校验、确认、幂等执行、审计和补偿。
关联知识
延伸复习
继续阅读完整机制与案例。完成后回到本页,在不看答案的情况下重述并回答三个追问。