Skip to content

1.3 Agent 核心概念:从概念到实现

承前

在上一节中,我们回顾了大模型应用形态的演进路径——从最初的"提示词工程"阶段,到"检索增强生成(RAG)",再到"工具调用"(Function Calling),最终走向"自主智能体"(Autonomous Agent)。这条演进路线揭示了一个核心趋势:大模型正从一个被动的"文本生成器",逐步演变为能够主动感知、规划、行动的智能系统。理解了这条演进脉络之后,本节将正式回答一个关键问题——到底什么是 Agent?它由哪些核心部件组成?它和我们熟知的自动化工具(如 RPA)到底有什么本质区别? 只有把这些问题想清楚,后面章节的架构设计和工程实践才有根基。


什么是 AI Agent

从直觉出发:一个生活类比

想象你雇佣了一位名叫小艾的私人助理。小艾不仅听懂你的话,还记得你上次说过的事情;当你交给她一个任务——比如"帮我策划一场团建"——她会自己拆解成若干步骤:先定预算、再选场地、然后发问卷统计人数、最后预订餐厅。如果某家餐厅订满了,她会自动换一家,而不是卡在那里等你指示。她还会用手机打电话、用电脑查地图、用计算器算账——这些就是她的"工具"。

这位小艾,就是一个 Agent 的生活化投影。

现在把小艾的能力拆开来看:

  • 她要听到你的需求——这是"感知"
  • 她要回忆你的偏好和之前的项目经验——这是"记忆"
  • 她要计划先做什么后做什么——这是"规划"
  • 她要动手打电话、查地图、下订单——这是"执行"

而让她能够做这一切的"大脑",就是我们前两章一直在讨论的大语言模型(LLM)。

正式定义

AI Agent(智能体) 是一种能够自主感知环境、制定计划、调用工具、执行行动,并从反馈中学习的 AI 系统。与传统的 LLM 不同,Agent 不仅能"思考"和"说话",更能"行动"——它是一个以 LLM 为大脑、以工具为手脚、以记忆为经验的完整闭环系统。

为什么强调"行动"二字?因为传统 LLM 的输出仅限于文本。你可以让 GPT 生成一段 SQL,但它不会自己去数据库里执行这段 SQL,更不会在执行失败后修改语法重试。而 Agent 的关键价值,就在于打通了"思考"到"行动"之间的这最后一公里。它把语言模型从"纸上谈兵"变成了"身体力行"。

一句话理解:LLM 是大脑,Agent 是大脑 + 手 + 眼睛 + 记忆。

这个类比很直观,但它背后蕴含着一个重要的技术含义:Agent 不是一个单一的模型,而是一个系统(system)。它把 LLM 作为核心推理引擎,外挂了一整套软件基础设施。这也是为什么本书从第 5 章开始会用大量篇幅讲 Agent 架构设计——因为"系统"的设计复杂度远超"模型"本身。


Agent 的四大核心组件

一个完整的 Agent 由四大组件构成:感知(Perception)、记忆(Memory)、规划(Planning)、执行(Action)。这四者缺一不可,共同构成了一个"感知→思考→行动→记忆"的闭环。

        ┌──────────────────────────────────────┐
        │           AI Agent 架构               │
        │                                      │
        │   ┌──────────┐    ┌──────────┐       │
        │   │  感知模块 │    │  记忆模块 │       │
        │   │ (Perception)│  │ (Memory)  │       │
        │   └─────┬────┘    └─────┬────┘       │
        │         │              │             │
        │         ↓              ↓             │
        │   ┌─────────────────────────┐        │
        │   │      LLM 大脑           │        │
        │   │   (推理 + 决策)          │        │
        │   └───────────┬─────────────┘        │
        │               │                      │
        │         ┌─────┴─────┐                │
        │         ↓           ↓                │
        │   ┌──────────┐ ┌──────────┐          │
        │   │  规划模块 │ │  执行模块 │          │
        │   │(Planning) │ │(Action)   │          │
        │   └──────────┘ └─────┬────┘          │
        │                      │               │
        └──────────────────────┼───────────────┘

                    ┌──────────────────┐
                    │  工具 & 环境      │
                    │  API/数据库/文件  │
                    └──────────────────┘

