AI个人学习
和实操指南

Memary:利用知识图谱增强Agent长期记忆的开源项目

综合介绍

Memary 是一个创新的开源项目,专注于为自主智能体提供长期记忆管理解决方案。该项目通过知识图谱和专门的记忆模块,帮助智能体突破传统上下文窗口的限制,实现更智能的交互体验。Memary 采用自动化的记忆生成机制,可以在智能体交互过程中自动更新记忆,并通过统一的仪表盘展示这些记忆。系统支持多种模型配置,包括本地运行的 Llama 和 LLaVA 模型,以及云端的 GPT 模型。此外,Memary 还提供了多图支持,允许开发者为不同用户创建独立的智能体实例,实现个性化的记忆管理。

Memary:利用知识图谱增强Agent长期记忆的开源项目-1

Memary 整体架构


 

Memary:利用知识图谱增强Agent长期记忆的开源项目-1

Memary Agent

 

Memary:利用知识图谱增强Agent长期记忆的开源项目-1

Memary Knowledge Graphs

 

Memary:利用知识图谱增强Agent长期记忆的开源项目-1

Memory Modules

 

功能列表

  • 自动化记忆生成与更新
  • 知识图谱存储与检索
  • 记忆流(Memory Stream)跟踪实体与时间戳
  • 实体知识库(Entity Knowledge Store)管理频率与时效性
  • 递归检索方法优化知识图谱搜索
  • 多跳推理支持复杂查询处理
  • 自定义工具扩展支持
  • 多智能体图谱管理
  • 记忆压缩与上下文窗口优化
  • 主题提取与实体分类
  • 时间线分析功能

 

使用帮助

1. 安装配置

1.1 基本要求

  • Python 版本要求: <= 3.11.9
  • 推荐使用虚拟环境进行安装

1.2 安装方式
a) 使用 pip 安装:

pip install memary

b) 本地安装:

  • 创建并激活虚拟环境
  • 安装依赖: pip install -r requirements.txt

1.3 模型配置
Memary 支持两种运行模式:

  • 本地模式(默认):使用 Ollama 运行模型
    • LLM: Llama 3 8B/40B(推荐)
    • 视觉模型: LLaVA(推荐)
  • 云端模式:
    • LLM: gpt-3.5-turbo
    • 视觉模型: gpt-4-vision-preview

2. 环境准备

2.1 配置 .env 文件

OPENAI_API_KEY="YOUR_API_KEY"
PERPLEXITY_API_KEY="YOUR_API_KEY"
GOOGLEMAPS_API_KEY="YOUR_API_KEY"
ALPHA_VANTAGE_API_KEY="YOUR_API_KEY"
# 数据库配置(二选一):
FALKORDB_URL="falkor://[[username]:[password]]@[falkor_host_url]:port"
或
NEO4J_PW="YOUR_NEO4J_PW"
NEO4J_URL="YOUR_NEO4J_URL"

2.2 更新用户配置

  • 编辑 streamlit_app/data/user_persona.txt 设置用户特征
  • 可选:修改 streamlit_app/data/system_persona.txt 调整系统特征

3. 基本使用

3.1 启动应用

cd streamlit_app
streamlit run app.py

3.2 代码示例

from memary.agent.chat_agent import ChatAgent
# 初始化聊天智能体
chat_agent = ChatAgent(
"Personal Agent",
memory_stream_json,
entity_knowledge_store_json,
system_persona_txt,
user_persona_txt,
past_chat_json,
)
# 添加自定义工具
def multiply(a: int, b: int) -> int:
"""乘法计算工具"""
return a * b
chat_agent.add_tool({"multiply": multiply})
# 移除工具
chat_agent.remove_tool("multiply")

4. 多智能体配置

适用于使用 FalkorDB 数据库时:

# 用户 A 的个人智能体
chat_agent_user_a = ChatAgent(
"Personal Agent",
memory_stream_json_user_a,
entity_knowledge_store_json_user_a,
system_persona_txt_user_a,
user_persona_txt_user_a,
past_chat_json_user_a,
user_id='user_a_id'
)
# 用户 B 的个人智能体
chat_agent_user_b = ChatAgent(
"Personal Agent",
memory_stream_json_user_b,
entity_knowledge_store_json_user_b,
system_persona_txt_user_b,
user_persona_txt_user_b,
past_chat_json_user_b,
user_id='user_b_id'
)

5. 记忆管理特性

5.1 记忆流(Memory Stream)

  • 自动捕获所有实体及其时间戳
  • 支持时间线分析
  • 主题提取功能

5.2 实体知识库(Entity Knowledge Store)

  • 跟踪实体引用频率和时效性
  • 实体相关性排名
  • 实体分类功能
  • 时间变化分析

5.3 知识图谱功能

  • 递归检索优化
  • 多跳推理支持
  • 自动更新机制
未经允许不得转载:首席AI分享圈 » Memary:利用知识图谱增强Agent长期记忆的开源项目

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文