学习目标:理解Agent与普通聊天机器人的本质区别,掌握Planning/Memory/Tool/Reflection四大核心组件,能开发具备"规划-执行-反思"能力的实用Agent --- 一、Agent vs Bot:本质区别是什么?"/>
侧边栏壁纸
博主头像
毕业帮 博主等级

提供丰富的资源和服务,涵盖从论文写作、毕业设计、职业规划、就业准备等多个方面

  • 累计撰写 84 篇文章
  • 累计创建 18 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

Part 5:Agent智能体架构 - AI不仅能回答,还能"主动完成任务"

流苏
2026-03-03 / 0 评论 / 0 点赞 / 10 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Part 5:Agent智能体架构 - AI不仅能回答,还能"主动完成任务"

学习目标:理解Agent与普通聊天机器人的本质区别,掌握Planning/Memory/Tool/Reflection四大核心组件,能开发具备"规划-执行-反思"能力的实用Agent


一、Agent vs Bot:本质区别是什么?

1.1 一个生动的比喻

Bot(聊天机器人)

用户:"北京天气如何?"
Bot:"北京今天晴天,22度。" ← 单轮问答,结束

Agent(智能体)

用户:"帮我规划一个周末北京三日游"
Agent:
1. 规划(Planning):拆解任务
   - 订机票/酒店
   - 安排景点
   - 控制预算
    ↓
2. 执行(Tool Use):
   - 调用天气API:"周末北京天气?"
   - 调用酒店API:"王府井附近酒店价格?"
   - 调用地图API:"故宫到颐和园距离?"
    ↓
3. 反思(Reflection):
   - "预算3000够吗?" → 计算总费用
   - "景点时间冲突?" → 调整行程
    ↓
4. 输出:
   "行程已规划好,总预算2800元,包含..."

核心差异

维度 Bot(普通对话) Agent(智能体)
主动性 被动响应(你问→我答) 主动达成(你给目标→我拆解→执行)
任务复杂度 单轮/简单对话 多步骤、需要工具
记忆 短期(对话历史) 长期(用户偏好、历史数据)
工具 不能用工具 能调用API/代码/外部系统
循环 一次交互结束 规划→执行→反思→迭代

类比

  • Bot = 知识库查询器(你问,它从记忆里找答案)
  • Agent = 项目经理 + 执行团队(你给目标,它能拆解、协调资源、完成任务)

1.2 Agent的三要素

Agent = LLM(大脑) + 规划(思考) + 工具(手脚) + 记忆(经验)

缺一不可

  • 只有LLM → 只是ChatGPT,不能行动
  • 无规划 → 想到哪做到哪,效率低
  • 无工具 → 只能纯聊天,不能联网/查数据/操作软件
  • 无记忆 → 每次都是"新青年",记不住用户偏好

二、四大核心组件详解

2.1 Planning(规划能力):先想清楚再动手

问题:用户说"帮我订个周末去上海的行程",AI直接订票?

  • 不行!需要先拆解:什么时候?预算?偏好?几个人?

规划的核心:大目标 → 可执行子任务

场景1:旅行规划

目标:周末上海三日游
    ↓ 拆解
子任务1:确定出发/返回时间(周五晚 vs 周六早)
子任务2:确定预算(经济/舒适/豪华)
子任务3:查询往返机票/火车票
子任务4:查询酒店(位置、价格)
子任务5:安排景点日程(时间不冲突)
子任务6:汇总总费用,生成行程单

场景2:自动化周报

目标:自动生成本周工作周报
    ↓ 拆解
子任务1:从日历读取本周会议
子任务2:从GitLab拉取代码提交记录
子任务3:从邮箱提取关键邮件
子任务4:从JIRA获取任务进度
子任务5:整合信息,生成结构化文本
subtask6:发送给主管审批

策略选择

策略 适合场景 优点 缺点
单步规划 简单任务,3-5步 快、简单 无法处理复杂依赖
树搜索 复杂决策,多路径 能找到最优解 慢,需要评估函数
动态调整 环境变化,需适应 灵活,能处理异常 实现复杂,需反馈闭环

