跳到主内容

工具调用是怎么发出去的?从决策到执行

2026-10-18 发布 来源:我告诉你AI导航 阅读

大模型本身只会生成文字,查天气、读文件、发消息这些实际动作,都靠工具调用完成。AI 智能体的每个实际动作,都要走一条从「模型决定调用」到「框架执行」再到「结果回传」的完整链路。把这条链拆开看,很多怪现象就有了答案。

大模型本身只会生成文字,查天气、读文件、发消息这些实际动作,都靠工具调用完成。AI 智能体的每个实际动作,都要走一条从「模型决定调用」到「框架执行」再到「结果回传」的完整链路。把这条链拆开看,很多怪现象就有了答案。

模型决定调用,框架负责执行

先纠正一个常见误会:模型不直接执行任何工具,它只输出「我想调用某工具、参数是什么」的声明,真正执行的是外层的框架程序。模型负责决策,框架负责动手,两者分工明确。

流程是这样转的:系统提示词里附上工具清单,包括每个工具的名字、用途、参数格式;模型读完当前对话,如果判断需要外部信息或动作,就输出一段结构化的调用请求;框架解析这段请求,校验参数,然后去真的执行。

一次调用的完整旅程

第一步,出参数:模型按工具定义填参数,比如搜索工具要填「查询词、条数、时间范围」。第二步,校验:框架检查参数类型对不对、必填项全不全,不合格就打回去让模型重填。第三步,执行:框架按参数调用真实工具,拿到原始返回。第四步,回填:执行结果被格式化后,作为一条「工具消息」插回对话历史。

这条链上每一步都可能失败,参数错、工具超时、返回超长,所以框架要为每一步准备兜底动作,而不是让异常直接炸掉整个任务。

四步依次过手,坏起来的方式各不相同。

步骤谁在做具体动作这一步会怎么坏
出参数模型按工具定义填参数,如搜索工具填查询词、条数、时间范围参数错,比如日期填成「昨天」
校验框架查参数类型对不对、必填项全不全不合格被打回,模型重填
执行框架按参数调用真实工具,拿到原始返回工具超时
回填框架结果格式化后作为「工具消息」插回对话历史返回超长,塞不下

结果怎么递回模型手里

工具返回的东西未必适合直接塞给模型:可能是一万行的表格,可能是一段带噪声的网页文本。通常要先加工——截断、提炼、转格式——再交回模型。模型读到的是加工后的结果,据此决定下一步:继续调用、换个思路,还是开始组织最终回答。

这就是为什么同一个工具在不同智能体里效果差很多:差的往往不是工具本身,而是返回结果被消化的方式。通义千问、文心一言等助手接插件时,返回内容的裁剪策略直接影响回答质量。

参数填错的两种兜底

模型偶尔会填错参数:把日期填成「昨天」而不是具体日期,把不存在的工具名写进去。兜底有两种路子。硬校验:框架定义参数的格式和取值范围,不合格直接返回错误说明,让模型看着报错重填,通常第二次就对了。软提示:在工具描述里写清「日期必须为 YYYY-MM-DD 格式」,从源头减少错误。

两种路子配合用效果最稳:描述写得细,校验守底线。用扣子(Coze)搭工作流时,插件参数说明写完整,调用失败率会明显下降。

调用失败之后走哪条路

执行失败不代表任务终止。框架可以原地重试、换备用工具、或者把失败信息如实告诉模型让它调整计划。走哪条路应该在框架层预先定义好,而不是每次临时决定。调用记录全部留痕,方便事后回看每一步的参数与返回。

工具调用链路五步

  • 模型按工具清单输出结构化调用声明
  • 框架校验参数,不合格退回重填
  • 框架执行真实调用,返回原始结果
  • 结果加工后作为消息插回对话
  • 模型据此决定下一步动作

排查调用问题时,沿这五步走一遍,卡在哪一步就查哪一步的记录。

相关词条:失败后的补救路径,见什么是失败补偿?做一半怎么收场;调用前的步骤从哪来,参考任务规划是怎么生成的?先列提纲;返回结果如何被消化,见观察结果是怎么被消化的?关键步骤一次讲清;整条链何时收口,看循环是怎么退出的?完成判据,从原理到落地。

关于工具调用,问得最多的三个

  • 一次能同时调用多个工具吗?:可以。没有依赖关系的调用并行发出更省时间,有依赖的必须串行,框架会按声明里的顺序处理。
  • 工具越多模型越强吗?:不是。工具清单太长反而稀释模型注意力,挑高频常用的挂上,清单精简往往效果更好。
  • 模型会乱编一个不存在的工具吗?:偶尔会,尤其清单刚改过。框架对未知工具名直接返回错误并附上可用清单,模型自我纠正得很快。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]