OpenAGI:介绍长期记忆

在人工智能快速发展的世界中,机器不仅能够处理信息,而且能够记住并从过去的互动中学习是至关重要的。OpenAGI的最新更新引入了长期记忆(LTM),这是一项突破性的进展,标志着在开发智能、类似人类的代理程序方面迈出了重要一步。这一创新功能提升了代理程序互动、适应和成长的方式,为AI驱动系统带来了新的智能水平。

什么是长期记忆,为什么它重要?

长期记忆为AI代理提供了存储和回忆来自先前交互的信息的能力,就像人类记忆一样。这种发展不仅仅是一项新功能,而且是AI系统运作方式的根本性转变,提升了它们的性能和用户体验。

使用LTM,OpenAGI代理现在可以:

  • 回顾过去的互动,以提供对话的连续性。
  • 随着时间的推移学习并根据用户输入进行适应。
  • 通过参考以往的对话提供具有上下文相关性的回复。
  • 随着每次交互的增多提高他们的准确性和效率。

长期记忆的主要特点

  1. 无缝集成:在OpenAGI中启用LTM非常简单,只需要进行简单的配置更新。
  2. 可定制的存储器:用户可以控制他们的代理的记忆存储在哪里以及如何存储。
  3. 智能检索:LTM利用语义相似性从过去经验中检索和应用相关信息。
  4. 反馈驱动学习:代理人可以整合用户反馈以持续提升他们的表现。
  5. 隐私控制:内存管理是用户友好的,可以轻松删除或修改存储的信息。

在OpenAGI中实施长期记忆(LTM)

在OpenAGI中,长期记忆的实现被设计为尽可能简单。以下是一个示例代码片段,演示如何在您的代理中启用和配置LTM:

  • 导入库和模块:此部分导入与OpenAGI交互、处理内存、任务规划和使用DuckDuckGo进行网络搜索所需的组件。
import os
from openagi.agent import Admin
from openagi.llms.openai import OpenAIModel
from openagi.memory import Memory
from openagi.planner.task_decomposer import TaskPlanner
from openagi.worker import Worker
from openagi.actions.tools.ddg_search import DuckDuckGoSearch
  • 设置API密钥:此行在环境中设置OpenAI API密钥,允许访问OpenAI模型。
  • os.environ['OPENAI_API_KEY'] = "-"
  • 加载OpenAI模型:OpenAI模型是通过从环境中加载配置数据进行初始化的。这个llm对象将用来处理任务。
  • config = OpenAIModel.load_from_env_config()
    llm = OpenAIModel(config=config)
  • 定义一个网络搜索工作者:这将创建一个担任“网络研究员”角色的工作者,他将使用DuckDuckGo根据用户查询来查找信息。
  • web_searcher = Worker(
    role="Web Researcher",
    instructions="""
    You are tasked with conducting web searches using DuckDuckGo.
    Find the most relevant and accurate information based on the user's query.
    """,
    actions=[DuckDuckGoSearch],
    )
  • 管理设置:在这里,创建了一个管理员实例来管理任务执行,使用任务计划程序、长期记忆和加载的LLM(OpenAI模型)。
  • admin = Admin(
    actions=[DuckDuckGoSearch],
    planner=TaskPlanner(human_intervene=False),
    memory=Memory(long_term=True),
    llm=llm,
    )
  • 分配工作者:web_searcher 工作者被分配给管理员处理网络搜索任务。
  • admin.assign_workers([web_searcher])
  • 提示用户输入:程序提示用户输入查询,并根据该查询创建描述。
  • query = input("Enter your search query: ")
    description = f"Find accurate and relevant information for the query: {query}"
  • 运行代理:管理员执行任务,使用用户的查询和描述。调用DuckDuckGoSearch工作器以获取相关信息。
  • res = admin.run(
    query=query,
    description=description
    )
  • 显示结果:搜索结果以格式化的方式打印出来,以便向用户提供输出。
  • print(res)

    有了LTM激活,您的代理现在将保留来自先前互动的知识,并利用这些信息提供更相关和智能的回复。

    真实世界应用:记忆力的力量行动中

    考虑一个现实世界的情景,您正在构建一个音乐助手,为用户检索歌词。代理记住用户偏好和以前的互动能力展示了LTM的潜力:

    最初查询:

    用户:“请提供皇后乐队的歌曲‘波西米亚狂想曲’的歌词。”

    代理人:

    按下Enter键后,我们将获得歌词作为输出,并显示一条消息,表明长期记忆已更新:

    后续查询:

    用户:“现在给我‘Radio Ga Ga’的歌词。”

    现在,代理人在长期记忆中寻找类似的查询并检索它们:

    在这个例子中,代理记住了用户之前对Queen乐队的兴趣,提供了与上下文相关的回应。这种互动水平是通过长期记忆的整合实现的。

    自定义您的代理记忆

    OpenAGI 的 LTM 功能的一个关键优势是其灵活性。开发人员可以微调各种参数来定制他们的代理的内存能力:

    • 长期: 一个布尔标志,用来启用或禁用LTM。
    • ltm_threshold:定义检索记忆的语义相似度阈值(默认值:0.7)。
    • 长期目录: 指定内存存储的目录。

    这里是如何自定义这些参数的示例:

    from openagi.memory import Memory
    memory = Memory(
    long_term=True,
    ltm_threshold=0.8,
    long_term_dir="/path/to/custom/memory/storage"
    )
    admin = Admin(
    actions=[YourCustomTool],
    planner=TaskPlanner(human_intervene=True),
    memory=memory,
    llm=llm,
    )

    这种定制化水平使开发人员能够优化内存存储和检索,确保代理在复杂环境中有效运行。

    长期记忆(LTM)如何增强决策制定

    长期记忆功能遵循一种系统化的决策过程。当收到查询时,代理程序会检查其记忆中是否有类似的过去查询,并依次执行以下步骤:

    1. 如果启用了LTM,则代理搜索相关的记忆。
    2. 如果找到一个相似度高的记忆,并且没有负面反馈,代理将使用该记忆来做出回应。
    3. 如果过去互动的反馈表明错误,代理将相应调整其回应。
    4. 新的互动被存储在长期记忆中,以及未来参考的反馈。

    这种反馈驱动的方法确保持续学习和改进。

    从反馈中学习

    LTM的一个重要优势在于它能够从用户反馈中学习。例如,如果用户对一个回应提供了负面反馈,代理将存储这些信息并相应调整未来的交互:

    为什么长期记忆是一个改变游戏规则的因素

    长期记忆的引入将OpenAGI转变为一个更强大和适应性更强的平台。能够记住、学习和随时间改进的智能体不仅更有用,而且在解决复杂的现实世界问题中至关重要。通过将长期记忆融入您的AI项目中,您可以创建提供更聪明、有上下文意识的辅助的智能体。

    想象一下一个可以记住你的偏好、避免重复错误并且随着每次互动而变得更聪明的AI助理。这是智能系统的未来,而长期记忆是向这个方向迈出的关键一步。

    立即开始

    探索长期记忆的能力,访问我们的GitHub存储库。无论您是在开发个人助手还是复杂的系统,LTM都提供了一个激动人心的机会,以增强您的代理智能和适应性。

    使用OpenAGI中的长期记忆功能提升您的AI项目。

    加入我们的Discord频道。

    2024-10-12 04:25:46 AI中文站翻译自原文