实现技巧

  • JSON Schema约束输出格式:
    {
      "plan": [
        {"step": 1, "description": "查询机票", "tool": "flight_api"},
        {"step": 2, "description": "查询酒店", "tool": "hotel_api"}
      ]
    }
    
  • 让AI输出步骤 + 预期工具,便于执行

2.2 Memory(记忆系统):记住上下文和个人偏好

为什么需要记忆

  • 用户多次交互,Agent应该"认识"用户
  • 长期偏好:"我记得你上次说喜欢靠窗座位"
  • 历史数据:"你上周咨询过A产品,这次要看B吗?"

记忆类型

类型 说明 存储方式 例子
短期记忆 当前对话的上下文 滑动窗口/对话历史 "刚才你说预算5000"
长期记忆 用户历史、偏好、事实 向量数据库/KV存储 "用户A喜欢安静酒店"
工作记忆 当前任务的中间状态 临时变量/状态机 "正在执行Step 3/5"

短期记忆管理

方案A:滑动窗口

对话历史保留最近10轮
超过10轮,丢弃最早的
    ↓
简单,但会丢失重要信息

方案B:关键信息提取(推荐)

每3轮对话,用AI总结关键信息:
"用户想规划北京游,预算3000,喜欢历史景点,上次提到怕热"
    ↓
压缩存储,只保留精华

长期记忆设计

存储结构

{
  "user_id": "123",
  "preferences": ["喜欢安静", "常出行时间是周末", "偏好经济型酒店"],
  "history": [
    {"date": "2024-01", "query": "上海旅游咨询"},
    {"date": "2024-02", "query": "订酒店"}
  ]
}

检索方式

  • 向量检索:语义搜索"用户喜欢什么?"
  • 关键词检索:精确查找历史订单号
  • 时间过滤:最近3个月的数据

记忆更新策略

  • 新信息 vs 旧信息冲突 → 以最新为准(或按置信度)
  • 记忆过期 → 时间衰减权重(久了就忘)

2.3 Tool Use(工具调用):会用手和脚

核心理念:LLM不能干所有事(不能实时查天气、不能订票、不能操作软件),需要外部工具。

工具定义

{
  "name": "get_weather",
  "description": "查询指定城市未来3天的天气预报",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {"type": "string", "description": "城市名称"},
      "date": {"type": "string", "description": "日期,格式YYYY-MM-DD"}
    },
    "required": ["city"]
  }
}

调用流程

用户问:"明天北京天气?"
    ↓
LLM分析:需要调用天气工具
    ↓
生成调用参数(JSON):
{
  "tool": "get_weather",
  "arguments": {"city": "北京", "date": "2024-03-20"}
}
    ↓
系统执行工具:
调用 weather_api("北京", "2024-03-20")
返回 {"temp": 22, "condition": "晴"}
    ↓
结果喂给LLM
LLM生成自然语言回答:
"明天北京晴天,22度,适宜出行。"

常见工具类型

工具类别 例子 实现方式
搜索 网络搜索、知识库检索 API调用(Google/百度/自建)
计算 数学计算、单位转换 Python代码执行
日历 查询日程、创建会议 Google Calendar API
邮件 发送邮件、读取收件箱 SMTP/IMAP
数据库 查询订单、用户信息 SQL执行
业务系统 CRM、ERP、内部系统 REST API/GraphQL

工具设计的魔鬼细节

  1. 参数校验:必填字段缺失 → AI重新生成(不要抛出异常)
  2. 错误处理:API超时、返回错误码 → AI重试 or 换工具
  3. 权限控制:敏感操作(删数据)需要用户确认
  4. 可解释性:记录"AI为什么调用某工具",便于调试

2.4 Reflection(反思能力):会复盘优化

场景:Agent生成一份旅游方案,但总预算超支了怎么办?

反思机制

方案A:自我检查

Agent内部流程:
1. 生成初步方案(机票2000+酒店1500+景点500=4000元)
2. 反思:"预算3000,超了1000,不合理"
3. 修正:降低酒店档次 → 酒店改为1000元
4. 输出最终方案(总3000元)

方案B:多Agent辩论

