从 LLM 到 Agent:大语言模型是如何从聊天机器人进化为能帮你做事的智能体

0 阅读19分钟

写在前面

从 Transformer 到 LLM 的技术原理。你已经知道,大语言模型本质上是一个"预测下一个词"的概率机器。

但你每天用的 ChatGPT、Claude、Gemini,早已不只是"聊天"了——它们能帮你搜索信息、写代码并运行、操作浏览器下单购物、甚至直接控制你的电脑完成工作。

从"能聊天"到"能做事",这中间发生了什么?

这篇文章会带你理解这个进化过程中的每一个关键技术节点:思维链、工具调用、RAG、Agent 架构、UI Agent,以及它们如何组合成今天你看到的 AI 智能体。


第一章:LLM 的原始困境——聪明但无能

1.1 一个只会说话的大脑

2022 年底 ChatGPT 发布时,它震惊了世界。但冷静下来你会发现,它有几个致命的短板:

短板表现
没有记忆不知道今天是几号,不记得上次聊了什么
没有知识更新训练数据有截止日期,不知道最新发生的事
不会计算问它 1234 × 5678,大概率算错
不能行动不能发邮件、不能查数据库、不能操作任何外部系统
会编造事实自信地胡说八道(幻觉问题)

用一个比喻:LLM 是一个博学但被关在隔音房里的天才——它知道很多,但看不见外面的世界,也伸不出手去做任何事。

1.2 从 Chatbot 到 Agent 的核心问题

要让 LLM 从"聊天机器人"变成"能做事的智能体",需要解决三个问题:

  1. 怎么让它更好地推理? → 思维链(Chain of Thought)
  2. 怎么让它获取外部信息? → RAG(检索增强生成)
  3. 怎么让它采取行动? → 工具调用(Tool Use / Function Calling)

这三个能力叠加在一起,就构成了 Agent 的基础。


第二章:思维链——教 LLM "一步一步想"

2.1 问题:LLM 不擅长复杂推理

直接问 LLM 一个需要多步推理的问题,它经常出错:

问:Roger 有 5 个网球,他又买了 2 罐网球,每罐 3 个。他现在有几个网球?
答:11 个。  ← 错误!正确答案是 5 + 2×3 = 11... 等等,这个恰好对了

问:一个餐厅有 23 个苹果,用掉 20 个做午餐,又买了 6 个,现在有几个?
答:27 个。  ← 错误!正确答案是 23 - 20 + 6 = 9

LLM 倾向于直接"跳"到答案,跳过中间推理步骤,导致复杂问题频繁出错。

2.2 解决方案:Chain of Thought(CoT)

2022 年,Google 的 Jason Wei 等人发表了开创性论文 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models,提出了一个极其简单但效果惊人的方法:

在提示中加入推理步骤的示例,让模型学会"一步一步想"。

标准提示:
  问:一个餐厅有 23 个苹果,用掉 20 个做午餐,又买了 6 个,现在有几个?
  答:27 个。 ← 错误

思维链提示:
  问:一个餐厅有 23 个苹果,用掉 20 个做午餐,又买了 6 个,现在有几个?
  答:餐厅最初有 23 个苹果。
      用掉 20 个后剩下 23 - 20 = 3 个。
      又买了 6 个,所以现在有 3 + 6 = 9 个。
      答案是 9 个。 ← 正确!

更神奇的是,后来研究者发现只需要在提示末尾加一句 "Let's think step by step"(让我们一步一步想),就能显著提升推理准确率。这就是 Zero-shot Chain of Thought(Kojima et al., 2022)。

2.3 为什么思维链有效?

思维链的本质是:把一个复杂问题分解成多个简单的子步骤,每个子步骤都在 LLM 的能力范围内。

LLM 不擅长一步到位地解决复杂问题,但它擅长做简单的单步推理。思维链就是利用了这一点——让模型自己生成中间步骤,每一步都降低了难度。

2.4 从 CoT 到 Agent 的推理能力

思维链是 Agent 推理能力的基石。后来的所有 Agent 框架,都依赖模型"先想清楚再行动"的能力:

  • ReAct(Reasoning + Acting):交替进行推理和行动
  • Tree of Thoughts:探索多条推理路径
  • Reflection:对自己的推理结果进行反思和修正

