规划(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