下面逐一拆解。

感知模块:Agent 的"眼睛和耳朵"

感知模块负责将外部世界的信息转化为 Agent 可以理解的结构化输入。它接收三类信号:

  • 用户输入:文本、图片、语音——用户通过自然语言下达的指令
  • 环境状态:系统当前运行状态、数据库变化、传感器读数等
  • 工具返回结果:上一步执行后,工具返回的反馈信息

为什么感知模块如此重要?因为 LLM 本身是一个封闭的文本到文本的函数——它既看不到你的屏幕,也读不到你的数据库。如果没有感知模块把外部信息"翻译"成文本喂给它,LLM 就像一个被关在小黑屋里的专家,空有满腹经纶却无从施展。

打个比方:如果你蒙住一位咨询师的眼睛、堵住她的耳朵,只在纸上递给她几行字让她做商业决策,效果可想而知。感知模块的作用,就是帮 Agent"睁开眼睛"。

记忆模块:Agent 的"经验本"

记忆模块是让 Agent 从"一次性问答"升级为"持续协作"的关键。它分为三层:

  • 短期记忆:当前对话的上下文窗口。就像你和人谈话时脑子里记着刚才说过的话——如果对方说了一句你忘了,对话就断了。短期记忆通常直接以 prompt 的形式传入 LLM,受限于模型的上下文长度。

  • 长期记忆:跨会话保存的用户偏好、历史交互、知识积累。就像你记住"张总喜欢喝美式咖啡"这件事——下次见面不用重新问。长期记忆通常存储在向量数据库中,通过语义检索按需调用。

  • 外部记忆:向量数据库、知识图谱中存储的结构化知识库。它不一定来自 Agent 自身的经历,也可以是预导入的文档、行业标准、法规条文等。

为什么要分这么多层?因为 LLM 的上下文窗口是有限的(即便是支持百万 token 的模型,也不可能把所有历史信息都塞进去)。分层记忆的本质是一种信息管理策略:把当下最相关的信息放在最前面(短期),把可能用到的信息放在可检索的仓库里(长期),把确定的知识放在百科全书中(外部)。这种设计模式在认知科学中被称为"工作记忆"与"长期记忆"的分离——人类大脑也是如此运作的。

规划模块:Agent 的"思维链"

当你给 Agent 一个复杂目标——比如"调研竞品并写一份分析报告"——它不会直接开始写,而是先做计划:

  1. 搜索相关竞品信息
  2. 提取各家产品的核心功能
  3. 对比功能差异
  4. 汇总成报告大纲
  5. 逐节撰写

这就是规划模块的工作:任务分解(将复杂目标拆解为可执行的子任务)、路径规划(确定执行顺序和依赖关系)、动态调整(根据执行反馈修改计划)。

为什么规划如此关键?因为 LLM 虽然擅长"一步到位"地生成文本,但面对需要多步骤、多工具协作的复杂任务时,如果一次性让模型输出全部内容,往往会出现"想到哪写到哪"、逻辑跳跃、遗漏步骤的问题。规划模块的作用,就是把一个大的、模糊的目标,变成一连串小的、明确的动作序列。这就像项目经理把一个大项目拆成 WBS(工作分解结构)一样——拆得越细,执行越可控。

本书第 3 章(提示工程)中讲到的思维链(Chain of Thought)、思维树(Tree of Thoughts)等技术,本质上都是在强化 Agent 的规划能力。

执行模块:Agent 的"双手"

执行模块是 Agent 与外部世界交互的接口,负责将 LLM 的决策转化为实际操作:

  • 工具调用:调用 API、查询数据库、执行代码、发送邮件
  • 输出生成:将执行结果整理为最终回复返回给用户
  • 错误处理:执行失败时的重试、降级和异常报告

执行模块最核心的概念是工具(Tool)。一个工具本质上就是一个可被 LLM 调用的函数:它有名字、有参数说明、有返回值。LLM 通过 Function Calling 机制决定"调用哪个工具、传什么参数",执行模块负责真正运行这个函数并把结果返回给 LLM。