第三章:工具调用——给 LLM 一双手

3.1 关键突破:让模型自己决定调用什么工具

2023 年 2 月,Meta 发表了 Toolformer: Language Models Can Teach Themselves to Use Tools,证明 LLM 可以自主学会在生成文本的过程中调用外部工具(计算器、搜索引擎、翻译 API 等)。

2023 年 6 月,OpenAI 正式发布了 Function Calling 功能,这是工具调用走向产品化的标志性事件。开发者可以向模型描述可用的函数,模型会智能地决定是否调用、调用哪个、传什么参数。

3.2 工具调用的工作原理

用户:"北京今天天气怎么样?"

┌─────────────────────────────────────────────────┐
│  LLM 内部推理:                                   │
│  "用户问天气,我自己不知道实时天气,               │
│   但我有一个 get_weather 工具可以用。"             │
│                                                   │
│  LLM 输出(不是文字,而是一个工具调用请求):       │
│  {                                                │
│    "tool": "get_weather",                         │
│    "arguments": {"city": "北京"}                  │
│  }                                                │
└─────────────────────────────────────────────────┘
          ↓
    系统执行工具,获取结果:
    {"temperature": "22°C", "condition": "晴"}
          ↓
    结果返回给 LLM
          ↓
┌─────────────────────────────────────────────────┐
│  LLM 基于工具结果生成最终回答:                    │
│  "北京今天天气晴朗,气温 22°C,适合出行。"         │
└─────────────────────────────────────────────────┘

关键点:模型自己决定要不要调用工具、调用哪个工具、传什么参数。 这不是硬编码的 if-else 逻辑,而是模型基于语义理解做出的判断。

3.3 工具调用 = LLM 的"手"

有了工具调用,LLM 的能力边界被彻底打开:

工具能力
搜索引擎获取实时信息,解决知识截止问题
计算器/代码解释器精确计算,解决数学不可靠问题
数据库查询访问企业内部数据
文件读写操作本地文件系统
Shell 命令执行系统操作
API 调用与任何外部服务交互
浏览器访问和操作网页

第四章:RAG——给 LLM 一个外部大脑

4.1 问题:LLM 的知识是"冻结"的

LLM 的知识来自训练数据,训练完成后就"冻结"了。它不知道:

  • 今天的新闻
  • 你公司内部的文档
  • 最新发布的技术文档
  • 任何训练数据截止日期之后的信息

而且即使是训练数据中包含的知识,模型也可能记错或编造(幻觉问题)。

4.2 RAG 的核心思想

2020 年,Meta(当时的 Facebook AI Research)的 Patrick Lewis 等人发表了开创性论文 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks,提出了 RAG(检索增强生成)的概念。

RAG 的核心思想极其简单:先搜索,再回答。

传统 LLM:
  用户提问 → LLM 凭记忆回答 → 可能出错或过时

RAG:
  用户提问 → 先从知识库中检索相关文档 → 把文档和问题一起交给 LLM → 基于真实文档回答

4.3 RAG 的工作流程

                    ┌──────────────┐
                    │   知识库      │
                    │  (文档、网页、 │
                    │   数据库等)   │
                    └──────┬───────┘
                           │
                      ① 离线索引
                      (把文档切块,
                       转成向量存储)
                           │
                           ▼
用户提问 ──→ ② 检索 ──→ 向量数据库 ──→ 返回最相关的文档片段
                                              │
                                              ▼
                                    ③ 把问题 + 检索到的文档
                                       一起发给 LLM
                                              │
                                              ▼
                                    ④ LLM 基于文档内容
                                       生成有据可查的回答

四个步骤详解:

① 离线索引(Indexing)

把知识库中的文档切成小块(通常几百字一块),用 Embedding 模型把每块文本转成向量,存入向量数据库。

② 检索(Retrieval)

用户提问时,把问题也转成向量,在向量数据库中找到最相似的文档块(通常取 Top-K,比如最相关的 5 个片段)。

③ 增强(Augmentation)

