返回
查看原链接原链接
Bilibili23分54秒 · —

AI Agent 入门指南

AI Agent 核心概念:从零理解智能体的工作原理

AI Agent(智能体)本质上是“根据当前上下文自主决定动作序列与停止时机”的程序,其核心价值不在于大规模参数,而在于大语言模型(LLM)作为“大脑”动态掌控循环、调用工具并自主判断何时完成任务。

课程背景与核心路线

本系列视频由杨旭主讲,核心目标是使用 Rust 编程语言从零开始构建一个 AI Agent,而不是依赖任何现成的 Agent 搭建框架(如 LangGraph、CrewAI、OpenAGent 等)。

为什么选择从零构建: 现有框架虽然能帮助快速搭建 Agent,但内部真正发生的事情被隐藏了,不利于深入理解 Agent 的每个零件如何工作。本系列不使用 Python,而是 Rust,需要先了解底层原理才能更好地开发。

课程预期成果: 彻底搞清楚 AI Agent 每一个零件的工作方式——从 Agent 循环、工具调用到上下文管理等核心机制。


一、Agent 的三大分类

市面上 AI Agent 大致分为三类:

类型代表产品主要功能
个人助理ChatGPT、Claude、Gemini、豆包(中国)搜索网页、生成并执行代码、分析文档、生成图像/视频
面向客户的商业 Agent各类处理订单/客服场景的 Agent处理订单退款、客户问题解答等
专业垂直 AgentClaude Code、Cursor(编码助手);深度研究类 Agent自主修改代码库、修复 Bug、扫描上百个来源生成报告

三者关键共同点: 底层都是大语言模型(LLM),都依赖 LLM 来做出决策。


二、大语言模型(LLM)的本质

2.1 什么是 LLM

大语言模型是在几乎所有互联网公开文本上训练出来的语言模型。虽然现在的大语言模型已经演化为能够处理图像、音频、视频等多模态输入的模型,但它们共享同一个基础的架构,因此仍可统称为 LLM。

2.2 核心原理

大语言模型的根本原理非常基础——通过处理海量文本数据来学习预测下一个词(token)

2.3 关键能力:泛化能力

LLM 的关键在于泛化能力,即不需要针对每个任务单独训练即可完成新任务的能力:

  • Few-shot learning(少样本学习): 给出几个示例即可学习新的任务模式
  • Zero-shot(零样本): 即使完全不提供示例也能完成任务

这种泛化能力正是 LLM 能够充当 Agent“大脑”的根本原因——无需为每个新任务重新训练模型。


三、Agent 的定义与典型行为

3.1 研究型 Agent 的典型案例

假设一个研究型 Agent 收到用户提问:“2025年全球科研的方向是哪个方向”,它的工作流程是:

  1. 从多个来源收集信息
  2. 确定 2025 年科研的主要成就
  3. 搜索学术论文,查阅主要网站(如维基百科)
  4. 将信息综合成连续报告,说明科研成就及对 A 领域的影响

关键点: 每个步骤(先检查哪个来源、搜索结果是否足够、下一步查什么、何时开始写报告)都不是硬编码的,而是 LLM 在每个时刻根据当前上下文实时做出的决策。

3.2 Agent 的核心定义

大语言模型 Agent(AI Agent)是根据当前上下文自主决定动作序列与停止时机的程序。

3.3 传统软件 vs. AI Agent

对比维度传统软件AI Agent
控制流(Control Flow)开发者事先写死在代码里(if/else、for 循环、函数调用顺序)部分控制流的决策权交给大语言模型
决策时机编译期/编码时已确定运行时根据当前上下文动态决策
灵活性固定路径自主决定下一步与停止条件

四、Agent 的三要素

一个完整的 AI Agent 必须包含以下三个要素:

① LLM 大脑

  • 职能:理解当前情景、决定下一步做什么
  • 地位:Agent 的决策中枢

② 工具

  • 背景:LLM 本身只能生成文本,无法直接与外部世界交互
  • 作用:使 Agent 可以真正地进行网页搜索、代码执行、数据库查询等外部操作
  • 本质:弥合大模型与实际物理/数字世界之间的鸿沟

③ 循环

  • 大多数任务的完成不是一步就能解决的,需要反复执行迭代
  • 什么时候停止由 LLM 自主决定,由其自行判断任务是否达成目标

五、Agent 循环(The Agent Loop)

5.1 循环存在的必要性

循环之所以必要且重要,是因为很难事先知道需要哪些工具,以及完成任务需要多少步骤

5.2 循环的完整流程示例

