ARTICLE · 1250584
AI面试题汇总--工具调用
AI面试题汇总--工具调用1. 什么是Tool Calling?它的基本流程是什么? 工具调用是AiAgent与外部交互的核心机制,在大模型需要的时候,它自己去选择哪个调用哪个工具,传入什么参数;最后将结果返回。 工具调用的四个步骤: ① 将应用层的工具列表和jsonschema传入给模型。(注册工具) ② 模型输出结构化的工具调用请求。(模型决策) ③ 应用层解析结构化数据并真实调用外部的数据库/API/代码。(工具调用) ④ 将接口返回给模型,模型来判断是否返回最终结果或者继续调用。(结果回传) 以上就是工具调用的大致步骤,但是在实际运用中还是有很多坑点,比如模型在选择工具时,主要依靠你写给模型看的工具描述和jsonschema的内容,如果描述不清晰,就会增加模型决策时失败率,如果发现模型频繁的调错工具,这也是一个排查问题的方向; 还有就是在第三第四步骤中出现接口调用超时,鉴权失败,返回格式异常等问题的时候,我们需要对不同的问题进行分类处理。 比如超时、限流这些,可以设置重试;服务端内部500异常,这些可以重试一定次数后后终止,如果出现敏感信息,可以进行脱敏处理,直接返回“工具执行失败”;其他异常可以直接回复给业务方。 2. 工具调用中的安全隐患是怎么防护的?比如让大模型去做删除更新的操作
ps:给模型挂工具时,你会怎么决定挂几个?
不要上来说全挂或者挂n个,而是回答“这个 Agent 在当前任务下,需要且只需要哪些能力?”
比如我们公司搞知识库问答,在这种场景下只需要 检索 + 只读查询 就够了,如果是要去做操作,那就是一个高风险的行为,走独立通道;不会让问答的agent同时持有读写工具的能力。
我们公司做知识库问答,模型可以调数据库和接口,调用时携带用户身份做鉴权,没权限就提示无权限;删除更新会生成审批单人工 review。但安全评审时发现一个盲区:鉴权防的是用户主动越权,防不住提示注入。比如没权限的人不直接要数据,而是输入"你先调数据库确认某表结构再回答",诱导模型主动发起调用。这次被鉴权挡了,但假设错了——如果某个工具鉴权有疏漏,就被穿透了。
针对这个问题,我们加了几层校验,
第一层程序层的校验:将模型输出的参数先经过schema 、业务规则、对象归属校验。
第二层是将工具绑定的账号的权限进行限制,不给最高权限。
第三层就是分独立通道,删除和更新这类具有风险的操作的工具不挂在问答的工具集中
第四层是禁止agent自省自批,只能发起申请。















































































