人工智能体-Agents 组件详解

人工智能体-Agents 组件详解

       在人工智能快速发展的今天,如何有效地与AI系统进行交互已成为一项重要技能。LearnPrompt应运而生,旨在帮助用户掌握这门新兴的”AI语言”。作为一个免费开源的AIGC(AI生成内容)课程平台,LearnPrompt提供了全面的学习资源,涵盖提示工程、ChatGPT使用、Midjourney等多个热门AI工具的应用。

在以LLM驱动的Agent系统中, Agent 智能体 LLM扮演着Agent的⼤脑⻆⾊, 并辅以⼏个关键组件:

1. 规划:LLM能够进⾏全⾯的规划,不仅仅是简单的任务拆分 。它可以评估不同的路径和策 略,制定最佳的⾏动计划, 以实现⽤户给出的⽬标。

2. 记忆:LLM具有记忆功能, 它可以存储和检索过去的信息和经验 。这使得它能够在处理⽤ 户查询时,利⽤之前学到的知识和经验,提供更准确和个性化的答案。

3. ⼯具使⽤ :LLM熟练掌握各种⼯具和资源, 能够灵活运⽤它们来⽀持任务的完成 。它可以 利⽤搜索引擎 、数据库 API等⼯具, 获取和整理相关信息, 以满⾜⽤户的需求。

人工智能体-Agents 组件详解

组件⼀ :规划

. ⼦⽬标和分解:Agent将⼤型任务分解为可管理的⼦⽬标,从⽽有效地处理复杂的任务。

. 反思和改进:Agent对过去的⾏动进⾏⾃我批评和反思,从错误中学习并改进未来的步 骤,从⽽提⾼最终结果的质量

处理复杂任务时,往往需要进⾏多个步骤 。为了更好地组织和计划,Agent 需要明确任务 具体内容并开始提前计划。

CoT将关注点放在了模型思考过程的可解释性上,使得处理困难任务变得更加可管理。

. 思维树(Tree of Thoughts)通过探索每个步骤的多种推理可能性来扩展CoT 。它⾸先将 任务分解为多个思考步骤, 并为每个步骤⽣成多个想法,从⽽可以创建⼀个树形结构 。形 成了⼀个树形结构 。您可以使⽤⼴度优先搜索或深度优先搜索来搜索思维树, 并根据分类 器或多数投票确定每个状态。

人工智能体-Agents 组件详解

通过以上⽅法,您可以以三种⽅式拆解任务:

1. 使⽤简单的提示, 引导 LLM 进⾏拆解,例如: 实现A的步骤 实现A的⼦⽬标是什 么?

2. 使⽤特定任务的指令,例如 写⼀个故事⼤纲 ⽤于撰写⼩说。

3. 您可以⾃⼰进⾏任务拆解和规划 。如编写脚本要先进⾏信息提取, 再进⾏内容⽣成。

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

反思是 Agent 对事情进⾏更⾼层次 、更抽象思考的结果 。反思是周期性⽣成的, Agent 知到的最新事件的重要性评分之和超过⼀定阈值时,就会⽣成反思 。这可以类⽐为我们常⽤的成语 三思⽽后⾏ ,做重⼤决策的时候, 我们会反思⾃⼰先前的决策

ReAct

ReAct是一种将推理和行动融合在一起的技术,通过将行动空间扩展为特定任务的离散行动。

和语言空间的组合 ,将其整合到LLM 。简单来说,特定任务的离散⾏动使 LLM 能够与环 境交互(例如使⽤维基百科搜索API),语⾔空间能够促使LLM ⽣成⾃然语⾔的推理轨迹。 ReAct提示模板包括LLM思考的明确步骤,⼤致格式为:

人工智能体-Agents 组件详解

人工智能体-Agents 组件详解

ReActCoT的不同之处:CoT 只是在prompt加⼊了静态的 Lets think step by step ReAct prompt是动态变化。

Reflexion

Reexion是⼀个框架, Agent提供动态记忆和⾃我反思的能⼒以提⾼推理技能 Reexion 采⽤标准的强化学习设置, 奖励模型提供简单的⼆元奖励( 即判断⾏动正确与否), ⽽⾏动 空间遵循 ReAct 中的设置, 通过语⾔加强特定任务的⾏动空间,增加了复杂的推理步 。在 每个⾏动之后,Agent会计算⼀个启发式值,并根据⾃我反思的结果决定是否重置环境以开 始新的试验。

人工智能体-Agents 组件详解

启发式函数⽤于判断 LLM 的⾏动轨迹什么时候开始低效或者包含幻觉, 并在这个时刻停⽌

任务 。低效是指花费了⼤量时间但没有没有成功的路径 。幻觉定义为 LLM 遇到了⼀系列连

    续的相同动作, 这些动作导致LM在环境中观察到了相同的结果

请注意,这里跟我们一般说的大模型幻觉不同。大模型幻觉指的是模型会输出一系列看 似符合逻辑,但实际错误或并不存在的虚假事实。

人工智能体-Agents 组件详解组件⼆: 记忆

. 我们可以将上下⽂学习(context)看成是利⽤模型的短期记忆(也就是模型能接受输⼊ 的最⼤⻓度)来学习

. ⻓期记忆为 Agent 提供了⻓期存储和召回信息的能⼒ ,通常利⽤外部向量储存和快速检索 来实现。

记忆是指获取 、储存 、保留和后续检索信息的过程 。⼈脑中有多种记忆类型:

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

