跳到主要内容

什么是「智能体」— 一个会自己动手的模型

这一章讲三件事: 一个会动手的模型和一个只会答话的聊天机器人,差别到底在哪; 「动手」这件事为什么必须外包给外面一段程序;以及判定一个系统算不算智能体, 真正的分水岭在哪一句话上。

它在全书链条里的位置: 这是第一块地基。后面十章讲的全是「怎么把动手这件事做好」, 而这一章负责说清楚动手是什么、由谁发起、结果怎么回来不需要任何基础,遇到的生词都在当场解释。

1. 先看现象:两个聊天框,一个只会答,一个会动手

你打开一个聊天框,问「Python 里怎么写单元测试?」——它给你一段示范代码,你自己复制去用。

你打开另一个聊天框(比如某些代码编辑器里内置的那个),说同一句话,但加了三个字: 「帮我给这个文件写单元测试」。过了几秒,你的项目里多出来一个新文件, 里面的测试已经跑过一遍,还有一条失败被它自己改掉了。

两个框子后面装的可能是同一台机器。差别不在它更聪明,而在于第二个框子那一侧, 有人替它动了手,并且把动完之后的结果又告诉了它。

这本书要教你写的,就是「替它动手」的那一侧。

2. 模型只会写字——所以「动手」必须外包

这一节解释:为什么上面那台机器自己完不成这件事。

它的输出是文字,只有文字

现在聊天框背后的东西,叫生成式 AI(读进一段文字、再一个字一个字往下生成新文字的程序)。 这类程序里最常见的一种,就是你听过的大语言模型。

它能生成的东西只有一种:文字。

它没有手,没有网线,没有打开你硬盘的权限。你问它「我的 cart.py 里有几个函数」, 它答不上来——它连你有没有这个文件都不知道。 它唯一能做的,是把「我需要看一眼这个文件」这句话写出来

所以外面要配一段程序,专门执行它写出来的那句话

这段程序,书里给的定义很干脆:智能体「外面」的、由智能体调用来完成某件事的代码1。 它有一个正式名字——工具

一个工具可以是任何你能用代码做到的事:读一个文件、跑一次测试、 查一次天气、往数据库里写一行。它只是一段普通程序,并没有什么特别的地方; 特别的地方在于谁来决定跑它、什么时候跑

一条要记牢的分工

模型这一侧: 外面这一侧:
──────────── ────────────
只会写字 真的能动手
写下「我要用 read_file, 收到这句话 → 真的去读文件
参数是 cart.py」然后停住 → → 把读到的 68 行内容塞回给模型

接着往下想

图说:箭头一来一回各一次。模型永远不越过那条竖线,
外面那一侧也永远不替模型做决定。

这条竖线是全书的地基。 后面十章讲的「怎么把清单交给模型」「怎么把结果送回去」, 全部发生在这两个箭头上。(工具清单具体是怎么送到模型手里的,第 05 章讲。)

3. 一圈:动手 → 看反馈 → 再决定

这一节回答:开头那个「多出来一个文件」的例子,中间到底转了几圈、每圈手里拿到了什么。

书里用的正是这个例子——在代码编辑器里让它「给你的代码写单元测试」2。 可惜书里那张图只写着「Figure coming soon」(图稍后补上)3,所以下面这条走查是我们补的

下面这条走查里的文件名、行数和测试结果,都是我们为演示编的,不是真实数值。

假设你的项目里有一个 cart.py,68 行,里面有 3 个函数。你说:「帮我给 cart.py 写单元测试。」

第几圈模型写下什么外面跑完,塞回去的是什么
1read_file(path="cart.py")cart.py 的全部 68 行源码
2write_file(path="test_cart.py", …)「已写入 41 行」
3run_tests(path="test_cart.py")「3 项通过,1 项失败:test_apply_coupon——应为 90,实际 100」
4write_file(path="test_cart.py", …)(改掉那一条)「已写入 41 行」
5run_tests(path="test_cart.py")「4 项通过」

