Skip to content

L03-03 工具设计:工具多了模型就选不准 ​

全局中心内容:工具描述的质量决定调用准确率,description 比代码更重要。 全局讲解主线:选错工具的翻车 → 描述三要素 → 参数设计 → 数量控制 → 风险分级 → 编码 → 验证。


P1 · 产出页 ​

中心内容:一套带风险分级、可动态挂载的工具注册表。

  • 讲解技巧
    • 开场场景:注册了 30 个工具后,模型开始乱调——这是非常普遍的真实问题。
    • 结论:工具不是越多越好,是越准越好。
  • 时长:20s

P2 · 描述三要素 ​

中心内容:做什么 / 什么时候用 / 什么时候不要用。

  • 页面内容:坏描述 vs 好描述对照

  • 讲解技巧

    • 这页是全节重点:举例「查订单」的坏描述只有「查询订单」,好描述会写「按订单号查询单个订单详情;批量查询请用 searchOrders」。
    • 强调第三要素最有效:明确写出「不要用它的场景」,能显著减少误调。
  • 时长:6min


P3 · 参数设计 ​

中心内容:参数要少、要枚举、要有 @ToolParam 说明。

  • 页面内容:参数设计正反例

  • 讲解技巧

    • 讲清原则:能用枚举就不要让模型自由发挥,能用两个简单参数就不要用一个复杂对象。
    • 提醒必填/选填要标清楚,模型经常漏传可选参数。
  • 时长:5min


P4 · 数量控制 ​

中心内容:同时挂载的工具控制在 8 个以内。

  • 页面内容:工具数量与调用准确率的关系曲线

  • 讲解技巧

    • 给经验数字:超过 8 个后准确率明显下滑,超过 20 个基本失控。
    • 提示这是后面动态挂载(本页后半)的动机。
  • 时长:4min


P5 · 动态挂载 ​

中心内容:按任务阶段只挂载当前可能用到的工具。

  • 页面内容:三级选择(阶段 → 关键词 → 语义匹配)

  • 讲解技巧

    • 讲三级策略的价值:规则先行(便宜可靠),语义兜底(覆盖长尾)。
    • 提醒要有「兜底全集」,否则语义匹配失败时 Agent 无工具可用。
  • 时长:5min


P6 · 风险分级 ​

中心内容:READ_ONLY / WRITE / DESTRUCTIVE / NEED_APPROVAL 四级。

  • 页面内容:ToolMeta 设计与每级的处理策略

  • 讲解技巧

    • 强调这是后面所有防护的基础:权限、审批、重试策略都要读这个字段。
    • 提醒分级要保守:拿不准就往高定,误判成只读的代价是事故。
  • 时长:5min


P7 · 错误返回值 ​

中心内容:工具抛异常要说人话,别把堆栈喂给模型。

  • 页面内容:异常转人类可读文本的写法

  • 讲解技巧

    • 讲清为什么重要:模型看到堆栈只会更困惑,看到「订单号不存在,请检查格式」则能自我纠正。
    • 提醒不要吞掉错误,错误信息要能指导下一步行动。
  • 时长:4min


P8 · 编码:注册表 ​

中心内容:ToolRegistry 管理元数据与挂载。

  • 页面内容:注册表实现与按阶段过滤

  • 讲解技巧

    • 强调元数据和实现绑定在一起,避免两处维护不一致。
  • 时长:5min


P9 · 避坑与小结 ​

中心内容:改工具描述要重新评测,它和改代码一样有风险。

  • 讲解技巧
    • 引出下一节:一个 Agent 不够用怎么办——03-04 多 Agent 协作。
  • 时长:2min

讲师备忘 ​

项内容
课前必做准备坏/好描述对照;准备 30 工具选错的日志
最容易超时处P2 描述部分,容易被要求现场改写——控制在 6 分钟
学员最常问「描述可以写多长?」答:3~5 句,够说清边界即可,太长会稀释注意力
现场备用无网络 → 用预生成的调用结果讲解