真实面经题目 · 原创解析

Agent 中多个工具语义相近且副作用不同,如何设计工具命名、description 和 JSON Schema,避免误选、漏参和高风险误触发?

这题考 Function Calling/Agent 工具契约设计。回答要讲工具命名做候选粗筛,description 划清使用/禁用边界,JSON Schema 约束参数和缺失处理,再配合权限、示例和评测降低误调用。

出现于:阿里巴巴 · AI 应用开发

60 秒回答模板

工具注册质量不是只靠一句 description。命名要用稳定的业务动作和对象帮助模型先缩小候选,description 要说明何时用、何时不用、调用副作用和相似工具差异,JSON Schema 则用类型、枚举、必填和条件约束把参数空间收紧。 命名先做粗筛:工具名应使用稳定业务动作和对象,例如 search_order、update_order_address、cancel_order_requires_confirmation。避免 getInfo、process、handle 这类泛名,也避免同义词堆叠造成候选混淆。 description 写使用边界:description 要明确业务意图、适用场景、禁止场景、调用前置条件、返回结果含义,以及与相似工具的差异。边界不清时,模型会把读操作、写操作和审批操作混成一个候选。 schema 约束参数空间:JSON Schema 里的字段要有自然语言含义、类型、必填条件、枚举、格式、默认值策略和来源说明。用户没给订单号、地址、金额等关键字段时,模型应追问或拒绝执行,而不是猜参数。 副作用和确认前置:写操作、资金、消息发送、删除、审批等工具要在命名、description 和 schema 中共同暴露风险等级、确认要求和幂等键。模型只负责选择和填参,真正执行仍要由服务端权限和业务规则校验。 用评测迭代工具契约:构造工具选择测试集,覆盖相似意图、缺字段、多轮补参、高风险误触发和工具返回失败。记录误选、漏选、参数错、重复调用和无意义调用,再决定改名、改 description、收紧 schema 或拆分工具。 最后要把方案落到可验证的指标、失败兜底和迭代闭环上。面试里不要只讲概念名词,要说明边界、取舍、数据来源、线上观测和出问题后的回滚或人工介入。

考点 命名粗筛
难度 真实面经题
回答目标 让面试官看到你能把工具描述设计成可评测、可治理的 Agent 接口契约。

深入解析

01

命名先做粗筛

工具名应使用稳定业务动作和对象,例如 search_order、update_order_address、cancel_order_requires_confirmation。避免 getInfo、process、handle 这类泛名,也避免同义词堆叠造成候选混淆。

02

description 写使用边界

description 要明确业务意图、适用场景、禁止场景、调用前置条件、返回结果含义,以及与相似工具的差异。边界不清时,模型会把读操作、写操作和审批操作混成一个候选。

03

schema 约束参数空间

JSON Schema 里的字段要有自然语言含义、类型、必填条件、枚举、格式、默认值策略和来源说明。用户没给订单号、地址、金额等关键字段时,模型应追问或拒绝执行,而不是猜参数。

04

副作用和确认前置

写操作、资金、消息发送、删除、审批等工具要在命名、description 和 schema 中共同暴露风险等级、确认要求和幂等键。模型只负责选择和填参,真正执行仍要由服务端权限和业务规则校验。

05

用评测迭代工具契约

构造工具选择测试集,覆盖相似意图、缺字段、多轮补参、高风险误触发和工具返回失败。记录误选、漏选、参数错、重复调用和无意义调用,再决定改名、改 description、收紧 schema 或拆分工具。

易错点

  • 只改 description,不处理工具名本身带来的候选混淆。
  • description 写得像功能介绍,没有适用边界。
  • 相似工具描述高度重复,模型无法区分。
  • 缺字段时让模型猜参数,不要求追问。
  • 把权限、审批和风险控制完全交给 Prompt。
  • 没有工具选择评测集,改名和改 schema 都只能凭感觉。

面试官追问

工具命名、description 和 JSON Schema 如何分工?

命名负责第一层候选过滤,description 负责业务边界和副作用说明,JSON Schema 负责参数结构、类型和缺失处理。三者不应互相替代。

工具很多时如何降低误选?

可以按场景分组、减少相似工具暴露、加路由层、统一动作命名、写清互斥边界,并对高频误选工具补反例和优先级约束。

模型一直调用错误工具怎么办?

先看工具名是否泛化、description 边界是否重复、schema 字段是否诱导填错、路由候选是否过宽,再用评测集回归;必要时改名、拆工具或加规则拦截。

工具描述能包含业务策略吗?

可以包含选择工具所需的轻量策略,例如确认条件和禁用场景。但复杂审批、权限、额度和风控必须在服务端执行,不能只靠 Prompt。