核心要点

  • 能讲命名与描述:函数名语义化、动词清晰,给每个工具和参数写明确 description,让模型靠语义而非猜测选用

  • 能控制参数复杂度:参数少而正交,能拆默认值就别让模型填;用枚举/类型/范围约束收紧取值,减少幻觉参数

  • 能区分必填可选:明确 required 与 optional,避免模型漏填必填或乱填可选项

  • 能做结构化错误处理:工具失败返回结构化错误信息(码+原因+建议),让模型可据此重试或换路径

标准回答

一、命名与描述

函数名用语义化动词(如 search_orders、send_email),并为工具整体与每个参数写清晰 description,说明用途、单位、示例。模型主要靠这些自然语言线索判断"何时用、怎么填"。

二、参数设计

参数少而正交,避免一个函数塞太多职责;能用默认值或服务端推断的就不暴露给模型。用 enum 限定可选值、用 type/format/范围约束取值,明确区分 required 与 optional,从 schema 层面压缩模型幻觉参数的空间。

三、返回与错误

成功返回结构化结果;失败返回结构化错误(错误码、原因、可选的修复建议),而非裸异常字符串,便于模型重试、换参数或转其他工具。

面试里可以补一句:设计工具 / 函数 Schema 让模型可靠调用 在大模型场景下通常要同时权衡效果、延迟、成本和安全边界。回答时最好带一个例子,比如上下文过长、幻觉、缓存命中或工具调用失败时,系统应该如何降级和观测。

四、验证

服务端对模型产出的参数做校验与白名单,绝不无条件信任,防止越权或注入。

常见误区

⚠️ 常见踩坑

误区一:容易答偏的地方:把一个函数设计得参数又多又自由、缺少 description 和枚举约束——模型会频繁填错或幻觉参数;另一误区是工具报错只返回裸异常文本,模型无法据此恢复。

追问

追问 1工具数量很多导致模型选错怎么办?

控制单次暴露给模型的工具数,保持工具集少而正交;为工具写清晰、互不重叠的描述;用路由/分诊先按意图筛出候选子集再交给模型选择。必要时分层:上层选类别,下层选具体工具。

追问 2如何降低模型幻觉出不存在的参数?

用严格 schema:枚举限定取值、type/format 约束类型、标注 required;服务端对返回的参数做校验并拒绝非法字段。开启结构化输出/约束解码(如 JSON schema 强约束),让模型只能在合法字段内生成,从根上抑制幻觉参数。

🔗 相似问题

同一考点的不同问法,换着练更稳

延伸学习

按主题分类的相关资源,便于系统复习