当前位置: 首页 > news >正文

LLM 学习笔记 Day 5:Agent 核心组件——Planner、Memory 与 Reflection

第一部分:Planner——Agent 的决策大脑

1.1 Planner 是什么?

最常见的误解:Planner 就是“任务拆解”。
真正的定义:Planner 的本质是决策(Decision Making),而不是简单的拆分。它负责回答“当前应该做什么”。

Planner vs Executor

PlannerExecutor
职责决定下一步做什么真正去执行
输出任务计划(Task List)执行结果(Observation)
比喻大脑思考手脚行动

1.2 为什么 Workflow 不能代替 Planner?

Workflow 和 Graph 的根本局限:路径是预设的。

  • Workflow:流程固定,遇到未预设的需求会走错路
  • Graph:支持条件分支,但分支逻辑仍需提前定义
  • Planner:动态理解用户意图,生成全新的执行计划

对比示例
用户说:“帮我生成简历,再帮我模拟面试,再给职业建议。”

这是一个复合任务,Workflow 无法同时处理三条完全不同的执行路径。Planner 却能动态规划出三个 Task 序列。

1.3 Planner 规划的是 Task,不是 Tool

Task(任务)Tool(工具)
是什么要完成的一个语义步骤执行任务的具体能力
谁决定PlannerExecutor
例子“分析 JD”jd_analysis()函数

分层流程

Planner → 生成 Task 列表 Executor → 为每个 Task 选择对应的 Tool Tool → 执行具体操作

1.4 为什么 Planner 一定要 LLM?

Planner 不是 Router,是 Reasoner。

RouterReasoner
根据关键词选分支理解意图后推理
固定规则(if…else)动态生成
只能处理见过的场景能处理全新场景

关键词匹配只会触发相关流程。
LLM Planner能理解

1.5 Planner 分层设计(以简历生成 Agent 为例)

Planner(制定跨 Skill 计划) ↓ Tool Router(将 Task 映射到 Tool) ↓ Workflow/Graph(控制单个 Skill 内部流程) ↓ Node(完成具体功能) ↓ Tool(调用外部能力)

关键设计原则

  • Planner 放最外层:它是唯一能理解用户全局意图的模块
  • Workflow 只负责一个 Skill:各 Skill 流程独立,避免“超级分支树”
  • Skill 内部用 Graph 而非 Planner:固定流程不需要动态决策
  • Node 不能决定调用 Skill:士兵不能决定打仗策略
  • Reflection 放 Planner 后:评估的是整体质量,不是局部正确性

第二部分:Memory——Agent 的记忆系统

2.1 Context ≠ Memory(面试第一问)

ContextMemory
生命周期单次会话跨会话持久存在
存储方式拼在 Prompt 里存在数据库/向量库
类比看着聊天记录回答记住了一个朋友的名字

Context:每次把完整聊天记录拼进 Prompt,模型是“重新看了一遍”,不是“记住了”。

Memory:昨天说你叫小明,今天新开窗口,Agent 依然知道。这才是真正的记忆。

2.2 Agent 的四层 Memory

第一层:Conversation Memory(对话记忆)
  • 本质:最近几轮的原始对话记录
  • 作用:维持多轮对话的连贯性
  • 存储:保留最近 k 轮,存在 Session 中
第二层:Summary Memory(摘要记忆)
  • 本质:用 LLM 对长对话做阶段性总结
  • 作用:降低 Token 成本,保留关键信息
  • 触发:对话轮次超阈值或遇到自然断点时压缩
第三层:Profile Memory(用户画像记忆)
  • 本质:长期不变的用户基本信息(学历、技能、偏好)
  • 作用:建立长期用户画像,支撑个性化服务
  • 更新:极少更新,半年不变
第四层:Retrieval Memory(检索记忆)
  • 本质:基于向量相似度的语义记忆(RAG 的思想基础)
  • 作用:为 Agent 提供海量外部知识的动态检索
  • 存储:向量数据库

2.3 Workflow State ≠ Memory

Workflow StateAgent Memory
生命周期Workflow 执行期间Agent 整个生命周期
可见范围当前 Skill 内部所有 Skill 共享
持久化流程结束即回收跨会话持久保存

关键设计原则:Memory 属于 Agent 层,由 Memory Manager 统一管理,不应下沉到 Workflow。

2.4 Memory 工程设计要点

写入时机:重要信息触发写入(新用户属性、对话轮次超阈值),而非每轮强制存储。

读取时机:Planner 规划前统一读取 Profile + Summary,Skill 按需拉取 Retrieval。

避免膨胀

  • 淘汰策略:Conversation 只保留最近 N 轮
  • 压缩策略:Summary 替代原始长对话
  • 去重策略:Profile 更新时合并相同属性

百万用户隔离方案

组件技术选型隔离方式作用
SessionRedissession_id临时对话,TTL 过期
持久存储PostgreSQLuser_idProfile、Summary
向量检索Milvus/PineconeNamespace按用户隔离知识库
热缓存Redisuser_id频繁访问数据加速

第三部分:Reflection——Agent 的自我意识

3.1 为什么需要 Reflection?