以“查询 2024 年诺贝尔物理奖相关信息”为例,Agent 的工作流如下:

  1. 步骤一——评估状态: LLM 评估当前上下文,判断是否需要工具
  2. 步骤二——选择工具: 如果信息不足,根据缺失的内容决定使用哪些工具(例如:搜索“2024 年诺贝尔物理学奖”,查询约翰·霍普菲尔德与杰弗里·辛顿,查找学术论文,访问维基百科获取背景知识等)
  3. 步骤三——执行工具: 工具执行完成后产生结果
  4. 步骤四——追加上下文: 工具结果被添加回 LLM 的上下文中,丰富模型对主题的理解,累积上下文,使后续迭代中能做出更明智的决策
  5. 步骤五——判断是否循环: 评估信息是否足够;如果不够,重复步骤一至四;如果足够,LLM 自主决定停止
  6. 步骤六——生成最终报告

5.3 循环的本质意义

这种 思考(推理)→ 行动 → 观察 的迭代过程使 Agent 能够处理复杂度不可预知的任务:

  • 简单任务可能只需一次搜索即可得到结果
  • 复杂的研究任务可能需要数十个信息来源、经历数十次迭代循环

六、自主性级别与架构选择

将 LLM 集成到程序中时,开发者面临一个根本性架构选择:LLM 应该在多大程度上控制执行流程?

6.1 七个自主性级别

从左到右自主性递增,共七个节点:

纯代码 → 单次调用 → 链式调用 → 路由 → 工具调用 → 多步循环 → 工具创造
(工作流)────────────────────→(真正的 AI Agent)────────────────→

6.2 三个评估维度

七个节点分别从三个维度评估:

  1. 谁产生当前的输出
  2. 谁决定接下来发生什么(下一步做什么)
  3. 谁定义可用的选项

6.3 各级别详细解析

第 1 级:纯代码(传统软件)

  • 输出、决策流程、可用选项均由开发者编写的代码决定
  • 最不智能的一级

第 2 级:单次 LLM 调用

  • 最基础的 LLM 集成形式:一个提示词进、一个响应出
  • 适用于文本分类、摘要生成、翻译等功能
  • 特定任务委托给模型,其余一切保持开发者控制
  • 重要发现: 即使形式简单,设计良好时也能处理出人意料的复杂任务

第 3 级:链式调用

  • 将多个 LLM 调用按预定义顺序连接;前一步输出成为下一步输入
  • 整个流程由开发者预先设计,LLM 按流程逐步执行
  • 设计原理: LLM 在执行专注且定义明确的任务时表现最好
  • 案例对比:让模型“分析该文档并创建一个更好的 PPT”属于模糊任务;链式调用将其拆解为独立步骤(如先提取文档关键点→按章节组织生成 PPT 内容→润色),每个步骤更简单、更容易成功

第 4 级:路由

  • 引入逻辑条件分支:遇到分叉点时由 LLM 决定走哪条预定义的路径
  • 模型对用户查询进行分类,然后路由到相应处理流程/程序

第 5~6 级:工具调用与多步循环真正的 AI Agent

  • Agent 的定义: 一种系统,其中 LLM 动态主导自己的处理过程和工具使用,掌握完成任务的主动权
  • 两个标志性能力结合: ① 使用外部工具的工具调用能力 ② 任务完成前持续运行的自主性
  • 工具的作用: 将外部功能(网络搜索、代码执行、数据库调用、API 调用、执行二进制文件等)暴露为可供 Agent 调用的函数
  • 工具调用过程: LLM 审查可用工具→判断某些工具是否可能有帮助→指定工具并传入相应参数
  • 关键区别: Agent 不是单次工具调用后就停止,而是在周期中循环运行——评估当前状态→决定行动→调用工具→获取结果→观察状态→追加到上下文→判断是否继续循环直到完成

第 7 级:工具创造

  • 最高自主性级别:Agent 不仅从已有工具中选择,还能创造新工具
  • 通常涉及代码生成,以实现预定域工具包中不存在的功能
  • 例如编码 Agent 可能自主编写 Python/Node.js/PowerShell 脚本来执行特定任务(原因:提供的工具不具备该功能,或 Agent 无法在工具描述中找到合适匹配)
  • 核心价值: 允许 Agent 动态扩展自身能力,适应设计系统时未曾预料到的需求

七、何时需要使用 Agent

AI Agent 很强大,但并非万能。需要做两层判断

7.1 第一层:任务需要大语言模型吗?

  • 如果任务的输入是结构化的,数据逻辑规则清晰 → 传统代码可能更快、更便宜
  • 不需要 LLM 的场景使用 Agent 是过度设计

7.2 第二层:需要 Agent 还是单次 LLM 调用就够?

  • 例如“把德文翻译成中文”→ 单次 LLM 调用即可解决,不需要 Agent

7.3 使用 Agent 的三个必要条件

条件说明不适合的案例适合的案例
① 任务复杂度高且步骤数不确定如果步骤可预测且流程固定,用传统方式更优查询 A 地区人口(调用系统接口即可获得数据)分析大语言模型对未来的影响(步骤难以预先确定)
② 任务价值足够高需评估多次调用 LLM 的显性成本(Token 费用)和额外开销是否值得低成本任务使用 Agent 导致亏损值得投入调用数十万/百万/千万次 Token 的成本时
③ 错误可以被检测Agent 犯错很常见,如果无法检测错误发生且该错误风险较高,不能使用 Agent高风险专业场景且缺乏检测机制有验证机制的条件下可考虑