为什么不让 LLM 直接操作一切?因为 LLM 是概率模型,它的输出有不确定性。而数据库操作、文件写入、支付指令等动作是不可逆的。所以执行模块通常会加入权限控制确认机制——这也是后面讲到的"人类在环"(Human-in-the-loop)设计的由来。

一个最小 Agent 的代码骨架

为了把上面的概念落到代码层面,下面展示一个最小化的 Agent 实现骨架。这段代码用 Python 编写,帮助读者直观感受四大组件如何协作:

python
from typing import Dict, List

# ============================================================
# 组件 1:感知模块 —— 将用户输入和环境状态转为 Agent 可处理的消息
# ============================================================
def perceive(user_input: str, env_state: dict = None) -> List[Dict]:
    """
    接收用户原始输入和环境状态,构造 LLM 消息格式。
    :param user_input: 用户的自然语言指令,如"帮我查一下今天的天气"
    :param env_state:   环境状态字典,如 {"location": "上海", "time": "2026-07-21"}
    :return:            构造好的消息列表,供 LLM 处理
    """
    # 把环境信息拼接到 system prompt 中,让 LLM "感知"到当前上下文
    system_prompt = f"你是一个助手。当前环境信息:{env_state or {}}"
    # 返回标准化的消息列表(符合 OpenAI 消息格式)
    return [
        {"role": "system", "content": system_prompt},
        {"role": "user", "content": user_input}
    ]

# ============================================================
# 组件 2:记忆模块 —— 管理短期上下文和长期记忆
# ============================================================
class Memory:
    def __init__(self):
        self.short_term: List[Dict] = []   # 短期记忆:当前对话历史
        self.long_term: List[str] = []     # 长期记忆:跨会话的关键信息

    def add(self, message: Dict):
        """将一条消息加入短期记忆"""
        self.short_term.append(message)

    def recall(self, query: str, top_k: int = 3) -> List[str]:
        """
        从长期记忆中检索与当前查询相关的内容。
        实际项目中这里会接入向量数据库做语义检索,
        这里用简单匹配做演示。
        """
        return [m for m in self.long_term if query in m][:top_k]

# ============================================================
# 组件 3:规划模块 —— 将复杂任务拆解为子步骤
# ============================================================
def plan(goal: str, llm) -> List[str]:
    """
    调用 LLM 将目标拆解为可执行的步骤列表。
    :param goal: 用户的最终目标,如"写一份竞品分析报告"
    :param llm:  LLM 实例,用于生成计划
    :return:     步骤列表,如 ["搜索竞品信息", "提取核心功能", "对比分析", "撰写报告"]
    """
    prompt = f"请将以下目标拆解为 3-5 个具体步骤,用 JSON 数组返回:\n目标:{goal}"
    # 让 LLM 输出结构化的步骤列表
    steps = llm.generate(prompt)
    return steps

# ============================================================
# 组件 4:执行模块 —— 调用工具并执行操作
# ============================================================
# 工具注册表:工具名 -> 可调用函数
tools = {
    "search": lambda q: f"搜索结果:关于「{q}」的信息...",  # 模拟搜索工具
    "write_file": lambda path, content: f"已写入文件 {path}",  # 模拟文件写入
}

def execute(tool_name: str, **kwargs) -> str:
    """
    根据工具名调用对应函数,返回执行结果。
    :param tool_name: 要调用的工具名称,如 "search"
    :param kwargs:    传给工具的参数,如 q="竞品A"
    :return:          工具执行结果字符串
    """
    if tool_name not in tools:
        return f"错误:未知工具 {tool_name}"  # 错误处理:工具不存在
    return tools[tool_name](**kwargs)           # 调用工具并返回结果

# ============================================================
# Agent 主循环:感知 → 规划 → 执行 → 记忆(闭环)
# ============================================================
def run_agent(user_input: str, llm, env_state: dict = None):
    """
    Agent 的完整运行流程,串联四大组件。
    """
    memory = Memory()  # 初始化记忆

    # 第一步:感知 —— 接收用户输入
    messages = perceive(user_input, env_state)
    memory.add(messages[-1])  # 存入短期记忆

    # 第二步:规划 —— 将目标拆解为步骤
    steps = plan(user_input, llm)

    # 第三步:逐步执行
    for step in steps:
        # 让 LLM 决定这一步用什么工具、传什么参数
        decision = llm.generate(f"当前步骤:{step}\n请决定使用哪个工具。")
        result = execute(decision["tool"], **decision["params"])
        memory.add({"role": "tool", "content": result})  # 记录执行结果

    # 第四步:总结并输出
    final_output = llm.generate(f"根据以上执行结果,回答用户问题:{user_input}")
    return final_output