Agent A(乐观派):"方案可行!增加预算到5000"
Agent B(谨慎派):"超预算了,必须压缩"
   ↓ 投票
最终采纳 Agent B 的方案(多数决)

方案C:外部反馈

方案生成 → 提交给用户
用户:"酒店太贵了,换便宜点的"
Agent:收到反馈,重新规划酒店部分

错误恢复策略

失败类型 恢复策略
工具调用失败(API超时) 重试1-2次,或换备用工具
检索无结果 扩大检索范围(K值调大),或换搜索词
用户否定 道歉 + 询问具体问题 + 重新执行
生成内容违规 检测到后立即停止,重新Clean Prompt

三、开发框架对比:装修工具包选哪个?

3.1 四大主流框架

框架 类比 核心优势 适合场景 学习曲线
LangChain 全能工具箱 组件全、生态大、文档多 系统学习、复杂应用 ⭐⭐⭐⭐(陡)
LlamaIndex 专业收纳系统 RAG强、API简洁 专注知识库问答 ⭐⭐⭐(中)
LangGraph 电路设计器 可视化编排、支持循环 复杂工作流、多Agent ⭐⭐⭐⭐(陡)
低代码平台 精装样板间 5分钟上线、拖拽式 快速验证、非技术 ⭐(平易)

3.2 详细对比

LangChain —— 最流行,组件丰富

优点

  • ✅ Chain/Agent/Tool/RAG全覆盖
  • ✅ 社区大,问题容易找到答案
  • ✅ 集成100+模型和工具

缺点

  • ❌ 抽象层多,初学者晕
  • ❌ 文档虽然多但不系统
  • ❌ API有时变动大

适合

  • 想系统学习Agent开发的
  • 需要高度定制的复杂项目

代码示例(ReAct Agent)

from langchain.agents import AgentExecutor, create_react_agent
from langchain import hub

# 1. 定义工具
tools = [get_weather, search_web, calculate]

# 2. 加载Prompt模板(ReAct)
prompt = hub.pull("hwchase17/react")

# 3. 创建Agent
agent = create_react_agent(llm, tools, prompt)

# 4. 执行
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = agent_executor.invoke({"input": "明天北京天气,然后打包行李清单"})

LlamaIndex —— RAG专项冠军

优点

  • ✅ 数据连接器丰富(PDF、DB、API)
  • ✅ 检索优化强(混合检索、 reranker)
  • ✅ 使用简单,学习曲线平缓

缺点

  • ❌ Agent能力弱(不如LangChain灵活)
  • ❌ 社区相对小

适合

  • 主要做知识库问答
  • 对RAG效果要求极高

代码示例(RAG)

from llama_index import VectorStoreIndex, SimpleDirectoryReader

# 加载文档
documents = SimpleDirectoryReader("./data").load_data()

# 创建索引(自动Embedding+存储)
index = VectorStoreIndex.from_documents(documents)

# 查询
query_engine = index.as_query_engine()
response = query_engine.query("差旅报销标准?")

LangGraph —— 状态机/工作流编排(🌟2026重点)

核心:把Agent流程画成(节点+边),支持循环、条件分支、并行。

优势

  • ✅ 复杂流程可视化(画个图就能实现)
  • ✅ 支持循环(反思 → 重新规划)
  • ✅ 状态持久化(中断后可恢复)

适合

  • 多步骤、有条件的复杂Agent
  • 需要人机协作(人类审批节点)

可视化示例

[开始] → [规划] → [执行工具] → [检查结果]
                                ↓
                            [OK?] → No → [反思修正] → [执行工具]
                                ↓ Yes
                            [生成回答] → [结束]

代码示例

from langgraph.graph import StateGraph, END

# 定义状态
class AgentState(TypedDict):
    task: str
    plan: list
    current_step: int
    result: str

# 定义节点函数
def plan_node(state: AgentState):
    return {"plan": llm.generate_plan(state["task"])}

def execute_node(state: AgentState):
    return {"result": tool_call(state["plan"][state["current_step"]])}

# 建图
workflow = StateGraph(AgentState)
workflow.add_node("plan", plan_node)
workflow.add_node("execute", execute_node)
workflow.set_entry_point("plan")
workflow.add_edge("plan", "execute")
workflow.add_edge("execute", END)
app = workflow.compile()

