Agent智能体记忆管理工具思路

记忆存储格式

记忆信息存储在数据库中(比如可以使用 SqliteDb)。按照以下格式进行储存

memory_id 记忆的唯一标识符
user_id 关联的用户 ID
agent_id 可选的关联代理 ID
team_id 可选的关联团队 ID
memory 记忆的文本内容
topics 与记忆相关的主题标签(可选)
input 生成此记忆的原始输入(可选)
updated_at 更新时间戳

记忆管理功能

记忆创建与更新

采用两种方法储存更新记忆

  1. enable_user_memories 每次对话结束后都会将最新的添加、更新或删除记忆,并将其存储到数据库中。

  2. enable_agentic_memory 每次对话结束后,调用LLM 根据当前对话和现有记忆进行对比,决定接下来的操作(添加、更新、删除等),并更新数据库。

记忆检索功能

三种检索方式:

  1. 获取最近记忆 (last_n) 按时间戳 (updated_at) 排序,返回用户最新的 n 条记忆。

  2. 获取最旧记忆 (first_n) 按时间戳 (updated_at) 排序,返回用户最旧的 n 条记忆。

  3. 智能语义检索 (agentic) 将用户的所有记忆(ID 和内容)作为上下文提供给 LLM,由 LLM 分析用户查询 query 的语义,并返回最相关的记忆 ID 列表,最后根据 ID 获取完整的记忆对象。

减少 Token 消耗的尝试

  1. 自动创建和更新记忆,不使用llm调用

  2. Agent提示词中限制记忆创建更新的频率(限制工具使用次数)

  3. 对记忆进行剪枝

  4. 通过日志检测用户记忆数量,超过部分进行剪枝