把检索到的文档片段和用户的原始问题拼接在一起,作为 LLM 的输入上下文。

④ 生成(Generation)

LLM 基于提供的文档内容生成回答,而不是凭"记忆"回答。

4.4 RAG 解决了什么问题?

问题RAG 如何解决
知识过时知识库可以随时更新,不需要重新训练模型
幻觉回答基于检索到的真实文档,可以引用来源
领域知识缺失可以接入企业内部文档、专业数据库
成本比重新训练或微调模型便宜得多

4.5 RAG 的局限与演进

RAG 并非万能。检索质量直接决定回答质量——如果检索到的文档不相关,LLM 的回答也会跑偏。

近年来 RAG 技术持续演进:

  • Advanced RAG:查询改写、重排序、多轮检索
  • Graph RAG:微软提出的基于知识图谱的 RAG(From Local to Global: A Graph RAG Approach, 2024)
  • Agentic RAG:让 Agent 自主决定何时检索、检索什么、是否需要多次检索

NVIDIA 对 RAG 有一篇很好的科普文章:What Is Retrieval-Augmented Generation aka RAG


第五章:Agent 架构——把推理、工具、知识组合起来

5.1 什么是 Agent?

Agent(智能体)的定义很简单:一个能够感知环境、自主推理、并采取行动来完成目标的系统。

在 LLM 的语境下:

Agent = LLM(大脑)
      + 工具(手)
      + 知识/记忆(外部大脑)
      + 规划能力(思考策略)
      + 行动循环(感知-思考-行动的循环)

5.2 ReAct:Agent 的奠基性框架

2022 年,Shunyu Yao 等人发表了 ReAct: Synergizing Reasoning and Acting in Language Models,提出了 ReAct 框架。这篇论文是 LLM Agent 领域最重要的奠基性工作之一。

ReAct 的核心思想:让模型交替进行"推理"(Reasoning)和"行动"(Acting)。

用户问题:"2024 年奥斯卡最佳影片的导演还导过什么电影?"

Thought 1: 我需要先查 2024 年奥斯卡最佳影片是什么。
Action 1: search("2024 Oscar Best Picture")
Observation 1: 2024 年奥斯卡最佳影片是《奥本海默》(Oppenheimer)

Thought 2: 《奥本海默》的导演是克里斯托弗·诺兰。我需要查他的其他作品。
Action 2: search("Christopher Nolan filmography")
Observation 2: 诺兰的作品包括《盗梦空间》《星际穿越》《蝙蝠侠》三部曲……

Thought 3: 我现在有足够的信息来回答了。
Answer: 2024 年奥斯卡最佳影片《奥本海默》的导演是克里斯托弗·诺兰,
        他还导演了《盗梦空间》《星际穿越》《蝙蝠侠》三部曲等作品。

这个 Thought → Action → Observation 的循环,就是几乎所有现代 Agent 的基本模式。Google Research 也发表了一篇博客详细介绍了这个范式:ReAct: Synergizing Reasoning and Acting in Language Models

5.3 Agent Loop:万变不离其宗的核心循环

无论 Agent 框架多复杂,核心都是同一个循环:

                用户输入
                   ↓
            ┌──────────────┐
            │              │
            │   LLM 推理    │ ← 系统提示 + 工具描述 + 历史消息
            │              │
            └──────┬───────┘
                   │
          模型返回的是什么?
          /                \
    工具调用请求          纯文本回答
        │                    │
   执行工具,               返回给用户
   把结果加入消息            (循环结束)
        │
   回到 LLM 继续推理
   (循环继续)

这个循环用 Python 表达只需要十几行代码:

def agent_loop(messages, tools):
    while True:
        response = llm.chat(messages, tools=tools)
        messages.append(response)

        if response.stop_reason != "tool_use":
            return response.text  # 纯文本,结束

        # 执行工具调用
        for tool_call in response.tool_calls:
            result = execute_tool(tool_call)
            messages.append(tool_result(result))
        # 继续循环

模型决定何时调用工具、何时停止。代码只负责执行模型的决定。 这就是 Agent 的本质——智能来自模型,代码只是提供执行环境。

5.4 主流 Agent 框架一览