LLM 的根本矛盾:会生成,不会判断。

LLM 的本质是预测下一个 token,它的核心能力是“造句”而非“答题”。第一次生成的内容只是一个“候选答案”,不是“最终答案”。

Reflection 补上了“判断”的缺失——让 Agent 能在生成后审视不足,定点修正。

人类的工作模式:打草稿 → 检查 → 修改
Agent 的工作模式:Generate → Reflect → Refine

3.2 Retry vs Reflection(面试高频)

维度RetryReflection
核心动作重新执行先评价,再决定如何重新执行
是否改变策略
适用场景临时性系统故障输出质量不满足要求
本质工程容错智能闭环优化

一句话区分

  • Retry:不改变策略,只是“再试一次”
  • Reflection:先分析“为什么错”,再“换种方式做”

3.3 Reflection 的三层粒度

层级检查范围行动
Node Reflection单个步骤的输出重做当前步骤
Workflow Reflection单个 Skill 的整体结果回退到 Skill 内部某步骤
Planner Reflection整个任务计划的合理性重新规划全局任务

分层优势

  • Node 层快速拦截单步错误
  • Workflow 层定点修复流程问题
  • Planner 层调整全局策略

3.4 Reflection 检查的四个维度

维度含义示例
Completeness有没有遗漏?JD 要求 Docker,简历没写
Correctness有没有错误?用户做 Java,简历写 Python
Consistency前后是否一致?第一页 Java,第二页 Python
Quality表达是否专业?口语化、重复啰嗦

3.5 为什么 Reflection 不能无限循环?

  1. 成本爆炸:每次 Reflection 都是一次 LLM 调用
  2. 收益递减:第一次改进最明显,第三次可能更差
  3. 跑偏风险:过度修改可能偏离原始目标

工程实践:设置最大循环次数(如 2 次)、质量阈值(超 8 分停止)、Token 预算超限强制终止。

第四部分:三者协作——Agent 的完整闭环

现代 Agent 的 PDCA 循环

PDCAAgent 对应
PlanPlanner 制定任务计划
DoExecutor/Workflow 执行
CheckReflection 评估输出质量
Act重新 Planner 或 Workflow,定点修复

完整数据流

用户输入 ↓ Planner ←────────── Memory(规划前读取画像和历史) ↓ Workflow(Skill 内部流程) ↓ Node(具体功能执行) ↓ Result ↓ Reflection(多层评估) ↓ Memory Update(重要信息持久化) ↓ Planner(根据 Reflection 结果决定下一步)

核心关系总结

  • Planner 是大脑:决定做什么
  • Memory 是海马体:记住该记住的,忘掉该忘掉的
  • Reflection 是自我意识:审视自己,修正错误
  • 三者缺一不可:没有 Planner 是盲目的,没有 Memory 是健忘的,没有 Reflection 是鲁莽的
http://www.gsyq.cn/news/1637864.html

相关文章:

  • Figma界面如何快速实现中文汉化?设计师必备的本地化解决方案
  • 沧州MBR膜清洗服务测评:晶源环保效果佳但响应与价格有短板
  • 五款热门红茶礼盒客观测评推荐:老茶客精选,送礼倍有面儿
  • 英语学习交流平台小程序-ssm+app
  • 线上模型抖动真相:偏差-方差动态权衡实战诊断与干预
  • 低功耗无线监测技术选型:从待机电流到温漂补偿的工程实践分析
  • 开源CLI工具安全调用国产大模型API实战
  • 鹤壁办宴席,选烟酒怎么备不浪费又体面?
  • ParsecVDisplay:Windows虚拟显示器的终极免费解决方案
  • MIX 11 细节梳理 Windows phone 7 Session
  • 首先在code behind中加入以下方法
  • HBuilderX 创建 Vue3 uniCloud 项目
  • 2026深度研习八字排盘工具怎么选:看结构复盘、案例沉淀和AI边界
  • Learn Harness Engineering 课程全总结:12 讲核心要点
  • DeepLabv3+ 特征图可视化实战:从单通道提取到伪彩色映射的5步流程
  • Bellman方程 - RL强化学习中价值估计的数学根基
  • EdgeRemover:Windows 10/11 中专业卸载Microsoft Edge的终极解决方案
  • LangChain快速入门-03Retrieval(上)
  • 为什么测试这么难写?
  • HagiCode 是怎么把 13 个 Agent CLI 接到一套系统里的
  • 全球邮轮旅行服务市场投资前景分析及发展研究建议报告2026年版
  • 使用WorkBuddy自动发微博教程
  • Engine-Sim实战:3大技术挑战与精准仿真验证指南
  • Nginx安全头配置实战:从X-Frame-Options到CSP的完整指南
  • magnetW:一款高效的跨平台磁力链接聚合搜索工具完全指南
  • 暖通 / 配电 / 动环培训推荐|传统技工转行机房刚需岗位完整攻略
  • 从团购网的漏洞看网站安全性问题
  • R语言实现电力系统N-1事故分析与风险图谱生成
  • 创业是一种心态、信念和坚持,是一种生活方式
  • UE指的是用户的体验,