这段代码虽然简化了大量工程细节(错误重试、并发执行、记忆持久化等),但它忠实地展示了 Agent 的核心循环:感知输入 → 规划步骤 → 逐步执行 → 记录结果 → 生成回复。后续章节会逐步在这个骨架上添加血肉。


Agent 与 RPA 的本质区别

在讨论 Agent 时,一个几乎必被问到的问题是:"它和 RPA 有什么区别?"这是因为两者都涉及"自动化",很容易混为一谈。但实际上,它们代表了两种完全不同的技术范式。

RPA 是什么

RPA(Robotic Process Automation,机器人流程自动化)是一种基于规则的自动化技术。它按照预先编写好的脚本,模拟人类在计算机上的操作——点击按钮、填写表单、复制粘贴——自动化执行重复性任务。

RPA 工作方式

  预设规则 -> 按步骤执行 -> 固定输出
  (if-this-then-that)

  特点:确定性、可预测、无智能

可以把 RPA 想象成一个极其听话但毫无判断力的工人:你给他一份操作手册,告诉他"看到红色按钮就点,看到绿色按钮就停",他就会一丝不苟地执行。但如果某天界面改版了、红色按钮变成了橙色按钮,他就会彻底卡住——因为他只认识红色,不会自己判断"橙色大概也是可以点的"。

Agent 是什么

Agent 是基于 LLM 的智能决策系统。它不依赖预定义的脚本,而是根据目标和环境动态决定下一步行动。

Agent 工作方式

  目标 -> 感知环境 -> 推理决策 -> 选择行动 -> 观察结果 -> 调整策略
                                  ↑__________________________↓

  特点:自适应、可推理、能处理不确定性

同样是那个工人,如果换成了 Agent,他会理解"点这个按钮的目的是提交表单",即使按钮颜色变了、位置移动了,他也能找到"提交"这个含义对应的操作。

核心差异对比

维度RPAAI Agent
决策方式基于规则(if-else)基于推理(LLM)
灵活性低,只能处理预定义场景高,能处理未知场景
适应性环境变化需要重新编程能自适应环境变化
错误处理预设错误处理逻辑自主判断和纠错
适用场景固定流程、规则明确复杂多变、需要判断
开发方式录制 + 拖拽配置编程 + Prompt 工程
典型产品UiPath, Blue PrismAutoGPT, LangChain Agent

一个实际案例:处理客户退款

为了更直观地理解差异,我们来看同一个业务场景下两种技术的处理方式。

场景:一位客户发来邮件,说收到的商品有瑕疵,要求退款。

RPA 方式——

  1. 系统检查订单状态
  2. 如果"已发货"则拒绝退款
  3. 如果"未发货"则自动退款
  4. 记录日志

所有逻辑都是预定义的。如果客户的退款理由是"商品质量问题但已签收"——RPA 就不知道该怎么办了,因为这种情况没有预设规则。

Agent 方式——

  1. 系统读取客户的退款理由,理解客户在说什么、情绪如何
  2. 查看订单详情和物流状态
  3. 判断退款金额是否在自动授权范围内
  4. 如果金额小且符合政策,自动退款并生成一封措辞得体的道歉邮件
  5. 如果情况复杂(如金额超限、涉及多件商品),升级给人工客服,并附上分析摘要供客服参考

注意区别:RPA 只能做"已编码"的逻辑分支,而 Agent 能够"理解"退款的语义、判断复杂程度、甚至撰写邮件。这就是"自动化"与"智能化"的分水岭。

关键区别:RPA 是"自动化",Agent 是"智能化"。RPA 解决的是"重复性"问题,Agent 解决的是"复杂性"问题。

当然,这并不意味着 Agent 一定比 RPA 好。RPA 在流程固定、规则明确的场景中仍然有不可替代的优势——它确定、可审计、成本低。理想状态是两者的结合:用 Agent 做"判断和决策",用 RPA 做"执行和落地"。