框架开发者特点链接
LangChainLangChain Inc.最早的 LLM 应用框架,生态丰富langchain.com
LlamaIndexLlamaIndex专注 RAG 和数据连接llamaindex.ai
smolagentsHugging Face极简 Agent 框架,用代码作为行动huggingface.co/blog/smolag…
AutoGenMicrosoft多 Agent 对话框架github.com/microsoft/a…
CrewAICrewAI多 Agent 协作,角色扮演模式crewai.com

5.5 MCP:Agent 工具调用的"USB-C"标准

2024 年 11 月,Anthropic 发布了 Model Context Protocol(MCP),一个开源的标准协议,用于标准化 AI 模型与外部工具和数据源之间的连接方式。

MCP 的意义在于:在 MCP 之前,每个 Agent 框架都有自己的工具接口格式,互不兼容。MCP 提供了一个统一标准,就像 USB-C 统一了设备接口一样。

MCP 之前:
  Agent A ──自定义格式──→ 工具 1
  Agent B ──另一种格式──→ 工具 1(需要重新适配)
  Agent C ──又一种格式──→ 工具 1(又要重新适配)

MCP 之后:
  Agent A ─┐
  Agent B ─┼── MCP 协议 ──→ MCP Server(工具 1)
  Agent C ─┘

开发者只需要把工具封装成 MCP Server,任何支持 MCP 的 Agent 都能直接使用。


第六章:UI Agent——让 AI 像人一样操作电脑

6.1 什么是 UI Agent?

前面讲的工具调用,本质上是通过 API(应用程序接口)与外部系统交互。但世界上绝大多数软件并没有 API——它们只有图形用户界面(GUI)

UI Agent(也叫 Computer Use Agent / CUA)的思路完全不同:不通过 API,而是像人一样,通过"看屏幕"和"操作鼠标键盘"来使用软件。

传统工具调用(API 方式):
  Agent → 调用 send_email(to="xxx", body="xxx") → 邮件发送成功

UI Agent(GUI 方式):
  Agent → 看到屏幕上的 Gmail 界面
        → 点击"撰写"按钮
        → 在收件人框输入地址
        → 在正文框输入内容
        → 点击"发送"
        → 确认邮件已发送

6.2 UI Agent 的技术原理

UI Agent 的核心是视觉语言模型(VLM)——既能理解文字,又能理解图像的模型。

工作循环:

  ① 截取当前屏幕截图
     ↓
  ② 把截图 + 任务描述发给 VLM
     ↓
  ③ VLM 分析屏幕内容,决定下一步操作
     输出:{"action": "click", "x": 450, "y": 320}
     或:  {"action": "type", "text": "Hello World"}
     或:  {"action": "scroll", "direction": "down"}
     ↓
  ④ 执行操作
     ↓
  ⑤ 截取新的屏幕截图 → 回到 ①

6.3 里程碑产品

Anthropic Claude Computer Use(2024 年 10 月)

Anthropic 是第一个将 Computer Use 作为产品级功能发布的公司。2024 年 10 月 22 日,他们发布了 Claude 3.5 Sonnet 的 Computer Use 功能,让 Claude 能够控制鼠标、键盘,像人一样操作电脑。详见 Anthropic 的技术博客:Developing a computer use model

OpenAI Operator / CUA(2025 年 1 月)

2025 年 1 月 23 日,OpenAI 发布了 Operator,一个基于 Computer-Using Agent(CUA)模型的浏览器 Agent。CUA 结合了 GPT-4o 的视觉能力和强化学习训练,能够自主浏览网页、填写表单、下单购物。技术细节见:Computer-Using Agent

Google Project Mariner(2024 年 12 月)

Google 在 2024 年 12 月 11 日发布了 Project Mariner,一个基于 Gemini 2.0 的浏览器 Agent,作为 Chrome 扩展运行,能够自主导航网页、搜索信息、完成在线任务。

6.4 UI Agent vs API Agent:对比

