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 一个复杂目标——比如"调研竞品并写一份分析报告"——它不会直接开始写,而是先做计划:
- 搜索相关竞品信息
- 提取各家产品的核心功能
- 对比功能差异
- 汇总成报告大纲
- 逐节撰写
这就是规划模块的工作:任务分解(将复杂目标拆解为可执行的子任务)、路径规划(确定执行顺序和依赖关系)、动态调整(根据执行反馈修改计划)。
为什么规划如此关键?因为 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 编写,帮助读者直观感受四大组件如何协作:
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,他会理解"点这个按钮的目的是提交表单",即使按钮颜色变了、位置移动了,他也能找到"提交"这个含义对应的操作。
核心差异对比
| 维度 | RPA | AI Agent |
|---|---|---|
| 决策方式 | 基于规则(if-else) | 基于推理(LLM) |
| 灵活性 | 低,只能处理预定义场景 | 高,能处理未知场景 |
| 适应性 | 环境变化需要重新编程 | 能自适应环境变化 |
| 错误处理 | 预设错误处理逻辑 | 自主判断和纠错 |
| 适用场景 | 固定流程、规则明确 | 复杂多变、需要判断 |
| 开发方式 | 录制 + 拖拽配置 | 编程 + Prompt 工程 |
| 典型产品 | UiPath, Blue Prism | AutoGPT, LangChain Agent |
一个实际案例:处理客户退款
为了更直观地理解差异,我们来看同一个业务场景下两种技术的处理方式。
场景:一位客户发来邮件,说收到的商品有瑕疵,要求退款。
RPA 方式——
- 系统检查订单状态
- 如果"已发货"则拒绝退款
- 如果"未发货"则自动退款
- 记录日志
所有逻辑都是预定义的。如果客户的退款理由是"商品质量问题但已签收"——RPA 就不知道该怎么办了,因为这种情况没有预设规则。
Agent 方式——
- 系统读取客户的退款理由,理解客户在说什么、情绪如何
- 查看订单详情和物流状态
- 判断退款金额是否在自动授权范围内
- 如果金额小且符合政策,自动退款并生成一封措辞得体的道歉邮件
- 如果情况复杂(如金额超限、涉及多件商品),升级给人工客服,并附上分析摘要供客服参考
注意区别: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 组件、处于哪个自主性层级、解决了什么实际问题。通过案例反观概念,读者对本节的理论框架将有更深刻的理解。
参考资料
AI Agent 智能体开发实战:从概念到落地的完整指南 - 掘金,详细介绍 Agent 的四大组件和开发实践
The Agentic State: Vision Paper - 系统阐述 Agent 的技术架构和自主性层级
Anthropic: Building effective agents - Anthropic 官方,Agent 构建的最佳实践
LangChain Agent 文档 - LangChain 官方文档,Agent 概念和实现指南
一文搞懂 Agent 开发:零基础到进阶全攻略 - CSDN,Agent 开发全攻略