拿到最后那句「4 项通过」,它不再写任何工具调用(模型写下的那句「我要用某个工具、参数是什么」,行话就叫这个),而是直接对你说: 「测试已经写好并全部通过。」到这里它停了。

三个细节值得看清楚:

第一,每一圈都是「写下一句话 → 停住 → 等结果」。 模型从头到尾没有执行过任何东西,它只是写字。第 2 圈那 41 行测试代码, 也是它写成文字交出去、由外面那一侧落到磁盘上的。

第二,第 3 圈那句反馈是整件事的转折点。 如果没有人把「1 项失败,应为 90,实际 100」这句话送回去, 它会以为活干完了。看得见结果,它才改得动。

第三,它连着转了五圈才停。 不是三圈,也不是十圈—— 第 5 圈的反馈里没有失败项,它就不再往下转了。

这一来一回的圈,书里给了一个名字:动作—反馈循环 (模型做一个动作 → 反馈被收集起来送回模型 → 模型决定是收工、再做一个动作、 还是回头找用户要更多信息)4

4. 判定标准:下一步由谁挑

这一节要改掉你在第 1 节可能形成的判断。

读完前面三节,很自然会得出一条判据:「能动手 = 智能体」。

这条不够。 一个天气应用可以每天早上八点自动去天气网站取一次数据、 把结果交给模型写成一段播报——它也「动了手」,也有「反馈」, 但它不是智能体。因为那个八点、那个天气网站,是写在代码里的,不是模型挑的。

真正的分水岭在这一句:

下一步用哪个工具、要不要再转一圈,是模型挑的,还是代码挑的?

书里把这条说得很直白:智能体能够自己决定在一圈或多圈里用哪些工具、做哪些动作; 而另一类系统是用代码路径来决定用哪些工具、做哪些动作、怎么做5

这本书为什么必须先钉死一条定义

作者一上来就承认了一件事:「智能体」这个词,你搜到的定义比搜到的链接还多; 连着问同一个聊天机器人几遍,它给你的答案都不一样6

所以他做了一个选择——采用 Anthropic 那篇《Building Effective Agents》里的定义: 一个智能体是这样一个系统,大语言模型在其中自主地掌控自己的处理过程和工具使用, 并对「如何完成任务」保持控制权6

先钉死一条定义,不是学术洁癖,是工程需要。 后面每一章都要回答「这件事该由模型决定还是由我决定」, 而这个问题只有在定义确定之后才答得出来。你可以不同意这条定义,但不能没有定义。

5. 我们的判断:这条定义有多硬

判断(我们的,不是书里的): Anthropic 那条定义是当前被引用最多的一条, 但它不是唯一的一条,也不是标准组织定的——它出自 2024 年 12 月一家模型厂商的工程博客7。 它把「模型自己决定」当成了唯一的分水岭,这在写代码的时候好用(判据清晰), 但它把另外两条差异排除在外了:能不能跨好几次对话记住东西、能不能和别的智能体协作如果错,会错在: 如果将来行业共识变成「必须同时具备自主决策 + 长期记忆(把跨越多次对话的东西存下来、以后还能取用)」才算智能体, 那么按这条定义写出来的一大批系统就会被重新归类, 而这本书里所有「智能体」的说法都要跟着缩水一档。判据是: 下一版有影响力的分类法把「记忆」放进定义里没有。

顺带一提,作者在这一章还提了一句值得记住的观察:从用户那一侧看, 智能体和普通聊天机器人几乎没有区别——都是一个聊天框,你问它答。 差别在于你可以要求它去做一件事,而它能通过工具、专门的话术、 数据、记忆以及与其他智能体的协作,给出定制化的结果8

6. 边界:原书这一章有一半是空的

这一节必须先说,否则你会以为我们漏讲了什么。

原书第 1 章列了六个小节,其中四个只有标题,正文写着「稍后补充」:

