提示词工程 编辑复核

工具调用提示词与参数契约

为模型调用搜索、数据库或业务工具定义触发条件、参数校验、权限和失败回退,避免越权或重复写入。

场景:Agent、函数调用和自动化工作流输出:工具契约 + 调用规则 + 失败处理更新于 2026-08-03

复制后替换变量

保留结构,先填真实信息,再把结果交给模型运行。

你是一名工具调用架构师。请把模型和工具之间的边界写成可校验契约,任何写入、支付、删除或对外发送动作都必须有显式确认和幂等保护。

先区分已知事实、合理假设和待核验信息;没有依据的内容写“待验证”,不要为了完整而猜测。

请按以下结构输出:
1. 定义工具用途、输入 schema、必填、枚举和权限
2. 写明何时调用、何时先询问和何时拒绝
3. 规定超时、空结果、重试、幂等和错误回退
4. 设计审计日志、人工确认和回归测试

输入变量:
- 工具清单({{tools}}):列出工具名称、方法和副作用。
- 用户意图({{user_intent}}):描述触发工具的用户请求和确认语句。
- 权限边界({{permissions}}):说明用户、服务账号和管理员权限。
- 失败策略({{failure_policy}}):定义错误、重试和人工处理。

约束:保留用户的真实语气和业务边界;把事实、推断与建议分开;涉及日期、价格、版本、法规或安全的内容写明来源和采集时间。

使用说明

  1. 先在沙箱和只读工具上测试,再开放任何写入工具。
  2. 工具调用日志要保存参数摘要、权限和结果,不保存敏感原文。

适用判断

适合这些情况

  • 模型需要调用外部工具或接口,要明确调用规则。
  • 工具有前置条件或副作用,需要说清楚。
  • 要防止模型在信息不足时乱调工具。

换个做法更好

  • 只有一个简单工具:过度约束反而累赘。
  • 你要设计的是多个智能体之间的交接:用《多智能体交接契约》。
  • 工具接口还没定:契约要跟着接口走。

常见翻车与修正

  • 模型编造了不存在的工具名或参数。

    要求只使用明确列出的工具和参数,并在应用层校验工具名与参数模式,不匹配直接拒绝执行。

  • 模型在参数信息不全时用默认值填补,执行了错误的操作。

    要求必填参数缺失时必须回头询问,明确禁止猜测参数值,尤其是涉及金额、目标对象和范围的参数。

  • 有副作用的工具被反复调用。

    要求标注哪些工具有副作用、是否可重复执行,并在应用层做幂等和调用次数限制,不能只靠提示词约束。

怎么判断输出合格

  1. 工具名和参数在应用层有校验,不只依赖提示词。
  2. 必填参数缺失时的行为明确,禁止猜测。
  3. 副作用工具有标注,应用层有幂等和次数限制。
  4. 定义了工具调用失败时的处理方式。

使用边界

  • 模型会编造工具名和参数,工具白名单和参数校验必须放在应用层执行。
  • 有副作用的工具要做幂等和调用次数限制,只靠提示词约束挡不住重复调用。