维度API AgentUI Agent
交互方式调用程序接口看屏幕 + 操作鼠标键盘
速度快(毫秒级)慢(需要截图、分析、操作)
可靠性高(结构化输入输出)较低(UI 可能变化)
覆盖范围仅限有 API 的系统理论上能操作任何软件
成本高(每步都需要视觉推理)
适用场景有 API 的系统优先用 API没有 API 的遗留系统、复杂 GUI 操作

最佳实践:能用 API 就用 API,API 覆盖不到的地方用 UI Agent 补充。 这也是为什么 Anthropic 的 Claude 同时支持 Tool Use(API 方式)和 Computer Use(GUI 方式)。

6.5 UI Agent 的评测基准

UI Agent 的能力如何衡量?学术界建立了多个基准测试:

  • OSWorldNeurIPS 2024):369 个真实桌面操作系统任务,涵盖 Web、桌面应用、文件操作等,是目前最全面的桌面 Agent 基准
  • WebVoyagerACL 2024):643 个真实网站上的端到端 Web 任务
  • SWE-bencharXiv 2023):2294 个真实 GitHub Issue,测试 AI 能否自主修复代码

第七章:编码 Agent——最成熟的 Agent 应用

7.1 为什么编码是 Agent 的最佳落地场景?

编码任务天然适合 Agent:

  1. 环境完全数字化:文件系统、终端、编辑器,全部可以通过工具访问
  2. 反馈即时明确:代码能不能运行、测试过不过,有客观标准
  3. LLM 天然擅长代码:训练数据中有海量开源代码
  4. 工具链成熟:编译器、测试框架、Linter 都是现成的

7.2 编码 Agent 的典型工作流

用户:"帮我给这个项目添加用户登录功能"

Agent 的工作流程:
  ① 读取项目结构和现有代码(感知)
  ② 制定实现计划(推理)
     - 创建用户模型
     - 实现注册/登录 API
     - 添加认证中间件
     - 编写测试
  ③ 逐步实现每个子任务(行动)
     - 读取相关文件
     - 编写新代码
     - 运行测试
     - 修复错误
     - 重复直到测试通过
  ④ 提交代码(完成)

7.3 代表性产品

产品类型特点
Claude Code (Anthropic)CLI Agent终端中运行,直接操作文件系统和 Shell
GitHub Copilot AgentIDE 集成在 VS Code 中自主完成编码任务
CursorAI IDE整个 IDE 围绕 AI Agent 设计
Devin (Cognition)全栈 Agent号称"AI 软件工程师",有自己的开发环境
SWE-agent (Princeton)研究框架专为 SWE-bench 设计的开源 Agent

Claude Code 是编码 Agent 中 harness 工程的典范——它不试图替代模型的智能,而是为模型提供最好的工具、知识和执行环境。这也是 learn-claude-code 项目详细拆解其架构的原因。


第八章:多 Agent 系统——从单兵作战到团队协作

8.1 为什么需要多个 Agent?

单个 Agent 的上下文窗口有限,处理复杂任务时容易"迷失"。解决方案是:把大任务拆分给多个专门的 Agent,各自负责一部分。

Lead Agent(主 Agent)
  ├── Coder Agent(写代码)
  ├── Reviewer Agent(审查代码)
  ├── Tester Agent(编写和运行测试)
  └── Docs Agent(写文档)

8.2 多 Agent 协作的关键挑战

挑战解决方案
Agent 之间怎么通信?消息队列、共享文件、异步邮箱
怎么分配任务?主 Agent 分配 或 Agent 自主认领
怎么避免冲突?每个 Agent 在独立的工作目录(worktree)中操作
怎么保证一致性?任务依赖图、状态同步

8.3 从单 Agent 到多 Agent 的演进路径

这正是 learn-claude-code 项目 s01-s12 的教学路径:

s01-s02: 单 Agent + 工具        (一个人干活)
s03-s06: 规划 + 知识 + 上下文管理 (一个人更聪明地干活)
s07-s08: 任务系统 + 后台执行      (一个人同时干多件事)
s09-s12: 多 Agent 协作 + 隔离执行 (一个团队协作干活)

第九章:全景图——从 LLM 到 Agent 的完整进化链

2020  RAG 论文发表(Lewis et al.)
     └── LLM 可以基于外部知识回答问题
  
