第四章:没有工具,AI只是答题机器

资料库2026-05-17创建Howard 2 次浏览

一个悖论

前两章我们建立了一个认知:LLM是概率预测引擎,没有“事实”概念,输出天然不可靠。

现在我们要面对一个悖论:

如果AI的输出天然不可靠,为什么还要让它去做事?

答案藏在“做事”这个词里。

当AI只能“说话”时,它的错误是不可验证的:一段文字里有没有编造的数据,你只能靠自己的知识来判断。但当AI能“做事”时,很多错误会立刻暴露:调用的API返回了错误码,执行代码抛出了异常,生成的SQL语法错误导致数据库拒绝执行。

让AI“做事,反而让它变得更可靠。

因为“做事”引入了现实世界的反馈。反馈让不可验证变成了可验证。这就是本章的核心:不是让AI更聪明,是给它一套“手脚”(工具),让它得到更多上下文、输出可以被检验。

只会说话的AI,上限在哪

一个纯文本的AI,不管你Prompt写得多么精巧,它有几件事永远做不到:

  • 它不能查今天的天气。因为它的训练数据截止到某个日期。
  • 它不能读你公司的数据库。因为你的销售数据不在它的训练数据里。
  • 它不能发邮件、不能操作文件、不能运行代码、不能调用其他软件。
  • 它不能“做完了再检查一遍”,因为它是单次生成。

本质上,一个文本生成式AI是一个被关在“语言房间里的人。 这个房间里只有书,它靠这些书学会了说话,但它看不到房间外面正在发生什么。

你问它“今天上海天气怎么样”,它只能从书里找到关于上海气候的描述,综合出一个“看起来像天气预报”的回答。因为它推不开窗户“看天气”。

给AI工具,就是给这间房开一扇窗。

AI Agent是什么

定义是:

AI Agent = LLM + 工具 + 决策循环 + 其他约束

如果还需要更简洁:

AI Agent = LLM + Harness

“Harness”指的是一个为Agent设计的控制、编排与治理框架,核心思想是“以约束换能力”。但为了让你更清楚到底怎么“约束”,我们先来看前一个定义:

LLM:负责理解任务、规划步骤、生成操作。它是“大脑”。

工具:让LLM能做的事情。搜索互联网、查询数据库、读写文件、调用API、执行代码,每一类“能做的事”就是一个工具。

决策循环:让Agent不只是“回答一次”,而是“观察→思考→行动→观察结果→继续行动”,像人一样在循环中推进任务。

一个典型的Agent执行过程是这样的:

第四章:没有工具,AI只是答题机器-BtoAI 图1:一个典型的Agent执行过程

注意这个过程中的关键环节:Agent不是一次生成答案。 它在“思考-行动-观察”之间循环了好几次。每次调用工具,都是一次和真实世界的交互。每次交互的返回结果,都在修正它下一步的决策。

这和纯文本生成有本质区别:纯文本AI的输出只能“看起来对”。Agent的输出可以“通过事实反馈来验证”。

Function Calling:工具调用的底层机制

Agent调用工具,在工程上通常通过Function Calling(函数调用)实现。这是最早的Agent调用工具的方式。不需要你会写代码,你只需要理解它的逻辑。

工作原理:

  1. 定义工具。 开发者告诉模型:“你可以调用这些函数。这是函数名,这是参数列表,这是功能描述。”
  2. 模型决策。 在处理用户请求时,模型判断是否需要调用工具。如果需要,它生成一个结构化的调用指令,并不是自然语言,而是精确的函数名+参数值。
  3. 系统执行。 Agent的脚手架代码截获这个调用指令,真正执行对应的函数(比如真的去调用一个天气API)。
  4. 结果返回。 函数执行的返回结果,被追加到上下文中。模型在下一轮生成时,基于这个真实结果来回答。

关键在第4步:工具的返回结果是“事实”,不是“预测”。 天气API返回了25°C,这个25°C不是概率采样出来的,是真实的传感器读数。当这个“事实”进入上下文,它就像一个锚,把后续预测的概率分布牢牢锁在真实数据附近。

这就是为什么工具能提高可靠性的根本原因:它把真实世界的信号注入了AI的概率引擎。

MCP:让模型和工具说同一种语言