Agent 的自主性层级 L1-L5

理解了 Agent 的定义和组件后,下一个问题自然浮现:Agent 到底有多"自主"? 这个问题之所以重要,是因为"自主性"直接决定了 Agent 能在多大程度上替代人类工作,也决定了人类需要在哪些环节介入。

为此,业界借鉴自动驾驶领域的 L1-L5 分级思路,提出了 AI Agent 的自主性层级框架。

自主性层级金字塔

                     ┌─────────┐
                    │   L5    │  完全自主
                   │  全自主   │  · 无需人类干预
                  │   Agent   │  · 自我改进
                 └─────────┘
                ┌─────────┐
               │   L4    │  高度自主
              │  条件自主  │  · 仅在关键决策时
             │   Agent   │    需要人类确认
            └─────────┘
           ┌─────────┐
          │   L3    │  有监督自主
         │  监督式   │  · 自主执行,人类
        │   Agent   │    监督并随时接管
       └─────────┘
      ┌─────────┐
     │   L2    │  半自主
    │  辅助式   │  · 人类分配任务
   │   Agent   │  · Agent 建议方案
  └─────────┘
 ┌─────────┐
│   L1    │  基础自动化
│  规则式   │  · 固定规则
│   Agent   │  · 无智能决策
└─────────┘

这个金字塔从下到上,自主性逐渐增强,人类的角色从"执行者"逐步转变为"监督者",最终变为"目标设定者"。理解这个框架的价值在于:它给了我们一把尺子,可以衡量任何 Agent 产品当前处于什么水平、还有多大的提升空间。

L1:规则式 Agent(Rule-based)

  • 特征:基于固定规则执行,无智能推理
  • 示例:传统 RPA 机器人、预设关键词的客服机器人
  • 人类角色:设计规则、处理异常
  • 典型场景:数据录入自动化、固定格式的报表生成

L1 本质上就是 RPA。它严格来说不算"Agent",但作为自主性光谱的起点,有助于我们理解整个分类体系。在 L1 层级,人类要预先想好所有可能的分支并编码成规则——这就像是给一个机器人写了极其详尽的操作手册,事无巨细。

L2:辅助式 Agent(Assistive)

  • 特征:人类分配任务,Agent 提供建议和方案,人类做最终决策
  • 示例:GitHub Copilot、ChatGPT 编码助手
  • 人类角色:决策者,Agent 是辅助工具
  • 典型场景:代码补全、文档润色、数据分析建议

L2 是当前最普及的层级。Copilot 模式的核心是"人机协作":Agent 不会自己动手写代码并提交,它只是给出建议,开发者来决定是否采纳。这种模式的好处是安全可控——所有最终决策都在人类手中。而这也是它被广泛接受的原因:风险低,收益高。

L3:监督式 Agent(Supervised)

  • 特征:Agent 自主执行任务,但每步都需要人类确认或可随时接管
  • 示例:Devin(AI 软件工程师)、需要人工审核的客服 Agent
  • 人类角色:监督者,拥有最终否决权
  • 典型场景:自动化代码修复(提交前人工审核)、AI 生成内容发布(人工审核)

L3 是当前快速发展中的层级。与 L2 的区别在于:L2 是"Agent 给建议、人类执行",L3 是"Agent 自己执行、人类审核"。这是一个质的飞跃——Agent 从"顾问"变成了"实习生"。实习生可以自己写代码、自己跑测试,但提交前需要导师 review。Devin 就是典型的 L3:它自主完成了需求分析、编码、测试的全流程,但关键节点仍需开发者确认。

L4:条件自主 Agent(Conditional Autonomy)

  • 特征:在特定领域内完全自主,仅在关键决策点需要人类确认
  • 示例:自动化运维 Agent(自动处理 90% 告警,严重故障人工介入)
  • 人类角色:设定边界条件,仅在关键节点介入
  • 典型场景:自动化交易系统、自动化运维、智能供应链

