跳转至

记忆与缓存

Agora 具有持久的记忆系统,让模型可以跨对话记住信息。结合自动的嵌入缓存,它提供了一个随使用而增长的知识库。

记忆类型

活跃记忆

一个单一的、始终开启的记忆上下文,随每次 API 调用一同发送给模型。把它想象成模型始终能看到的便利贴。

活跃记忆用途: - 你的名字、偏好和背景 - 模型应始终知道的项目上下文 - 适用于所有对话的固定指令 - 你厌倦重复的事实

活跃记忆内容示例:

用户:Newo Ether
偏好:日常交流用中文,技术话题用英文。
项目:开发 Agora — 一款 BYOK Android LLM 客户端。
编码风格:Kotlin、Jetpack Compose、MVVM 架构。

编辑活跃记忆

  1. 前往 设置 → 记忆
  2. 滚动到 活跃记忆
  3. 点按 编辑活跃记忆
  4. 输入内容
  5. 点按 保存

模型也可以在工具调用中更新活跃记忆,如果访问活跃记忆已启用。


已保存记忆

一组命名记忆文件,模型可以搜索、读取、创建、编辑和删除。与活跃记忆(始终发送)不同,已保存记忆按需检索。

已保存记忆用途: - 参考资料(API 文档、配置详情、命令) - 项目特定笔记 - 从过往对话中获得的经验和洞察 - 你希望模型在相关时回忆的任何内容

手动创建记忆

  1. 前往 设置 → 记忆
  2. 点按 添加记忆
  3. 输入:
    • 标题 — 描述性名称
    • 描述 — 简要摘要(用于搜索匹配)
    • 内容 — 完整记忆内容
  4. 点按 创建

模型创建的记忆

访问已保存记忆启用时,模型可以通过工具调用创建、读取、更新和删除记忆文件。这让模型可以:

  • 记住你告诉它的事实
  • 保存有用的代码片段或配置
  • 随时间构建知识库
  • 清理过时信息

记忆权限

控制模型可以访问什么:

设置 位置 何时启用
访问已保存记忆 设置 → 记忆 你希望模型读写记忆文件
访问活跃记忆 设置 → 记忆 你希望模型更新持久上下文
访问历史对话 设置 → 对话搜索 你希望模型搜索聊天历史

三项默认均为关闭。只启用你需要的。


自动缓存

自动缓存在新消息到达时自动生成嵌入。这保持对话搜索索引始终最新而无需人工干预。

启用自动缓存

  1. 前往 设置 → 对话搜索
  2. 选择嵌入模型(如尚未配置——见 嵌入 / RAG
  3. 缓存 下,切换 自动缓存新消息

启用后,每条新消息(用户和模型)自动嵌入并索引用于语义搜索。

手动缓存

如果自动缓存关闭,可以手动缓存消息:

  1. 前往 设置 → 对话搜索
  2. 点按 缓存 — 计算所有未缓存消息的嵌入
  3. 进度以圆形指示器显示

点按 重新缓存 从头重建整个索引。删除所有缓存嵌入并重新处理每条消息。使用场景: - 更改了嵌入模型 - 缓存似乎损坏或过时 - 搜索结果意外地差

Warning

重新缓存不可逆,可能根据消息数量和嵌入模型速度需要较长时间。

缓存状态

嵌入模型设置显示多少消息已缓存 vs 未缓存: - "所有 N 条消息已缓存" — 最新 - "X / Y 条消息未缓存" — 有待处理的积压


聊天中的记忆工具调用

当模型使用记忆工具时,你会看到内联卡片:

工具 卡片文本
查找 "浏览了 N 条已保存记忆"
读取 "已读取 [记忆名称]"
保存 "已保存 [记忆名称]"
编辑 "已更新 [记忆名称]"
删除 "已移除 [记忆名称]"
更新活跃记忆 "已更新活跃记忆"

点按任意卡片查看已读或已写的完整内容。


最佳实践

  • 保持活跃记忆简洁 — 它包含在每次 API 调用中,冗长内容浪费 token
  • 为已保存记忆使用描述性标题 — 标题帮助模型找到正确的记忆
  • 如果经常使用对话搜索,启用自动缓存
  • 切换嵌入模型后重新缓存 — 不同模型生成不兼容的嵌入