2022  Chain of Thought(Wei et al.)
     └── LLM 学会"一步一步想"
  
2022  ReAct(Yao et al.)
     └── 推理和行动交替进行,Agent 范式诞生
  
2023  Toolformer(Schick et al., Meta)
     └── LLM 自主学会使用工具
  
2023  OpenAI Function Calling
     └── 工具调用产品化,开发者可以给 GPT 接工具
  
2023  GPT-4V / Gemini(多模态)
     └── LLM 能"看"图片,为 UI Agent 奠基
  
2024  Anthropic Claude Computer Use
     └── 第一个产品级 UI Agent,AI 能操作电脑
  
2024  Anthropic MCP 协议
     └── 工具调用标准化,Agent 生态互通
  
2024  Google Project Mariner
     └── 浏览器 Agent,AI 能自主上网
  
2025  OpenAI Operator / CUA
     └── 浏览器 Agent 产品化
  
2025  编码 Agent 爆发(Claude Code, Copilot Agent, Cursor...)
     └── Agent 在软件工程领域率先落地
  
  
  未来:Agent 进入更多领域
  (医疗、法律、教育、制造、农业……)

第十章:Agent 的未来与挑战

10.1 当前的核心挑战

挑战现状
可靠性Agent 在复杂任务上仍会犯错,需要人类监督
安全性Agent 能执行操作意味着能造成破坏,权限控制至关重要
成本每次推理都消耗 Token,复杂任务可能需要数百次 LLM 调用
延迟多步推理 + 工具调用,完成一个任务可能需要几分钟
评测缺乏统一的 Agent 能力评测标准

10.2 发展趋势

  1. 从对话式到主动式:Agent 不再等你提问,而是主动发现问题并解决(心跳机制、定时任务)
  2. 从单模态到多模态:同时理解文字、图像、视频、音频
  3. 从单 Agent 到 Agent 社会:多个 Agent 组成团队,分工协作
  4. 从云端到端侧:Agent 运行在手机、电脑本地,保护隐私
  5. 从通用到垂直:针对特定行业(医疗、法律、金融)深度优化

10.3 一句话总结

LLM 是大脑,工具是手,RAG 是外部记忆,思维链是思考方式,Agent Loop 是行为模式。把这些组合在一起,聊天机器人就变成了能帮你做事的智能体。


参考文献

  1. Wei, J. et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. NeurIPS 2022. arxiv.org/abs/2201.11…
  2. Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. NeurIPS 2022. arxiv.org/abs/2205.11…
  3. Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023. arxiv.org/abs/2210.03…
  4. Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS 2023. arxiv.org/abs/2302.04…
  5. Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS 2020. arxiv.org/abs/2005.11…
  6. Edge, D. et al. (2024). From Local to Global: A Graph RAG Approach. arxiv.org/abs/2404.16…
  7. OpenAI. (2023). Function calling and other API updates. openai.com/blog/functi…
  8. Anthropic. (2024). Developing a computer use model. anthropic.com/research/de…
  9. Anthropic. (2024). Introducing the Model Context Protocol. anthropic.com/news/model-…
  10. OpenAI. (2025). Introducing Operator. openai.com/index/intro…
  11. OpenAI. (2025). Computer-Using Agent. openai.com/index/compu…
  12. Google. (2024). A new AI model for the agentic era (Gemini 2.0 / Project Mariner). blog.google
  13. Xie, T. et al. (2024). OSWorld: Benchmarking Multimodal Agents for Open-Ended Tasks in Real Computer Environments. NeurIPS 2024. arxiv.org/abs/2404.07…
  14. He, Z. et al. (2024). WebVoyager: Building an End-to-End Web Agent with Large Multimodal Models. ACL 2024. arxiv.org/abs/2401.13…
  15. Jimenez, C.E. et al. (2023). SWE-bench: Can Language Models Resolve Real-World GitHub Issues? arxiv.org/abs/2310.06…
  16. NVIDIA. What Is Retrieval-Augmented Generation aka RAG. blogs.nvidia.com
  17. Hugging Face. (2024). smolagents: simple agents that write actions in code. huggingface.co/blog/smolag…
  18. Google AI Blog. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. ai.googleblog.com