<smtcmp_block filename="公开笔记/Bilibili/费曼学习法,5分钟搞懂Agent.md" language="markdown">
二、Agent 的组成
可以把 Agent 想象成数字员工来理解。就像公司有运营、财务等岗位,Agent 是数字岗位——不用请假、24小时待命、成本更低。
重要澄清:Agent 最核心的部件不是数量,而是自主工作的能力。
1. LLM(Large Language Model,大语言模型)—— 核心大脑
作用:理解人类语言、分析任务、制定计划、生成决策
为什么不可或缺:没有 LLM,其他组件都没有意义。就像再完美的办公环境,没有人坐在那里也无法运转。
选择建议:
| 维度 | 说明 |
|---|---|
| 推理能力 | 决定 Agent 能否正确规划任务步骤 |
| 上下文长度 | 影响 Agent 能处理的信息量上限 |
| 工具调用能力 | 部分模型原生支持 function calling |
| 成本 | 需权衡性能与费用 |
常见模型:GPT-4/Claude(闭源)、DeepSeek/LLaMA/Qwen(开源)
2. Prompt(提示词)—— 岗位说明书
作用:规定 Agent 的职责、限制条件、回复风格
核心要素:
┌─────────────────────────────────────────────┐
│ Prompt 组成 │
├─────────────────────────────────────────────┤
│ 角色定义 你是什么身份? │
│ 任务目标 你要完成什么? │
│ 行为规范 什么能做,什么不能做? │
│ 输出格式 结果以什么形式呈现? │
│ 示例(Few-shot)给参考案例让输出更稳定 │
└─────────────────────────────────────────────┘
设计原则:
- 清晰具体:避免模糊指令,给出明确判断标准
- 分层递进:复杂任务拆解为多个 Prompt 阶段
- 边界约束:明确禁止项(如"不能透露用户隐私")
注意:Prompt 不是写一次就完事,而是需要根据实际表现持续迭代优化。
3. Memory(记忆)—— 上下文跟踪
为什么需要:如果实习生每 30 秒失忆一次,工作无法进行。
两种类型:
| 类型 | 说明 | 典型场景 |
|---|---|---|
| 短期记忆(Short-term) | 当前会话上下文 | 对话中的前文内容 |
| 长期记忆(Long-term) | 跨会话持久存储 | 用户偏好、历史经验 |
实现方式:
文本直接存储 → 适合短上下文
向量数据库(如 Milvus/Pinecone) → 语义检索
知识图谱 → 关系型记忆
设计要点:
- 决定存储什么:不是所有对话都需要记住
- 检索策略:基于关键词还是语义相似度
- 遗忘机制:避免记忆无限膨胀
4. Knowledge(外部知识)—— 资料库
作用:弥补 LLM 通用知识的不足,提供企业内部或垂直领域信息
典型内容:
| 类别 | 示例 |
|---|---|
| 企业知识 | 组织架构、内部流程、联系人 |
| 产品文档 | 功能说明、使用手册、FAQ |
| 行业数据 | 竞品信息、市场报告、行业术语 |
| 实时信息 | 当前时间、股价、天气等 |
接入方式:
静态文档 → RAG(检索增强生成)→ 动态注入
API 接口 → 实时查询 → 补充最新信息
核心价值:让 Agent 不仅"知道很多",更"知道你们公司的具体情况"。
5. Tools(工具)—— Agent 的手脚
为什么最关键:从"会聊天"变成"会干活",让 AI 真正能执行实际操作。
工具类型:
| 类型 | 示例 | 功能 |
|---|---|---|
| 浏览器工具 | Playwright、Selenium | 网页搜索、内容抓取 |
| 文件操作 | 读/写本地文件 | 文档处理 |
| API 调用 | HTTP 请求 | 连接外部服务 |
| 代码执行 | Python REPL | 数据分析、计算 |
| SaaS 集成 | 邮件、日历、Slack | 日常办公自动化 |
工作原理:
用户输入 → LLM 判断需要调用什么工具 → 执行工具 → 获取结果 → 继续推理
设计要点:
- 工具描述要清晰:LLM 需要理解工具能做什么
- 参数定义要准确:避免 LLM 传错参数
- 错误处理:工具执行失败后的 fallback 策略
进阶:ReAct 框架中,LLM 会先推理(Reasoning)决定用哪个工具,再行动(Acting)执行,然后检查结果。
组件关系图
┌─────────────┐
│ LLM │ ← 大脑:推理决策
└──────┬──────┘
│
┌──────────────────┼──────────────────┐
│ │ │
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Prompt │ │ Memory │ │ Knowledge │
│ 岗位说明书│ │ 记忆 │ │ 资料库 │
└───────────┘ └───────────┘ └───────────┘
│
▼
┌───────────┐
│ Tools │ ← 手脚:执行操作
└───────────┘
补充说明
-
关于 Agent 组成的争议:目前 Agent 处于高速发展阶段,行业内尚无统一标准。学术界、工程团队、产品公司、普通用户的视角不同,看到的组件划分也不同。没有"官方标准答案",关键在于理解核心原理。
-
ReAct 框架补充:ReAct(Reasoning + Acting)最早由 Yao 等人在 2022 年提出,是一种让大语言模型交替进行推理和行动的 prompting 方法,有助于提升模型在复杂任务中的表现。
-
Memory 的实现方式:通常分为短期记忆(当前会话上下文)和长期记忆(持久化存储),实际应用中常通过向量数据库实现语义检索。
-
RAG(检索增强生成)补充:RAG 是目前最常用的知识接入方案,通过向量检索将相关文档片段注入上下文,让 LLM 基于最新、最相关的信息生成回答。
-
Function Calling / Tool Use:部分大模型(如 GPT-4、Claude、DeepSeek)原生支持工具调用功能,可以更稳定地让模型决定调用哪个工具及参数。
面试题
Q1:LM、Workflow 和 Agent 的核心区别是什么?
答案:LM 是简单的输入-输出模式;Workflow 是人提前设计好的多步骤流程,AI 按既定路线执行;Agent 则能自主决定下一步做什么,具备自主规划和迭代能力。简单来说,Workflow 是"按图纸执行",Agent 是"自己思考决策"。
Q2:Agent 由哪几部分组成?各自的作用是什么?
答案:Agent 主要由五部分组成:
- LLM:作为大脑,负责理解、推理、规划
- Prompt:作为岗位说明书,定义职责和行为规范
- Memory:提供记忆功能,维持上下文连贯性
- Knowledge:外部知识库,补充通用知识之外的领域信息
- Tools:赋予实际操作能力,让 Agent 能"干活"
Q3:什么是 Agent Loop?请解释 ReAct 框架。
答案:Agent Loop 是 Agent 的核心运行机制,表现为"思考→行动→检查→循环"的持续过程。ReAct(Reasoning + Acting)是经典框架,要求 Agent 先推理要做什么,再执行行动,最后检查结果,不满意则继续迭代。这与普通 LLM 直接输出结果不同,Agent 具备自我纠错能力。
Q4:为什么说 Tools 是 Agent 最关键的部分?
答案:因为 Tools 让 AI 从"会聊天"进化到"会干活"。它赋予 Agent 操作电脑/手机上各种软件的能力(如发邮件、制作 Excel、查询数据等),使 Agent 能真正代替用户完成实际任务,而不仅仅是对话生成。
Q5:有了 LLM、Prompt、Memory、Knowledge、Tools 五组件,就一定是 Agent 吗?为什么?
答案:不一定。这五个组件是 Agent 的必要条件而非充分条件。真正让一个系统成为 Agent 的核心,是它是否具备自主工作的能力——能围绕目标自主规划、执行、检查、迭代,而不是机械地按预设流程输出结果。
Q6:短期记忆和长期记忆有什么区别?各有什么典型实现方式?
答案:短期记忆负责当前会话的上下文跟踪,会话结束后一般清除;长期记忆跨会话持久存储,用于记住用户偏好和历史经验。短期记忆通常直接以文本形式存储在上下文窗口中;长期记忆的典型实现是通过向量数据库进行语义检索存储和召回。
Q7:Prompt 设计的核心要素有哪些?设计时需要注意什么?
答案:Prompt 的核心要素包括:角色定义(身份)、任务目标、行为规范、输出格式、必要时的 Few-shot 示例。设计时需要注意:指令要清晰具体而非模糊;复杂任务应分层递进拆解;明确边界约束(禁止项);持续根据实际表现迭代优化。
Q8:RAG 是什么?在 Agent 中起什么作用?
答案:RAG(Retrieval-Augmented Generation,检索增强生成)是一种将外部知识接入 LLM 的技术方案。它通过向量数据库存储文档,将用户问题检索相关片段后注入上下文,让 LLM 基于最新、最相关的信息生成回答。在 Agent 中,RAG 主要用于弥补 LLM 通用知识的不足,提供企业专属或垂直领域的实时信息。