小节原书里的状态
智能体是什么写完了(本章第 2–4 节讲的就是它)
智能体在生成式 AI 里怎么用开了两段,然后是「(More coming soon)」9
智能体带来了什么开了一段,然后是「(More coming soon)」10
案例与用例只有四个标题:编码智能体、研究智能体、客服智能体、企业助手——正文一个字没有11
MCP 在其中的角色只写了那道乘法题(第 03 章讲),后面是「(More coming soon)」
别的同类规矩只有标题,正文是「(More coming soon)」

而且这一章里三处配图全部写着「Figure coming soon」3—— 包括本章第 3 节那条循环、第 02 章那两条流程、第 03 章那道乘法题。 所以这几处的具体走查都是我们照文字描述重建的,书里没有画出来。

作者对全书的规划是:第 2 到 5 章讲清每个组件,第 6 到 9 章带你做一个完整项目12这两部分目前都不存在。

本组拆解的做法: 凡是原书留空、而我们认为读者必须知道的地方, 一律从官方规范补上,并在该处脚注里写明「补充(不在书里)」加上查阅日期。 书里没有的东西,我们绝不会写得像书里有。

7. 可带走的

  1. 模型的输出只有文字——它没有手,任何真实动作都必须由外面一段程序代劳;
  2. 那段程序叫工具,定义是「智能体外面的、由智能体调用的代码」——它只是普通代码;
  3. 模型不执行工具,它只写下「我要用 X、参数是 Y」然后停住,真正去跑的是外面那一侧;
  4. 一圈 = 写下动作 → 外面跑完 → 结果塞回去 → 模型再决定,这叫动作—反馈循环;
  5. 看得见结果,它才改得动——上面那条走查里,「1 项失败」那句反馈是全程的转折点;
  6. 判定不看「用没用工具」,看「下一步由谁挑」:模型挑是智能体,代码挑不是;
  7. 这本书采用的是 Anthropic 那条定义,它是被引用最多的一条,但不是唯一的一条;
  8. 原书这一章有四节只有标题,后面凡是补上的内容,我们都会当场标明不是书里的。

8. 原文地图

主题原书章原文位置
智能体的定义、工具的定义、循环Chapter 1. Agentic AI and MCPtext/04-ch01-chapter-1-agentic-ai-and-mcp.txt:18(搜「dynamically direct their own processes」) · :18(搜「gather feedback before proceeding」)
写单元测试那个例子Chapter 1. Agentic AI and MCPtext/04-ch01-chapter-1-agentic-ai-and-mcp.txt:20(搜「write unit tests for your code」)
配图全部缺失Chapter 1. Agentic AI and MCPtext/04-ch01-chapter-1-agentic-ai-and-mcp.txt:22(搜「Figure coming soon」)
智能体与工作流的根本差别Chapter 1. Agentic AI and MCPtext/04-ch01-chapter-1-agentic-ai-and-mcp.txt:34(搜「The chief difference to remember」)
定义之乱、采用 Anthropic 的定义Chapter 1. Agentic AI and MCPtext/04-ch01-chapter-1-agentic-ai-and-mcp.txt:18(搜「more definitions than you will find links」)
用户视角看不出差别Chapter 1. Agentic AI and MCPtext/04-ch01-chapter-1-agentic-ai-and-mcp.txt:38(搜「customized experiences to the user」)
四节只有标题Chapter 1. Agentic AI and MCPtext/04-ch01-chapter-1-agentic-ai-and-mcp.txt:42(搜「More coming soon」) · :52(搜「Agentic systems are being deployed seemingly everywhere」)
全书规划Chapter 1. Agentic AI and MCPtext/04-ch01-chapter-1-agentic-ai-and-mcp.txt:88(搜「chapters 2 through 5」)