AI行业有一个尴尬的问题:每家模型公司的工具调用格式都不一样。OpenAI公司的函数调用是一套JSON Schema。Anthropic公司的工具定义是另一套。开源模型的格式又不一样。开发者为每个模型重写一遍工具接口,这是Agent生态最大的摩擦。2024年底,Anthropic提出了MCP(Model Context Protocol),这是一个开放协议,定义了模型和工具之间的标准通信格式。

类比一下:MCP之于AI工具调用,就像USB-C之于充电。以前每个手机有自己的充电口,出门要带一堆线。USB-C统一了物理接口。MCP想做的是统一“模型-工具”之间的逻辑接口。

你不用关心具体的技术细节。你只需要知道:MCP正在成为行业标准,它让“换模型”不再需要“重写所有工具”。这很重要,因为它意味着你的Agent系统可以不绑定具体模型,这对长期维护和成本控制都至关重要。

工具设计的四个原则

不是给AI一堆工具就叫Agent。糟糕的工具设计,会让Agent比纯文本AI更危险。

四个基本原则:

1. 原子性——一个工具只做一件事

“搜索互联网”和“发送邮件”不应该在同一个工具里。为什么?因为AI可能“误解”任务,在你想让它搜索的时候,它调用了“发送邮件”。

每个工具应该有明确、单一的功能边界。功能越单一,调用越可预测,错误的影响范围越小。

2. 可验证性——工具的返回结果必须能被判断对错

一个工具返回了“操作成功”,这够不够?不够。

你需要返回可验证的信息:操作了什么、结果是什么、有没有异常。比如一个文件写入工具,不应该只返回“写入完成”,还应该返回“写入了多少字节、文件的哈希值、是否有权限错误”。

因为Agent需要这些信息来判断“下一步该做什么”。模糊的返回值等于没返回,因为AI会“猜”操作结果,然后基于猜测继续行动。这就回到了老问题。

3. 安全性——工具的操作范围必须有硬约束

一个文件操作工具,不应该能访问整个硬盘。它应该被限制在特定目录下。

一个网络请求工具,不应该能访问内网地址。它应该有一个白名单。

这些约束应该在工具层面实现,不仅是靠Prompt里写“请不要访问XX”,还要在代码层面硬限制。因为你永远不知道AI什么时候会“忽略”这个约束,因为它随时会“忘记”。

4. 幂等性——同一个操作执行多次,结果应该一致

“发送邮件”不是幂等的,因为发两次,收件人会收到两封。

“查询天气”是幂等的,短时间内查两次,结果应该一样。

在设计工具时,尽量让工具幂等。这样当Agent因为不确定性重试一个操作时,不会造成重复的副作用。

从单个工具到工具链

一个工具能做的事有限。真正的能力来自工具链,即前一个工具的输出成为后一个工具的输入。

举例来说:

搜索工具 → 找到相关网页链接
  ↓
爬取工具 → 提取网页正文
  ↓
摘要工具 → 将正文压缩为500字
  ↓
翻译工具 → 译为中文(用户语言)
  ↓
输出给用户

但工具链也放大了风险。

如果“搜索工具”返回了一个不相关的链接,“爬取工具”提取了错误的内容,“摘要工具”在错误内容上做了摘要,“翻译工具”忠实地翻译了一个错误的摘要。错误在每一步都被忠实地传递,最终用户看到的是一段翻译流畅但内容完全不对的文字。

这就是工具链的雪崩效应:上游的一个小错误,在经历了多次“忠实处理”后,变成了下游的一个大错误。

解法不在“让每个工具更聪明”,解法在每一步都加入验证。搜索结果的URL是否来自可信源?爬取的内容是否和搜索关键词相关?摘要是否保留了关键事实?这需要约束与评估体系。

Agent从“说错”变成了“做错”

我们在前面已经点过这个问题。这里展开。

LLM最坏的情况是输出一段错误信息。Agent做错事,后果可能是:

  • 删除了不该删除的数据
  • 向所有客户发送了错误的邮件
  • 在服务器上执行了一段有问题的脚本
  • 调用了付费API循环消耗预算