. 短期记忆(ShortTerm Memory, STM 或⼯作记忆(Working Memory):它储存我们 当前意识到的信息,⽤于进⾏复杂的认知任务, ⽐如学习和推理 。短期记忆容量通常为7 个项⽬左右, 持续时间为20-30秒。

. ⻓期记忆( LongTerm Memory, LTM):⻓期记忆可以储存信息很⻓⼀段时间,从⼏天 到⼏⼗年, 其储存容量基本上是⽆限的 。⻓期记忆有两个⼦类型:

. 显性 / 陈述记忆( Explicit / declarative memory):指可被有意识回忆的事实和事件 的记忆, 包括情景记忆( 经历和经验) 和语义记忆( 事实和概念)

. 隐性 / 程序记忆( Implicit / procedural memory):这种记忆是⽆意识的, 涉及⾃动 执⾏的技能和例⾏程序, ⽐如骑⾃⾏车或打字。

人工智能体-Agents 组件详解

人工智能体-Agents 组件详解

人工智能体-Agents 组件详解

对于 Agent 来说:

人工智能体-Agents 组件详解 感觉记忆作为原始输⼊, 可以是⽂本 、图像或者其他模态的输⼊  短期记忆则⽤于上下⽂学习 。它是短暂和有限的, 因为它受到Transformer有限上下⽂窗 ⼝⻓度的限制。⻓期记忆则是 Agent 可以在查询和关注的外部向量存储, 通过快速检索来访问。

记忆流与检索

记忆流( Memory Stream 记录了Agent的全部经历 。它是⼀个内存对象列表,每个对象包 含⾃然语⾔描述 、创建时间戳和最近访问时间戳 。记忆流的基本元素是观察Observation), 这是Agent直接感知的事件 。观察可以是Agent⾃身执⾏的⾏为,也可以 Agent感知到其他Agent或⾮Agent对象执⾏的⾏为 。每个Agent都有⾃⼰独⽴的记忆流。检索功能根据Agent的当前情况,从记忆流中检索⼀部分记忆,供语⾔模型使⽤ 。排序打分 包括三个⽅⾯:

. 近期性( Recency):最近访问的记忆对象得到更⾼的分数, 因此刚刚发⽣的事件或今天 早上的事件可能会更受Agent关注 。近期性使⽤指数衰减函数来衡量,衰减因⼦为0.99 衰减的基准是上次检索记忆以来的时间。

. 重要性( Importance):根据Agent认为的重要程度, 为记忆对象分配不同的分数, 区分 普通记忆和核⼼记忆 。例如, 平凡的事件( ⽐如吃早餐) 得到低重要性分数, ⽽与重要的 ⼈开会这事件得到⾼分 。重要性分数可以使⽤不同的实现⽅式, 类似的解决⽅案就是使⽤ 了这个具体的评分模型来输出⼀个整数分数。

. 相关性( Relevance 为与当前情况相关的记忆对象分配更⾼的分数 。使⽤常⻅的向量检 索引擎来实现相关性评估。

组件三: 使⽤⼯具

Agent可以通过学习调用外部API来获取模型权重中所缺少的额外信息,这些信息包括当前信 息、代码执行能力和访问专有信息源等。这对于预训练后难以修改的模型权重来说是非常重 要的。

掌握使⽤⼯具是⼈类最独特和重要的特质之⼀ 。我们通过创造 、修改和利⽤外部⼯具来突破 我们身体和认知的限制 。同样地, 我们也可以为语⾔模型( LLM 提供外部⼯具来显著提升 其能⼒

MRKL(模块化推理 、知识和语⾔) 是⼀种为⾃主Agent设计的神经符号架构 MRKL系统包 含⼀组 专家模块, LLM 将查询发送到它认为最适合的专家模块 。这些模块可以是神经模 块( 如深度学习模型) 或符号模块( 如数学计算器 、货币转换器 、天⽓API

TALM ⼯具增强语⾔模型) Toolformer通过微调语⾔模型来学习使⽤外部⼯具的API 。这 些数据集是根据增加外部API调⽤注释是否能够提⾼模型输出质量⽽创建的 。⼯具API的集合 可以由其他开发⼈员提供( 如插件案例),也可以⾃定义( 如函数调⽤案例)

ChatGPT 插件和 OpenAI API 函数调⽤也是具有⼯具使⽤能⼒的 LLM 在实践中的最好 的例⼦

1. 我们告诉 Agent “你的⽬标是找出关于Twitter的最新消息,然后给我发⼀份摘要”。

2. Agent查看⽬标并使⽤像OpenAIGPT-4这样的AI进⾏阅读理解, 它提出了第⼀个任务: 在⾕歌上搜索与Twitter相关的新闻

3. 然后,Agent 在⾕歌上搜索 Twitter 新闻,找到热⻔⽂章, 并返回链接列表 。第⼀个任务 已完成。

4. 现在,Agent 回顾主要⽬标( 获取关于Twitter的最新新闻, 并发送摘要) 以及它刚刚完成 的内容( 获得⼀系列关于Twitter的新闻链接), 并决定其下⼀个任务需要是什么。

5. 它提出了两个新任务 1 写新闻摘要 2 阅读通过⾕歌找到的新闻链接的内容。

6. 在继续之前,智能助理会稍作停顿, 以确保正确安排这些任务 。它反思是否应该先写摘 。然⽽, 它决定⾸要任务是阅读通过⾕歌找到的新闻链接的内容。

7. Agent 阅读⽂章内容,然后再次查看待办事项列表 。它考虑添加⼀个新任务来总结所阅读 的内容,但是发现这个任务已经在待办事项列表中, 因此不会重复添加它。

8. Agent 检查待办事项列表, 只剩下⼀项任务:撰写所阅读内容的摘要 。于是, 它执⾏了这 个任务,按照您的要求向您发送了摘要。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:Ai探索者,转载请注明出处:https://javaforall.net/238910.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 上午10:03
下一篇 2026年3月16日 上午10:03


相关推荐

关注全栈程序员社区公众号