从0开始学习大模型--Day03--Agent规划与记忆

规划(planning)

规划,可以为理解观察和思考。如果用人类来类比,当我们接到一个任务,我们的思维模式可能会像下面这样:

·1、首先会思考怎么完成这个任务。

2、然后会审视手头上所拥有的工具,以及如何使用这些工具高效地达成目的。

3、再会把任务拆分成子任务。(就像咱们做思维导图一样。)

4、在执行任务的时候,我们会对执行过程进行反思和完善,吸取教训以完善未来的步骤。

5、执行过程中思考任务何时可以终止。

这是人类的规划能力,我们希望智能体也拥有这样的思维模式,因此可以通过 LLM 提示工程,为智能体赋予这样的思维模式。在智能体中,最重要的是让 LLM 具备两种能力:子任务拆解和反思与改进

子任务拆解

通过LLM使得智能体可以把大型任务分解为更小的、更可控的子任务,从而能够有效完成复杂的任务。

思维链(Chain of Thoughts,CoT):思维链已经是一种比较标准的提示技术,能显著提升LLM完成复杂任务的效果。当我们对LLM要求"think step by step",会发现LLM会把问题分解成多个步骤,一步一步思考问题和如何解决,能使得输出的结果更加准确,这是一种线性的思维模式。

思维树(Tree-of thought,ToT):对CoT的进一步扩展,在思维链的每一步,推理出多个分支,拓扑展开成一棵思维树,使用启发方式评估每个推理分支对问题解决的贡献,选择搜索算法,使用广度优先搜索(BFS)或深度优先搜索(DFS)等算法来探索思维树,并进行前瞻和回溯)。

思维链和思维树的不同思考过程

反思与改进

Agent对过去的行动进行自我批评和反思,从错误中学习并改进未来的步骤,从而提高最终结果的质量。

在实际任务中,试错是不可避免的,而自我反思在这个过程中起着至关重要的作用。它允许 Agent 通过改进过去的行动决策和纠正以前的错误来进行迭代改进。

反思是 Agent 对事情进行更高层次、更抽象思考的结果。反思是周期性生议的,当gent感知到的最新事件的重要性评分之和超过一定阈值时,就会生成反思。这可以类比为我们常用的成语"三思而后行",做重大决策的时候,我们会反思自己先前的决策。

事实上,有没有这种类似思维模式的框架,对于大模型的给出的答案,质量与耗费的时间区别是显而易见的,无论是只有标准,仅推理还是仅行动,都会在一定程度上限制答案,相当于是在闭门造车,而如果用对了框架,像前面所说的一样,先规划,做出行动后思考是否合理,再去决定下一步行动,这样给出的答案相比之下就会更完善,在解决问题上也会更高效。像是我们比较经常会说到的就是LLM有时会因为幻觉而给出很荒谬的答案,就是因为没有交互,也没有观察答案的反馈,直接就给出答案。

记忆(memory)

生活中的记忆机制

感觉记忆(Sensory Memory):这是记忆的最早阶段,提供在原始刺激结束后保留感官信息(视觉、听觉等)的印象的能力。感觉记忆通常只持续几秒钟。

短期记忆(或工作记忆):这是一种持续时间较短的记忆,能够暂时存储和处理有限数量的信息。例如,记住一个电话号码直到拨打完毕。

长期记忆:这是一种持续村间较长的记忆,可以存储大量信息,从几分钟到一生。长期记忆可以进一步分为显性记忆和隐性记忆。显性记忆,可以有意识地回忆和表达的信息,显性记忆又可以分为情景记忆(个人经历的具体事件)和语义记忆(一般知识和概念)。隐性记忆,这种记忆通常是无意识的,涉及技能和习惯,如骑自行车或打字。

智能体中的记忆机制

形成记忆:大模型在大量包含世界知识的数据集上进行预训练。在预训练中,大模型通过调整神经元的权重来学习理解和生成人类语言,这可以被视为"记忆"的形成过程。通过使用深度学习和梯度下降等技术,大模型可以不断提高基于预测或生产文本的能力,进而形成世界记忆或长期记忆

短期记忆:在当前任务执行过程中所产生的信息,比如某个工具或某个子任务执行的结果,会写入短期记忆中。记忆在当前任务过程中产生和暂存,在任务完结后被清空。

长期记忆:长期记忆是长时间保留的信息。一般是指外部知识库,通常用向量数据库来存储和检索。

学习来源于B站教程:【进阶篇】05.Agent记忆(memory)_哔哩哔哩_bilibili

相关推荐
西岸行者2 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意2 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码3 天前
嵌入式学习路线
学习
毛小茛3 天前
计算机系统概论——校验码
学习
babe小鑫3 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms3 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下3 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。3 天前
2026.2.25监控学习
学习
im_AMBER3 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J3 天前
从“Hello World“ 开始 C++
c语言·c++·学习