总结: 在专业领域采用 AI Agent 应保持谨慎态度。如果存在验证机制,才可考虑使用。


八、GAIA:Agent 基准测试

8.1 基本背景

  • 发布方: Meta 和 Hugging Face
  • 发布时间: 2023 年
  • 定位: 专门为需要 Agent 的任务设计的数据集/评测基准

8.2 测试内容的针对性

GAIA 收集的是以下类型的问题:

  • 单次大语言模型调用搞不定的问题
  • 预定义工作流也无法清晰写出的问题

→ 这些问题恰好是需要 Agent 的典型场景。

8.3 示例问题

“如果那个人以维持马拉松世界纪录的速度从地球跑到月球需要多久?”

回答此问题需要:

  1. 搜索这个“人”是谁(马拉松世界纪录保持者)
  2. 查询该人的纪录成绩是多少
  3. 搜索地球到月球的距离
  4. 进行单位换算和速度计算

8.4 选择 GAIA 作为基准的三大理由

  1. 答案清晰: 可以立即验证答案对错,支持快速迭代
  2. 难度适中: 能够完整走完开发、调试、改错的循环
  3. 无需专业知识: 以网页搜索和信息综合为主

课程计划: 在 Rust 实现每个主要特性后,都会使用 GAIA 测试来验证实际效果。


九、上下文工程(Context Engineering)

9.1 提示词(Prompt)的两大类型

提示词是用户发给大语言模型的输入文本,主要分为:

① 系统提示(System Prompt)

  • 给系统设定人设,规定模型应该如何响应和行为
  • 例如:“你是一个友善的编程向导”——这样模型就会以友善的方式指导编程

② 用户信息(User Message)

  • 用户的实际需求或实际请求

9.2 上下文(Context)

上下文是比提示词更大的概念,包括:

  • 系统提示
  • 用户信息
  • 历史对话
  • 工具执行结果
  • 检索到的文档信息

上下文的核心地位: 大语言模型在生成回复时会参考上下文中的所有信息。上下文相当于 LLM 的工作内存——模型只能基于上下文中的信息进行预测。如果关键信息不在上下文里,再聪明的模型也给出不了正确答案。

9.3 Agent 失败的两大原因

原因说明解决方式
① 模型智能不足模型本身能力不够等待更强的模型出现
② 上下文缺少必要信息Agent 失败的更常见原因通过上下文工程技术解决

上下文工程的定义: 在正确的时间、以正确的形式,向大语言模型提供它所需的信息。


十、上下文腐烂(Context Rot)

10.1 越多越好吗?——并非如此

当前许多模型支持 100 万 Token 的超长上下文,但研究结论表明:直接将所有信息塞进去并不正确。

10.2 核心问题

① 上下文腐烂(Context Rot)

  • 现象:上下文长度增加,模型性能反而下降
  • 实验数据:不同模型在不同长度的上下文下测试,所有模型都表现出性能随 Token 数量增加而下降的趋势

② 中间迷失效应(Lost in the Middle)

  • 现象:模型倾向于忽略放在上下文中间的重要信息
  • 影响:随着上下文长度增加,该效应更明显

10.3 正确结论

不是给大语言模型的信息越多越好,而是要精确提供高度相关的信息。这正是上下文工程要解决的核心问题。

10.4 上下文工程的五大策略

策略核心操作典型做法示例
生成(Generate)利用 LLM 的输出来构造上下文先生成计划 → 完成后反思
检索(Retrieve)从外部获取信息并加入上下文网页搜索、数据库搜索、文件读取
写入(Write)将上下文信息持久化到外部写入 Markdown 文件
压缩(Compress)主动压缩上下文对对话历史做摘要、删除无关信息
隔离(Isolate)将任务或工具放入独立环境沙箱隔离、使用专业的子 Agent

总结与下一步

本节内容核心回顾:

  1. LLM 的本质: 预测下一个 token 的语言模型,核心价值在于泛化能力
  2. AI Agent 的定义: 根据上下文自主决定动作序列与停止时机的程序
  3. Agent 三要素: LLM 大脑 + 工具 + 循环
  4. Agent 循环是实现复杂度不可预知任务处理的核心机制——思考→行动→观察→迭代
  5. 自主性七级别从纯代码逐步过渡到工具创造,其中后三级(工具调用、多步循环、工具创造)才被称为真正的 Agent
  6. 使用 Agent 需谨慎判断: 任务复杂度高、价值高、错误可检测时才适合使用
  7. 上下文工程是 Agent 成败的关键——正确的时间、以正确的形式提供需要的信息
  8. 上下文过长会引发上下文腐烂中间迷失效应,因此信息的精准性比数量更重要
  9. GAIA 基准用于评测 Agent 处理复杂多步任务的能力

课程预告: 第二节视频开始进入编码实战环节,使用 Rust 动手构建 AI Agent。