返回知识库

AI 与提示 · 智能体与连接

工具调用Tool Calling

工具调用里,模型只声明要调什么;宿主执行后把结果回灌,数字必须长在订单或商品卡上。口头说查过不算。

先认出这张库存卡,再看数字是声明出来的还是查出来的

下面就是 T-001 的商品卡。默认只有一段 get_stock 声明,库存仍是问号;宿主执行后变成 3;模型口头说「查过了」时,卡上仍然没有回执。

T-001 · 卫衣已声明 · 未执行
get_stock({ sku: "T-001" })

库存 ?

模型只写出了这段 JSON,库存卡还是空的。

声明不是动作。没有宿主执行,货架数字不会变。

原因:模型输出的是 tool_call JSON,不是查库动作。下一步:让宿主执行,看商品卡上的库存会不会变成 3。

知识点:声明 ≠ 执行

商品卡上的库存和回执已经演过,这里只给命名。

  • 模型输出 tool name + 参数,这是声明,不是已经查过。
  • 宿主校验、执行、把结果当新消息回灌,模型才看得到数字。
  • 工具不存在、缺参数、服务 503,都要把错误结构化回灌,而不是编库存。
  • 它不是智能体循环:这里只讲一次调用;串成多步是 agent。

什么时候用、怎么用

回答依赖外部系统里的实时数据或动作时,才声明工具。

  • 信号:库存、订单、文件、测试结果不在提示词里。
  • 适用:白名单工具、每次说明目的、失败就停并回灌错误。
  • 不适用:把「我已经调用了」当成回执;也不要用它代替权限审批。
  • 最短路径:用户提问 → 模型声明 → 宿主执行 → 数字长在物件上 → 再回复。

正反例:同一句「这件还有货吗」

SKU 都是 T-001。

正例宿主执行后卡上写库存 3

回复「可以下单」对得上商品卡,用户能核验。

反例口头说查过,卡上没有回执

听起来做过了。真正的库存可能是 0,下单会超卖。

快速自测

模型回复「我查过库存了,还有很多」,但商品卡上没有 get_stock 回执。该信哪一边?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。