人工智能体-Agents 组件详解

举报
tea_year 发表于 2025/05/14 13:37:25 2025/05/14
185 0 0
【摘要】        在人工智能快速发展的今天,如何有效地与AI系统进行交互已成为一项重要技能。LearnPrompt应运而生,旨在帮助用户掌握这门新兴的"AI语言"。作为一个免费开源的AIGC(AI生成内容)课程平台,LearnPrompt提供了全面的学习资源,涵盖提示工程、ChatGPT使用、Midjourney等多个热门AI工具的应用。什么是LearnPrompt?     LearnProm...

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

什么是LearnPrompt?
     LearnPrompt是一个致力于教授人们如何与AI系统有效沟通的在线学习平台。该平台由一群来自OpenAI、微软等顶尖AI公司的专家共同创建,目前已有超过200万用户和45,000多名Discord社区成员。LearnPrompt提供80多个课程模块,涵盖了从基础到高级的各种提示工程技巧。


Agents 组件详解


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

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

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

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

组件⼀ :规划

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

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

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

任务分解

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

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

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

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

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

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

反思

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

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

ReAct

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

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

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

Reflexion

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

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

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

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

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

组件⼆: 记忆

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

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

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

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

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

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

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

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

对于 Agent 来说:

感觉记忆作为原始输⼊, 可以是⽂本 、图像或者其他模态的输⼊  短期记忆则⽤于上下⽂学习 。它是短暂和有限的, 因为它受到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 Agent系统以大型语言模型(LLM)为核心,通过三大关键组件实现复杂任务处理:

  1. 规划:LLM将任务拆解为子目标(如CoT、思维树方法),并通过反思(如ReAct框架)动态优化决策,类似人类“三思而后行”的推理过程。

  2. 记忆:分为短期记忆(上下文学习)和长期记忆(外部向量存储),通过记忆流管理经验,结合近期性、重要性和相关性检索信息,提升响应准确性。

  3. 工具使用:调用外部API(如搜索、计算)扩展能力,如MRKL系统的模块化专家协作或ChatGPT插件机制,弥补模型固有局限。

典型工作流示例:Agent通过规划(搜索新闻→阅读→摘要)、记忆(存储检索结果)和工具(谷歌搜索API)协同完成任务。这类系统通过模仿人类认知机制,实现高效、自适应的问题解决,标志着AI从被动响应迈向主动协作的新阶段。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。