有研究机构对OpenClaw(2026年初爆火的AI Agent框架)的公网部署实例进行安全分析后发现,超过46万个公网实例中约27%存在高危安全漏洞,可能被远程接管。这不是“AI说了不该说的话”,这是“AI拥有了一个可以被攻击的操作系统级入口”。

所以,当你给AI“手脚”时,你必须同时给它“护栏”。

每一个工具,都应该有一个对应的安全策略:什么情况下可以调用?什么情况下需要人类确认?什么情况下自动拒绝?这是下一章的核心内容。

目标驱动循环:Agent开始“自己干活”

工具调用的一个重大进化,是“目标驱动循环”。

传统模式:你给一个任务 → AI调一个工具 → 返回结果 → 你来判断下一步。

目标驱动模式:你给一个目标 → AI自己规划步骤 → 循环调用工具 → 自己验证结果 → 直到目标达成。

2026年初,有开发者提出了一个概念:让AI编程工具持续工作直到任务完成,而不是每次都要你手动确认下一步。这个想法在不到两周内被多家公司实现:OpenAI的Codex和Anthropic的Claude Code都上线了类似功能。Claude Code甚至引入了一个独立的小模型做“裁判”——在工具链的每一步自动验证输出是否符合预期。

目标驱动循环是Agent从“工具”变成“同事”的关键一步。但它也带来了新风险:如果目标定义不够精确,Agent可能在某个子步骤陷入死循环,反复消耗Token和算力却没有任何进展。

解决这个问题的关键是:给Agent一个明确的“结束条件”和“失败条件”。

本章小结

从“只会说”到“会做”,不是能力的渐进提升,是一次质变。

  • 纯文本生成式AI(LLM):输出不可验证,质量靠“感觉”
  • 有工具的AI:输出可以被现实反馈验证
  • 工具链AI:能力复合增长,但错误也复合增长
  • 目标驱动Agent:AI开始自主干活,但需要护栏

这次质变的核心,不是“模型更强了”。是你给了它一个和真实世界交互的接口。但接口越大,失控的可能性越大。

自查清单

  • 我能说出Agent的三个重要组件
  • 我理解Function Calling的基本流程
  • 我知道MCP要解决什么问题
  • 我能列出工具设计的四个原则
  • 我理解为什么Agent比聊天机器人更危险

参考链接

  1. "Model Context Protocol (MCP) Specification". https://modelcontextprotocol.io/
  2. Anthropic, "Best Practices for Computer and Browser Use with Claude". https://docs.anthropic.com/en/docs/build-with-claude/tool-use/computer-use
  3. OpenClaw公网实例安全分析, arXiv:2604.04759. https://arxiv.org/abs/2604.04759
  4. Shunyu Yao et al., "ReAct: Synergizing Reasoning and Acting in Language Models", ICLR 2023. https://arxiv.org/abs/2210.03629

有了手脚的AI,能力暴涨,但翻车方式也暴涨。怎么让它不乱来?我们要讲约束、校验和上下文工程。

下一章:不是模型不好,是产品没做好

更多文章

第五章:不是模型不好,是产品没做好

同一个错误,为什么永远改不掉 一个你一定经历过的场景: 你让AI写一份竞品分析报告。第一版,格式对,但把某公司产品定位搞反了。你纠正了。 第二版,定位对了,但又犯了同样的格式错误。你耐着性子改了Prompt,加了三行说明。 第三版,格式和定位都对了。但你发现它把你一周前在另一个对话里明确说过的数据引用错了。你盯着屏幕,深吸一口气,关掉窗口,自己写了。 然后你跟所有人说:“AI就这样,Demo惊艳,…

资料库 2026-05-17
第四章:没有工具,AI只是答题机器

第六章:科学评价 Agent 的一二三四

Demo总是骗人的 过去几年,你肯定见过这样的视频: 一个人在屏幕上打字:“帮我分析这份销售数据,做一个下周的策略建议。”30秒后,AI Agent自动打开数据表、跑分析、做图表、写了一份看起来像模像样的报告。弹幕刷满“太强了”“取代打工人”。 你也见过这种场景: 你照着视频里的方法搭了一个Agent。第一次跑,结果惊艳。第二次跑同一个任务,输出格式全乱。第三次,它查了一个不存在的数据源,给了一份…

资料库 2026-05-17
第六章:科学评价 Agent 的一二三四
回到顶部