Footnotes

  1. 出处:「Chapter 1. Agentic AI and MCP」第 18 段(text/04-ch01-chapter-1-agentic-ai-and-mcp.txt:18,搜「outside」)。原文对工具的括号定义是:任何在智能体「外面」、被智能体调用来完成某件事的代码。注意这个定义极宽——它不要求工具是远程的、也不要求它有什么特别结构。

  2. 出处:「Chapter 1. Agentic AI and MCP」第 20 段(text/04-ch01-chapter-1-agentic-ai-and-mcp.txt:20,搜「write unit tests for your code」)。原文举的是「你在 Cursor 或 Windsurf 这类 AI 代码编辑器里让聊天机器人给你的代码写单元测试」。

  3. 出处:「Chapter 1. Agentic AI and MCP」第 22 段(text/04-ch01-chapter-1-agentic-ai-and-mcp.txt:22,搜「Figure coming soon」)。同一章里这句话出现了三次(第 22、28、32 段),分别对应循环图、写死流程图、智能体流程图——三张图一张都没有 2

  4. 出处:「Chapter 1. Agentic AI and MCP」第 18 段(text/04-ch01-chapter-1-agentic-ai-and-mcp.txt:18,搜「The action and feedback gathering occurs in a loop」)。原文列的三个出口是:把结果作为最终结果呈现给用户、用收集到的反馈再做一个动作、或者向用户收集更多反馈。

  5. 出处:「Chapter 1. Agentic AI and MCP」第 34 段(text/04-ch01-chapter-1-agentic-ai-and-mcp.txt:34,搜「The chief difference to remember」)。原文的对照是:智能体能在一圈或多圈里自己决定用哪些工具、采取哪些动作;而工作流用代码路径来决定用哪些工具、采取哪些动作、以及怎么采取。

  6. 出处:「Chapter 1. Agentic AI and MCP」第 18 段(text/04-ch01-chapter-1-agentic-ai-and-mcp.txt:18,搜「more definitions than you will find links」)。同一段里作者写明本书采用的是 Anthropic 那篇《Building Effective Agents》给的定义,原文引用的是:一个系统,其中大语言模型「动态地主导自己的处理过程与工具使用,并对如何完成任务保持控制」。 2

  7. 补充(不在书里):这条定义出自 Anthropic 工程博客《Building Effective Agents》,发表于 2024 年 12 月 19 日。同一篇文章把「用代码路径编排模型与工具」的系统称为 workflows,把「模型自主主导流程」的系统称为 agents,并且明确建议:先用最简单的提示,评测之后仍然不够再上多步系统。来源:《Building Effective Agents》 https://www.anthropic.com/engineering/building-effective-agents(查阅于 2026-08-25)。

  8. 出处:「Chapter 1. Agentic AI and MCP」第 38 段(text/04-ch01-chapter-1-agentic-ai-and-mcp.txt:38,搜「customized experiences to the user」)。原文列的五样是:工具、专门的提示、数据资源、记忆,以及与其他智能体协调协作的能力。

  9. 出处:「Chapter 1. Agentic AI and MCP」第 42 段(text/04-ch01-chapter-1-agentic-ai-and-mcp.txt:42,搜「More coming soon」)。这一节正文只有两段,收在一句「这些不可思议的能力已经让人们对『怎么让智能体协同工作』产生了很大兴趣」上,然后就断了。

  10. 出处:「Chapter 1. Agentic AI and MCP」第 46 段(text/04-ch01-chapter-1-agentic-ai-and-mcp.txt:46,搜「A single agent transforms an LLM」)。这一段是这一节的全部内容,后面紧跟着「(More coming soon)」。

  11. 出处:「Chapter 1. Agentic AI and MCP」第 52 段(text/04-ch01-chapter-1-agentic-ai-and-mcp.txt:52,搜「Agentic systems are being deployed seemingly everywhere」)。紧接着的四个标题(编码、研究、客服、企业助手)在原文里各自单独成段、后面一个字都没有。

  12. 出处:「Chapter 1. Agentic AI and MCP」第 88 段(text/04-ch01-chapter-1-agentic-ai-and-mcp.txt:88,搜「chapters 2 through 5」)。原文说第一部分(第 2–5 章)靠讲解与示例带你熟悉协议的每个组件,第二部分(第 6–9 章)带你做一个用上整套架构的项目。这两部分在这一版里都还不存在。