工具调用提示结构
在提示里声明工具,要写清三件事:有哪些工具、怎么调用、什么时候该调用。工具清单说明能力边界,调用语法规定输出格式(带参数的命令行式标记或结构化调用),使用条件则决定模型是否会主动求助外部信息。工具调用与函数调用是同一条路的两种实现:前者靠提示约定格式,由程序解析;后者由平台用 Schema 约束,更严格。
三要素
| 工具清单 | 工具名、用途、参数含义与返回内容说明 |
|---|---|
| 调用语法 | 固定格式(如带标记的命令行式写法),便于程序解析 |
| 使用条件 | 何时必须调用(实时数据、事实核查)、何时不必调用 |
| 回填格式 | 结果以固定标记回填,模型据此继续推理 |
| 护栏 | 工具白名单;参数长度与调用频率设上限 |
典型使用场景
- 实时信息问答:价格、库存、天气等必须检索后才回答
- 企业助手:查内部系统数据、发起审批、回写备注
- 计算类任务:把算术交给计算器工具,减少算错
- 多步排障:每步动作基于上一步的查询结果
- 无平台函数调用能力的接口:用标记格式约定调用与回填
工具声明模板
工具声明模板
可用工具:
- search(query):检索事实类信息
- calc(expr):执行四则运算
调用格式:[TOOL_CALL:{name}({args})] # 固定标记便于程序解析
使用条件:涉及实时数据或不确定的事实时先调用 search;
收到 [TOOL_RESULT:...] 后继续作答;不需要工具的问题直接回答。常见故障与处理
| 故障 | 表现 | 处理 |
|---|---|---|
| 该调不调 | 凭记忆回答实时性问题 | 使用条件写明必须调用的场景 |
| 格式不合规 | 调用标记拼错,程序解析不了 | 给出示例并做解析容错与重试 |
| 编造返回 | 模型自己写了工具结果 | 回填只由系统写入,提示里明确禁止 |
| 无限调用 | 对同一参数反复调用 | 设频率与轮数上限,去重相同参数 |
平台支持函数调用时优先用它:Schema 由平台校验,比标记格式的纯文本约定更不容易被写错与伪造。