L4 的关键词是"条件"——在预设条件内完全放手,超出条件则交还人类。这就像自动驾驶中的 L4:在高速公路上可以完全自动驾驶,但驶入市区复杂路况时仍需人类接管。在企业场景中,L4 的设计要点是明确边界:什么样的情况下 Agent 可以自行决策,什么样的情况下必须上报人类。这涉及到后续章节会深入讨论的"策略引擎"和"人类在环"设计。

L5:完全自主 Agent(Full Autonomy)

  • 特征:在所有场景下完全自主,无需人类干预,能自我改进
  • 示例:(目前尚无真正实现)理论上完全自主的 AI 系统
  • 人类角色:设定终极目标,完全放手
  • 典型场景:全自动工厂、全自动科研 Agent

L5 目前只存在于理论和科幻中。它要求 Agent 不仅能处理所有已知场景,还能应对从未见过的新情况,甚至能反思和改进自身的运作方式。当前技术离 L5 还有相当距离——核心瓶颈不在 LLM 的推理能力,而在于系统的安全可控性、长期记忆的可靠性、以及多 Agent 协作的复杂度。本书第 11 章(安全与风险)会专门讨论为什么"完全自主"在当前阶段既不可行也不可取。

自主性层级速查表

层级名称决策权人类角色当前状态
L1规则式无决策规则设计者已成熟
L2辅助式AI 建议决策者已普及
L3监督式AI 执行 + 人类确认监督者快速发展
L4条件自主边界内自主边界设定者早期探索
L5完全自主完全自主目标设定者理论阶段

一个值得注意的趋势是:随着层级上升,人类参与度下降,但每次人类参与的"权重"在上升。L2 中人类每时每刻都在参与,但每次只是"接受/拒绝"一个建议;L4 中人类可能一周只参与一次,但那一次可能是一个重大决策。这意味着,自主性越高,对人类判断质量的要求反而越高——因为你能介入的机会越少,每一次介入就必须越精准。


Agent 的核心公式

在理解了定义、组件、对比和层级之后,我们可以用一个简洁的公式来概括 Agent 的本质:

Agent = LLM + Planning + Memory + Tools

这个公式虽然简单,但每个加号背后都有深意:

  • LLM:提供推理和语言理解能力,是 Agent 的"大脑"。没有 LLM,Agent 就退化成了 L1 的规则系统。
  • Planning:任务分解和路径规划,是 Agent 的"思维链"。没有 Planning,Agent 只能做一步到位的简单任务,无法处理复杂目标。
  • Memory:短期和长期记忆,是 Agent 的"经验"。没有 Memory,Agent 每次对话都是从零开始,无法积累和成长。
  • Tools:API、数据库、文件系统等外部工具,是 Agent 的"手脚"。没有 Tools,Agent 就只是一个聊天机器人,无法对真实世界产生任何影响。

这四个要素是乘法关系而非加法关系——任何一个为零,整个系统的能力都会坍缩到极低的水平。一个推理能力极强的 LLM,如果没有工具,就只能"纸上谈兵";一个拥有丰富工具的系统,如果没有规划能力,就会"乱用工具";一个规划和工具都齐备的系统,如果没有记忆,就无法从经验中学习。

理解了这个公式,也就理解了本书后续章节的结构安排:第 2 章深入 LLM 基础,第 3 章强化 Planning(提示工程),第 6 章构建 Memory(RAG),第 7 章打通 Tools(工具调用)。这些章节本质上就是在逐一完善 Agent 公式的每一个加项。


常见误区

在 Agent 概念火爆的当下,有几类常见误解需要澄清。

误区一:"Agent 就是 ChatGPT 加了几个插件"

这是最常见的误解。ChatGPT 加插件确实具备了工具调用的能力,但一个真正的 Agent 还需要规划能力(知道先做什么后做什么)、记忆能力(跨会话记住用户偏好)和自主循环能力(不需要人类每步指令就能持续推进任务)。插件只是给 ChatGPT 装了"手",但如果没有"计划"和"记忆",它仍然是一个被动响应的工具,而非自主的 Agent。

误区二:"Agent 能自主完成一切,不需要人"