低代码平台(Coze/Dify) —— 快速验证

优点

  • ✅ 拖拽式,5分钟上线
  • ✅ 内置插件市场(天气、搜索等)
  • ✅ 可视化调试

缺点

  • ❌ 深度定制难
  • ❌ 受平台限制(不能自定义复杂逻辑)
  • ❌ 迁移成本高(绑定平台)

适合

  • 快速Demo验证想法
  • 非技术背景但想用AI
  • 简单客服机器人

四、多Agent协作:团队作战

4.1 为什么需要多Agent?

单Agent的局限

  • 能力有限,一个Agent做所有事 → 角色混乱
  • 复杂项目需要分工(研究、分析、写作、审核)

类比

  • 单Agent = 一个人完成整个项目
  • 多Agent = 项目组(研究员→分析师→写手→审核)

4.2 协作模式

模式1:流水线(Pipeline)

用户需求
    ↓
Agent 1(研究员):搜索资料,整理要点
    ↓ 传给 Agent 2
Agent 2(分析师):分析数据,提炼洞察
    ↓ 传给 Agent 3
Agent 3(写手):撰写文章
    ↓ 传给 Agent 4
Agent 4(审核):检查错误,润色
    ↓
最终输出

优点

  • ✅ 职责清晰,质量可控
  • ✅ 容易调试(定位哪个Agent出问题)
  • ✅ 可并行流水线化

缺点

  • ❌ 传递延迟(串行)
  • ❌ 前Agent错误会传递到后Agent

适用:标准化流程,如内容生产、数据分析报告

模式2:辩论(Debate)

问题:是否应该投资A项目?
    ↓
Agent 1(乐观派):列举投资理由,市场潜力...
Agent 2(谨慎派):列举风险,现金流压力...
    ↓
二者互相辩驳(多轮)
    ↓
Agent 3(裁判):综合双方观点,给出最终决策

优点

  • ✅ 减少偏见(单一视角局限)
  • ✅ 多角度思考,质量高

缺点

  • ❌ 速度慢(多轮辩论)
  • ❌ 成本高(多次LLM调用)

适用:决策类任务、风险评估

模式3:动态协作(Manager-Worker)

Agent Manager(项目经理):
1. 接收用户需求
2. 拆解任务,分发给合适的Worker
3. 监控Worker进度
4. 整合结果

Agent Worker 1(搜索专家)
Agent Worker 2(写作专家)
Agent Worker 3(代码专家)
...

优点

  • ✅ 动态调度,负载均衡
  • ✅ 故障转移(某个Worker挂了换一个)

缺点

  • ❌ Manager设计复杂(需要评估Worker能力)
  • ❌ 调试困难(调度逻辑隐藏深)

适用:复杂客服场景、大规模任务分发


五、关键基础设施:MCP协议

5.1 问题:工具不统一

  • LangChain工具用自己格式
  • LlamaIndex工具用另一种格式
  • 每个框架都有自己的"工具定义语言"

痛点:写一个工具,想在不同框架复用 → 得重写适配!

5.2 MCP(Model Context Protocol)—— 统一的工具通信标准

类比:USB接口

  • 电脑(LLM应用)通过USB接口
  • 可以插U盘、键盘、鼠标(各种工具)
  • 无需关心U盘内部怎么工作

MCP三要素

Elements 是什么 例子
Resources 只读数据源(文件、数据库记录) 读取用户档案、查询知识库
Tools 可执行的操作(写文件、调用API) 发送邮件、创建订单
Prompts 可复用的Prompt模板(带参数) "写一篇关于{topic}的文章"

工作流程

Client(IDE/Agent框架)  ↔  MCP协议(JSON-RPC)  ↔  Server(工具提供方)
    │                                                        │
"我要调用get_weather"                                 执行天气API
    │                                                        │
"结果:北京22度"                                       返回数据

优势

  • 解耦:LLM应用只需对接MCP标准,不用了解每个工具实现
  • 复用:一个工具(如邮件发送)可以被多个应用共享
  • 安全:工具在独立沙箱运行,权限可控

