乐于分享
好东西不私藏

AI Agent 30 天速成 | Day5:AI 终于长出了"手",但它真的会用吗?

AI Agent 30 天速成 | Day5:AI 终于长出了"手",但它真的会用吗?

从"只会聊天"到"能够办事",Tool Calling(工具调用)是 Agent 进入实用阶段的重要分水岭。

很多人第一次接触这个概念时,都会觉得它很简单:不就是给大模型接几个 API,它就能帮你发邮件、查数据、订会议室了吗?

但真正做过 Agent 落地的人都知道,事情远没有这么顺利。

"能调用工具" 和 "会正确调用工具",完全是两回事。

模型最难的,不是"会不会用 API",而是:

  • 什么时候该用
  • 该用哪个
  • 参数怎么填
  • 出错了怎么办

这篇文章不讲太虚的概念,想聊一点我踩坑之后,对 Tool Calling 更真实的理解。


一、我第一次做 Tool Calling 时,以为它会很简单

我第一次做工具调用时,脑子里的流程其实很理想化:

用户发指令 → 模型调用接口 → 任务完成。

现实当然不是这样。

很多时候,模型会给你做出一个"看起来像在干活"的动作。比如你让它发邮件,它会很认真地生成一段邮件草稿,甚至排版都挺像那么回事,但它并没有真正把邮件发出去。

这也是我后来慢慢意识到的一个问题:

Agent 不是"会不会说工具名",而是要先判断:这件事到底该不该动手。

也就是说,工具调用真正难的地方,不是"接 API",而是"做决策"。


二、Agent 到底怎么决定要不要调用工具?

这是很多人做 Agent 时最容易忽略的一步。

模型并不是看到关键词就直接调 API,至少一个靠谱的系统不应该这样。

通常可以从下面几个维度判断。

1. 用户是不是在要"外部信息"

如果用户问的是:

  • 什么是 Tool Calling?
  • 帮我解释一下 Agent 的概念
  • 给我总结一下这篇文章的重点

这类问题,模型自己就能回答,不需要调用工具。

但如果用户问的是:

  • 今天上海天气怎么样?
  • 这只股票现在什么情况?
  • 我明天的日程有没有冲突?

那就不一样了。这类答案依赖外部数据,模型不能瞎编,这时候就应该考虑调用工具。

2. 任务是不是依赖"当前世界状态"

这个判断特别实用。

比如:

  • 查 ERP 系统里的付款进度
  • 看服务器当前状态
  • 查日历有没有冲突
  • 看订单有没有发货

这类问题本质上都不是"知识问题",而是"当前状态问题"。

模型训练时不可能知道你系统里这一秒发生了什么,所以必须去查工具。

可以简单理解为:只要答案依赖最新状态,工具调用的优先级就很高。

3. 调这个工具有没有风险

这一点在真实系统里非常重要,但很多人一开始会忽略。

查询天气、查询库存、查询数据,通常属于"读操作",风险比较低。

但如果是这些动作:

  • 发邮件
  • 改日程
  • 删除文件
  • 转账
  • 审批付款

那就完全不一样了。这些是有后果的动作,不能让模型毫无约束地直接执行。

所以在实际落地时,越危险的工具,越需要加上:

  • 用户确认
  • 审批流
  • 幂等保护
  • 回滚机制

简单说就是:能读的可以自动,能写的要谨慎。


三、如果把工具调用拆成工程流程,大概是这四步

在工程实现里,Agent 的工具调用决策,通常不会是一拍脑袋就执行,而是一个比较明确的流程。

第一步:识别用户意图

先判断用户到底是在:

  • 问知识
  • 要生成内容
  • 要查外部信息
  • 要执行动作

不同意图,对应的处理方式完全不同。

第二步:判断是否需要工具

如果任务需要:

  • 实时数据
  • 外部系统状态
  • 精确事实
  • 执行动作

那就应该考虑调用工具。如果不需要,模型直接回答通常更快,也更稳定。

第三步:参数校验

这是最容易翻车的地方。

比如用户说:"帮我查一下 xx 项目的付款进度。"

听起来挺明确,但真进系统你会发现,问题可能很多:

  • 查哪一期?
  • 是审批进度,还是打款进度?
  • 项目名有没有别名?
  • 是哪个部门的项目?

如果参数不全,正确的做法不是硬调接口,而是先反问用户。

很多 Agent 翻车,并不是模型不会用工具,而是参数乱填。

第四步:执行后再判断一次

工具返回结果后,Agent 不能直接结束。它还要继续判断:

  • 成功了吗?
  • 结果可信吗?
  • 需要继续下一步吗?
  • 要不要用户确认?

所以 Tool Calling 不是一次性的动作,而是一个闭环。


四、真实世界里的 Agent,基本都不是"全自动"

网上很多人喜欢把 Agent 描述成"全自动秘书"。

但真正做系统上线后,你会发现最稳的方案往往还是:人机协作

我自己的理解很简单:

角色
职责
模型
判断和建议
工具
执行
确认关键动作

如果你现在也在做 Agent,别只盯着 Prompt 怎么写。

更重要的是想清楚:

  • 哪些步骤能自动做
  • 哪些步骤必须确认
  • 工具失败后怎么兜底
  • 参数从哪里来
  • 结果怎么回到上下文里

这些东西,才是 Agent 真正落地时要面对的问题。


五、我现在对 Tool Calling 的理解

以前我以为,Tool Calling 的价值在于"连接 API"。

现在我更愿意把它理解成:

它让模型从"语言输出"进入"行动决策"。

这一步看起来只是多接了几个函数,但实际上改变的是整个工作流。

以前 AI 更像一个"会说话的助手",现在它开始尝试成为一个"能做事的系统"。

而要让它真的能做事,光会调用工具还不够,它还得知道:

  • 要不要动手
  • 什么时候动手
  • 怎么动手
  • 动完以后怎么办

这才是 Agent 和普通聊天机器人的核心区别


结语

Tool Calling 不是 AI"突然长出了手",而是 AI 第一次开始学会在现实世界里做判断

它要判断:

  • 要不要动手
  • 该不该动手
  • 怎么动手
  • 动完以后怎么办

你做的,也不只是一个"更会聊天的模型",而是一个真正能帮你干活的系统

它得聪明,也得谨慎;得能干,也得知道什么时候该停。