受社交媒体上"AutoGPT 能自动创业"等夸张宣传的影响,很多人以为 Agent 已经达到了 L5 级别。事实上,当前主流 Agent 产品大多处于 L2-L3 之间。它们在特定任务(如编码、客服、数据分析)上表现不错,但面对开放性、多步骤、涉及现实世界操作的任务时,仍频繁出错。把 Agent 当成"全能自动机器人"来设计系统,会导致预期落空和安全事故。

误区三:"Agent 一定比 LLM 强"

不一定。对于简单的一轮问答场景(如"解释什么是量子计算"),直接用 LLM 回答就足够了,引入 Agent 架构反而增加了不必要的复杂度和延迟。Agent 的价值在于复杂任务——需要多步推理、需要调用外部工具、需要维护上下文的场景。杀鸡用牛刀,不仅浪费,还可能降低效果。

误区四:"记忆越多越好"

把所有历史对话都塞进上下文窗口,是初学者常犯的错误。这会导致两个问题:一是 token 消耗暴增、推理变慢;二是无关信息干扰 LLM 的注意力,反而降低输出质量。正确的做法是建立分层检索机制:只把与当前任务相关的记忆拉入上下文,其余的留在向量数据库中待命。本书第 6 章(RAG)会详细讲解如何设计这样的记忆系统。

误区五:"自主性越高越好"

在工程实践中,自主性越高意味着风险越大、可控性越低。L4 和 L5 的 Agent 如果在没有充分安全机制的情况下部署到生产环境,可能造成不可逆的后果(如错误执行数据库删除、发送不当邮件)。选择自主性层级时,应根据任务的容错性错误的可逆性来决定。金融交易场景应该谨慎使用 L3 以上,而内部数据分析场景则可以更激进地尝试 L4。


本节小结

本节围绕"什么是 Agent"这一核心问题,建立了完整的认知框架:

  • Agent 的定义:Agent 是以 LLM 为大脑、以工具为手脚、以记忆为经验的闭环系统。它的核心价值在于打通了"思考"到"行动"的通道。
  • 四大组件:感知(接收外部信息)、记忆(管理上下文和经验)、规划(分解任务、规划路径)、执行(调用工具、产生行动)。四者构成"感知→思考→行动→记忆"的完整循环。
  • Agent 与 RPA 的区别:RPA 是基于规则的自动化,确定性高但无智能;Agent 是基于 LLM 的智能化,能处理不确定性和复杂判断。两者不是替代关系,而是互补关系。
  • 自主性层级 L1-L5:从规则式(L1)到完全自主(L5),核心变化是人类从"执行者"变为"监督者"再到"目标设定者"。当前主流产品处于 L2-L3,L4 在探索中,L5 仍是理论目标。
  • 核心公式Agent = LLM + Planning + Memory + Tools,四个要素是乘法关系,缺一不可。
  • 常见误区:Agent ≠ ChatGPT + 插件;当前 Agent 仍需人类参与;简单场景不必上 Agent 架构;记忆不是越多越好;自主性不是越高越好。

理解了这些概念之后,一个自然的问题就浮现出来:这些概念在真实世界中长什么样? 哪些产品已经实现了这些能力?它们各自处于哪个自主性层级?下一节将通过一系列典型应用场景来回答这些问题。


启后

概念终究要落地为产品。本节建立的理论框架——四大组件、自主性层级、核心公式——为我们评估和设计真实 Agent 提供了"坐标系"。但坐标系本身是抽象的,它需要具体的案例来填充。下一节"1.4 典型 Agent 应用场景"将走进真实世界:从编程助手到自动化客服,从科研辅助到多 Agent 协作系统,我们将逐一分析这些产品分别用到了哪些 Agent 组件、处于哪个自主性层级、解决了什么实际问题。通过案例反观概念,读者对本节的理论框架将有更深刻的理解。


参考资料

  1. AI Agent 智能体开发实战:从概念到落地的完整指南 - 掘金,详细介绍 Agent 的四大组件和开发实践

  2. The Agentic State: Vision Paper - 系统阐述 Agent 的技术架构和自主性层级

  3. Anthropic: Building effective agents - Anthropic 官方,Agent 构建的最佳实践

  4. LangChain Agent 文档 - LangChain 官方文档,Agent 概念和实现指南

  5. 一文搞懂 Agent 开发:零基础到进阶全攻略 - CSDN,Agent 开发全攻略