应用场景

  • IDE插件(Claude Code支持MCP)
  • 多个Agent共享工具池
  • 企业内部工具标准化

详细内容:见Part 6


六、实践任务

任务1:用Coze快速搭建客服Agent(拖拽式体验)

步骤

  1. 注册Coze(https://coze.com)
  2. 创建Bot,设置角色(客服)、指令
  3. 添加插件:天气、搜索、知识库
  4. 配置多轮对话流程
  5. 测试并优化Prompt

交付物:一个可用的客服Agent链接 + 设计文档

任务2:用LangChain实现ReAct框架的迷你Agent

功能

  • 工具:计算器、搜索(可以用DuckDuckGo免费API)
  • 任务:回答需要计算+搜索的问题(如"微软市值多少?相当于几个苹果?")

代码要求

# 至少包含:
# 1. 工具定义(Tool对象)
# 2. ReAct Prompt模板
# 3. Agent循环(Thought→Action→Observation)
# 4. 结果解析

任务3:设计"双Agent辩论"的决策辅助模板

场景:是否要上线一个新功能?

两个Agent

  • Agent Pro(支持派):列举收益、市场机会
  • Agent Con(谨慎派):列举技术风险、成本

模板要求

  1. 两个Agent的Role Prompt设计
  2. 辩论多轮规则(各自反驳对方论点)
  3. 裁判Agent的决策逻辑
  4. 输出格式(结构化,含"支持/反对/建议")

交付:完整的Prompt模板 + 示例对话(模拟)


✅ 学习检查点

完成Part 5后,您应该能:

  1. 解释Agent与普通Bot的核心差异

    • 主动规划 vs 被动响应
    • 工具调用 vs 纯聊天
    • 多轮迭代 vs 单轮结束
  2. 描述四大核心组件(Planning/Memory/Tool/Reflection)

    • 每个组件解决什么问题?
    • 至少说出2种实现方案
  3. 根据任务复杂度选择开发框架

    • 快速验证 → Coze/Dify
    • 知识库为主 → LlamaIndex
    • 复杂Agent → LangChain/LangGraph
    • 判断依据:任务复杂度、团队技术栈、时间预算
  4. 设计多Agent协作模式

    • 流水线 vs 辩论 vs 动态调度
    • 根据场景选合适模式
    • 能画出协作流程图
  5. 理解MCP协议的价值

    • 为什么需要"解耦"?
    • MCP三要素(Resources/Tools/Prompts)的区别
    • 如何设计一个可复用的MCP工具

📚 延伸阅读

  • ReAct论文:"ReAct: Synergizing Reasoning and Acting in Language Models"
  • LangChain文档:https://python.langchain.com/docs/tutorials/(官方教程)
  • LangGraph官方:https://langchain-ai.github.io/langgraph/
  • AutoGPT:第一个出圈的Agent项目(GitHub)
  • MCP规范:https://github.com/context-labs/mcp(GitHub)
  • OpenAI Assistant API:官方Agent托管服务

Part 5 结束!
Agent让AI从"回答问题"进化到"完成任务",是当前AI应用最热门的架构。
下一部分 Part 6:MCP协议与Skills系统 —— 如何设计标准化的工具系统,让AI能统一调用各种外部能力。

学习节奏:Part 5建议2周,必须动手实现至少一个ReAct Agent(哪怕是最简版的聊天+搜索),理解"循环"的本质。


系列进度

  • ✅ Part 1:Transformer原理大白话
  • ✅ Part 2:分词与词向量详解
  • ✅ Part 3:提示词工程实战
  • ✅ Part 4:RAG检索增强生成
  • ✅ Part 5:Agent智能体架构(当前)
  • 🔄 Part 6:MCP协议与Skills系统
  • 🔄 Part 7:微调技术通俗解析
  • 🔄 Part 8:推理优化与工程部署
  • 🔄 Part 9:综合项目实战与职业发展

关键洞察:Part 1-3是基础(原理层),Part 4-5是核心应用层(企业80%需求),Part 6-8是工程化层(上线部署优化),Part 9是综合与职业。学习时可按此结构自检"我缺哪一块"?

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区