记忆
记忆功能为每个机器人提供跨会话持久的长期记忆。机器人可以在对话之间记住事实、偏好和上下文,无需您重复。
工作原理
每个机器人都有自己的隔离记忆存储,由 IndexedDB 支持。记忆条目是在浏览器中跨页面重新加载和会话持久化的键值对。
当机器人有记忆条目时,它们会在发送每条消息之前自动注入到系统提示词中。模型将存储的上下文作为其指令的一部分接收,使其能够访问记住的信息而无需消耗可见的聊天历史。
注入的格式在内部如下:
<memory>
- user_name: Alice
- preferred_language: Python
- project: Building a REST API with FastAPI
</memory>
添加记忆
/remember 命令
直接在聊天中输入记忆命令:
告诉机器人: bcz_remember("user_name", "Alice")
当模型在其响应中包含 bcz_remember("key", "value") 时,平台会自动解析并存储记忆条目。这允许模型根据您的对话决定什么值得记住。
设置中的记忆面板
您也可以手动管理记忆:
- 打开设置
- 导航到当前机器人的记忆部分
- 添加、编辑或删除单个记忆条目
查看记忆
当前机器人的所有记忆条目在设置中可见。每个条目显示:
- 键 —— 标识符(例如 "user_name"、"project_context")
- 值 —— 存储的信息
- 时间戳 —— 条目最后更新的时间
编辑和删除记忆
从设置中的记忆面板:
- 通过更改键或值来编辑任何记忆条目
- 使用删除按钮删除单个条目
- 为当前机器人清除所有记忆
注意
删除记忆是永久的。无法撤销。如果您清除所有记忆,机器人将从头开始,没有任何记忆上下文。
记忆格式
记忆存储为键值对:
| 键 | 值 | 示例用途 |
|---|---|---|
user_name | Alice | 个性化响应 |
preferred_language | Python | 代码生成偏好 |
timezone | US/Pacific | 时区感知响应 |
project | FastAPI REST API | 正在进行的项目上下文 |
coding_style | PEP 8, type hints, docstrings | 代码风格偏好 |
键应该具有描述性和简洁性。值可以是任何文本。
用例
- 个人偏好 —— 姓名、时区、编程语言、沟通风格
- 项目上下文 —— 当前项目详情、技术栈、需求
- 重复指令 —— "总是用注释格式化代码"、"偏好简洁的答案"
- 领域知识 —— 存储机器人应该始终了解的关于您环境的事实
- 对话摘要 —— 让机器人维护过去讨论的持续摘要
提示
从几个关键记忆开始(您的姓名、首选语言、项目名称),让它们自然增长。随着机器人积累关于您偏好和工作流程的上下文,它会变得更有用。
每机器人隔离
记忆是每机器人的 —— 每个机器人都有自己独立的记忆存储。记忆不会在机器人之间泄露。这意味着:
- 您的编码助手记住您的技术栈
- 您的写作助手记住您的写作风格
- 两者都看不到对方的记忆
存储详情
| 属性 | 详情 |
|---|---|
| 后端 | IndexedDB(存储为 ais-memory-{botId}) |
| 持久性 | 存活页面重新加载、浏览器重启、会话切换 |
| 范围 | 本地于您的浏览器 —— 永远不发送到任何服务器 |
| 导出 | 包含在"导出所有数据"备份中 |
| 分享的 URL | 记忆不包含在分享的机器人 URL 中 |
工具调用集成
支持工具调用的模型可以通过结构化工具调用管理自己的记忆。当模型在其响应中输出 bcz_remember() 调用时,平台自动:
- 解析函数调用
- 提取键和值
- 在 IndexedDB 中存储(或更新)记忆条目
这允许模型自主决定什么信息重要到值得为未来的对话记住。
信息
记忆注入会增加系统提示词长度,这会计入模型的上下文窗口。如果您有很多记忆条目,它们会消耗本可用于对话历史的 token。