前端进阶之旅前端进阶之旅
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
首页程序员面试题库Agent 工具参数命名描述提高传参正确率
AIAI Agent工具调用

Agent 工具参数怎样命名和写描述,才能减少传错值?

同样是一个字符串或数字,字段名和描述需要让 Agent 知道它究竟代表什么。

前端进阶之旅 · 一题精讲更新于 2026.09.06
AI Agent#工具调用
先看核心答案
理解线索

把猜测变成可用信息

  1. 字段名称标明业务对象和必要的单位
  2. 字段描述解释输入来源、适用时机及容易混淆的含义
  3. 执行校验落实格式范围与业务规则,返回可修复错误

命名风格保持团队一致即可,不应把 snake_case 或 camelCase 宣称为所有模型的性能定律。

核心回答

先记住这个答案

参数名称应直接表达业务对象、动作相关含义和必要单位,描述补充值从哪里来、何时提供、允许范围以及与相近字段的差别。timeout_ms 比没有单位的 time 更容易消除歧义,document_id 也应说明它来自哪个查询结果,不能只写“文档”。这些文字会参与模型理解工具契约,因此可能影响传参正确率,但效果必须用固定任务样本验证,不能承诺改个名字就必然提升。名称和描述帮助选值,类型、范围和权限仍由执行端检查。

  • 名称表达对象与单位,描述补足来源与边界
  • 用真实歧义样本验证修改效果
  • 描述中的承诺必须与实际执行逻辑一致

先解决会改变动作含义的歧义

时间字段可能表示绝对时间、持续时间或超时;id 可能属于用户、项目或文件。若这些信息只能从工具的内部实现猜到,模型很容易拿相邻结果中的错误值填入。字段名尽量表达稳定含义,描述再提供不能简洁放入名称的条件。

例如“读取文档”的 document_id 可以说明它必须取自文档搜索结果的 id,而不是标题或 URL。timeout_ms 应说明单位为毫秒、它限制哪一段操作,以及超时后是否可能已经产生副作用。这样调用者才能决定是否继续查询执行状态。

描述需要与参数规则保持同一口径

范围已经由 minimum 和 maximum 表达时,描述可以解释为何有上限以及超出需求如何分批处理,不必重复一整段 JSON 规则。枚举字段则应说明各个值的选择条件,避免只有三个名字却不知道什么时候该用哪一个。

如果 description 写“默认查最近一天”,执行代码却在省略字段时查询全部时间,工具契约就是矛盾的。改描述不能代替修复实现。评审应对照默认值、空值、边界值和错误返回,确认文字承诺与真实行为一致。

怎样判断新名称确实减少了错误

选择包含真实歧义的任务,例如用户说“五秒内返回”、给出文档标题但没有标识、或同时提到创建时间与更新时间。对比旧契约和新契约的字段错误率、错误类别、修正次数及最终任务成功率,控制模型和其他提示条件。

还要保留未参与修改的任务验证泛化,避免为了几条样本写进过度具体的暗示。字段改名属于接口变化,旧调用方、日志指标和测试夹具需要同步。外部工具描述也属于输入来源,不能因为文字清楚就允许其越过宿主系统的权限边界。

回答前,多想一步

容易答错的地方

参数描述越长模型就越不会填错
冗长描述可能埋掉核心区别并增加相互矛盾的规则;优先写对象、单位、值来源和重要边界,其他背景放在适合的位置。
把内部数据库列名原样暴露最准确
内部缩写可能只有维护者认识,且未必代表调用者需要的概念;可以使用清楚的外部字段名,由工具实现完成受控映射。
试着用自己的话回答

面试官还会怎么问?

示例值应该放进描述吗?

当格式确实容易误解时可以提供少量正确示例,但应标明是格式示意,避免模型反复照抄同一个真实标识或把示例当成默认值。

用户身份能否靠 user_id 描述说明必须填自己?

不能,用户身份应由可信会话或凭证确定。模型输入中的标识只能描述被操作对象,不能自行证明调用者具有对应权限。

同一个字段在不同工具中必须同名吗?

语义、单位和来源相同通常应一致,便于复用;如果含义不同,应明确区分,不能为了表面统一让同名字段在两个工具中采用不同单位。

从一道题,走向一组知识

把知识连起来

工具调用

Agent 工具为什么用 JSON Schema 定义参数,校验通过就能执行吗?

描述帮助理解,但结构检查仍需明确契约

工具调用

Agent 工具参数应该嵌套还是扁平,怎样控制对象层级?

分组和命名一起决定复杂参数是否容易理解

工具调用

工具参数设置默认值时有哪些容易被忽视的语义陷阱?

默认值说明必须与省略字段时的真实行为一致

参考资料

  • Anthropic:Writing effective tools for agents

示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。

本题目录
  1. 先记住这个答案
  2. 先解决会改变动作含义的歧义
  3. 描述需要与参数规则保持同一口径
  4. 怎样判断新名称确实减少了错误
  5. 容易答错的地方
  6. 面试官还会怎么问
  7. 把知识连起来
读懂,再试着讲出来

先看核心答案,再读代码。最后展开追问,检查自己有没有遗漏边界。

试着回答追问
浏览全部面试题理解原理,也关注真实的使用场景。回到顶部 ↑