Agent、工具调用、Memory、MCP 与工作流
面试问题 高级 重要度 5/5 面试就绪 提取阶段

Function Calling 的完整安全链路是什么?

模型只提出工具名与参数;应用校验结构、业务语义与权限,再执行。写操作需要确认绑定和幂等,结果未知先查状态,返回文本也不自动可信。

发布于 2026-08-31 · 更新于 2026-09-07

当前显示参考答案
本文目录

    Generative AI agent architecture。工具处于 Agent 与外部环境的边界,调用前需要参数校验、权限与执行隔离。

    图:工具处于 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 正确为何不能直接执行?

    格式正确不代表资源存在、参数合理或有权执行。

    重试如何防重复?

    稳定业务动作键、同键同参数、持久结果及对端幂等;未知结果先查询。

    工具返回恶意指令怎么办?

    不提升其指令优先级,配合权限、沙箱和网络边界限制实际影响。

    项目结合

    准备一个带副作用操作的完整时序:用户授权、参数校验、确认、幂等执行、审计和补偿。

    关联知识

    延伸复习

    继续阅读完整机制与案例。完成后回到本页,在不看答案的情况下重述并回答三个追问。

    输入关键词,查找全部技术文章。

      搜索范围:正文、标题、分类和标签