工具调用提示:函数描述、参数设计与选择引导

核心04-结构化输出与工具调用⏱ 25 分钟已审校
学习进度:

一句话定义

工具调用的质量上限在提示层就被决定——工具清单的描述精度、参数约束的明确度、"何时用/何时不用"的选择引导,共同构成模型选对工具、填对参数的全部依据。

为什么重要

模型看不到工具的实现代码,它对工具的全部认知就是你在上下文里写的描述。描述含糊 → 选错工具;参数说明含糊 → 编造参数值。生产 Agent 的"工具乱调用"问题,七成修在提示层而不是代码层。本知识点与 工具结果的上下文呈现:喂回什么、怎么喂(结果入口)合起来构成工具交互的完整提示工艺。

前置知识

直观类比

给新员工一张工具间的操作卡:每台机器写清"干什么用、按钮在哪、什么时候不许碰"(清单三要素),并在最上面写一句"不确定就问主管,别瞎按"(反问授权)——机器说明书越含糊,事故越多。

图示

工具清单条目模板:
  名称:create_refund
  用途:为符合条件的订单创建退款单
  参数:order_id(必填, 8位大写A+数字, 来源:上下文中的订单实体)
        reason(必填, 枚举: 7天无理由|质量问题|其他, 来源:用户原话)
  使用条件:仅当已确认订单存在且符合政策
  禁忌:不要在未查询订单前调用;不要为他人订单调用

核心概念

  • 工具清单(Tool Manifest):每个工具三要素——用途一句话、参数 Schema、使用条件与禁忌。
  • 参数约束:类型、枚举、必填/可选、格式示例(如日期格式、ID 位数)。
  • 选择引导:工具间的优先级与互斥关系("能查库就不要猜""A 与 B 同时适用时先 A")。
  • 参数来源声明:每个参数的值从哪来(用户原话 / 上文实体 / 需向用户确认)——这是防"编参数"的关键条款。
  • 无工具可用时的出路:明示"没有合适工具时回复'无法完成',禁止编造工具或参数"。

原理与机制

模型填参数的行为是条件生成:它需要从上下文中找到参数值。参数错误的三大来源与对策:

  1. 值不在场:上下文没有该值,模型就会编 → 每个参数声明来源,允许的来源只有"用户原话/上下文实体/反问用户"三种;
  2. 格式歧义:日期 2026-10-02 还是 10/02?ID 全半角?→ Schema 里给格式示例与正则;
  3. 工具语义重叠:两个工具都能"查订单",模型随机选 → 在描述里写清分工边界与优先级。

另一个高频问题:该问不问。缺参数时模型倾向瞎填——必须在提示中显式授权反问:"缺必填参数时向用户追问,禁止用默认值填充"。这是 拒答、越权与边界控制 边界控制在工具域的应用。

公式或模型

本节不适用——工具选择正确率用评估集统计(构造"应选 A 不应选 B"的对照样本,见 评估集构建:黄金样本与失败分类)。

实例或案例

案例:消灭"编参数"事故。 症状:模型把用户随口说的"帮我退了上周那个单"直接填成猜测的订单号调用退款,创建了错误退款。操作步骤:① 给 order_id 加来源声明(只允许上下文实体);② 加反问授权条款;③ 加禁忌(未查询确认前禁止 create 类调用);④ 构造"信息不足"测试样本验证追问行为。改造后清单节选:

使用规则:
R1 create_refund 前必须先用 query_order 确认订单存在且符合退款政策。
R2 order_id 只能取自查询结果;上下文没有时向用户询问,禁止猜测。
R3 缺任一必填参数时追问用户,一次问全,禁止使用默认值。
R4 没有合适工具时回复"该操作暂不支持",禁止编造工具名。

排错清单:

常见误区

  • 描述写给开发者的语法、不是写给模型的语义:模型需要"什么时候用"而不是"内部怎么实现";用一句业务用途 + 使用条件描述;
  • 工具越多越好:清单膨胀会显著提高选择错误率,按场景拆分工具集(不同会话注入不同子集);
  • 缺省值兜底:给参数设"聪明的默认值"是把错误静默化——宁可追问。

自测题

  1. 模型"编造参数值"的机制性原因是什么?

答:参数值不在上下文中,而提示没有禁止编造、没有授权反问;条件生成只能就近找值或虚构。

  1. 两个工具功能相近导致选择随机,如何修复?

答:在描述中写清分工边界、使用条件与优先级,并配对照示例样本验证。

  1. 为什么"缺参数时反问"必须显式授权?

答:模型默认倾向完成任务;不授权反问它就会用猜测或默认值填空,把错误静默化。

与其他知识点的关系

工具结果的上下文呈现:喂回什么、怎么喂 承接调用结果的呈现;参数校验失败进入 校验-重试回路:让输出自修复 的重试回路;"该问不问/无工具不编"是 拒答、越权与边界控制 边界控制在工具域的落地;工具选择的回归样本归入 评估集构建:黄金样本与失败分类。

延伸阅读

  • 论文:ReAct(Yao et al., 2022)——行动格式与工具选择的教学范式。

来源

  • ReAct: Synergizing Reasoning and Acting in Language Models (Yao et al.
  • 2022)