本地记忆搜索
在设备上构建本地记忆索引,检索历史会话上下文,并可选择使用本地或远程嵌入优化深度排序。
本地记忆搜索允许 Kaiwu(无极开物)在连接了守护进程的特定设备上,利用解密后的会话记录构建设备本地搜索索引。
适合在需要 Kaiwu 回答如下问题时使用:
- “你还记得我们什么时候讨论过这个吗?”
- “帮我找一下讨论 OpenCode 配额的那次会话。”
- “翻一下之前关于守护进程内存规划的对话。”
功能特性
在设备上启用本地记忆搜索后,Kaiwu 可以:
- 基于该设备的会话记录构建并维护本地衍生索引
- 在客户端或 Web 端搜索该索引
- 打开匹配的会话,并直接定位至相关的对话节点
- 让编程智能体与语音智能体调用记忆工具进行召回,而非依赖模型记忆凭空猜测
该功能严格遵循设备本地设计原则,并非服务端的全局搜索索引。
入口位置
在客户端或 Web 端中:
- 打开 Settings → Memory search
- 选择要配置的设备
- 为该设备启用记忆搜索
进行搜索时:
- 打开 Local Memory Search
- 选择目标设备
- 输入查询词
- 打开搜索结果,直接跳回匹配的会话上下文
如果尚未看到该功能,请前往 Settings → Features 开启 memory.search 功能。
核心模型:设备本地,非账户全局
记忆搜索的作用域限定在所选设备上。
这意味着:
- 每台设备拥有独立的索引
- 笔记本电脑与远程开发机之间不会自动共享记忆索引
- 若设备处于离线状态,Kaiwu 将无法查询该设备的本地记忆索引
- 远程嵌入设置同样归属于设备本地,不在全局共享
这一设计出于审慎考虑:
- 会话记录的解密本就在客户端或守护进程侧完成
- 衍生出的记忆索引仅保留在构建它的设备上
- 用户可针对不同设备分别配置存储和嵌入参数
轻量索引与深度索引
Kaiwu 提供两种索引模式。
轻量模式(Light)
轻量模式仅存储摘要分片。
适用场景:
- 磁盘空间有限
- 后台维护开销要求更低
- 需要更轻量的召回层
如果主要需求是粗粒度的泛化召回,无需深入检索详尽的会话记录,建议从该模式起步。
深度模式(Deep)
深度模式会将消息块保存在本地。
适用场景:
- 对实际对话内容有更强的召回需求
- 针对特定话题、决策或代码片段需要更高的搜索质量
- 配合基于嵌入的重排序机制
深度模式会占用更多磁盘空间,首次回填耗时也相对更长。
历史回填机制
开启本地记忆搜索时,可选择 Kaiwu 需要索引的历史范围:
- New only(仅新会话)—— 仅索引启用记忆搜索后产生的内容
- Last 30 days(近 30 天)—— 回填近期历史
- All history(全部历史)—— 回填该设备上可用的所有历史数据
若追求最快上线且风险最低,建议先选择 New only。
若希望立即检索过去的对话,可选择 Last 30 days 或 All history。
记忆线索生成
轻量模式依赖记忆线索(即摘要分片)。
支持配置的项包括:
- 摘要生成器后端
- 摘要生成器模型
- 摘要生成任务是以
no tools还是read only权限运行
若希望使用该设备上现成的特定后端或模型来生成记忆线索,该配置项非常实用。
深度模式下的嵌入向量
嵌入向量为可选配置,且仅在深度索引模式下生效。
未启用嵌入时:
- Kaiwu 依然支持深度搜索
- 排序机制退化为纯文本匹配
启用嵌入后:
- Kaiwu 能够显著提升深度搜索的排序质量
- 系统会将嵌入向量层与文本排序打分相结合
预设嵌入配置
Kaiwu 目前提供以下几种模式:
- Off(关闭)—— 深度搜索仅采用纯文本排序
- Balanced(均衡)——
Xenova/all-MiniLM-L6-v2 - Long context(长上下文)——
Xenova/jina-embeddings-v2-small-en - Quality(高品质)——
Alibaba-NLP/gte-modernbert-base - Custom(自定义)—— 指定自定义本地模型或兼容 OpenAI 的端点
Balanced 为默认选项,其初次运行的各项指标经过验证,最为稳妥:
- 下载体积小
- 冷启动成本低
- 整体召回质量良好
Long context 表现优异,通常更适合处理较大的会话记录分块,但初次使用的开销仍高于默认项。
Quality 是资源消耗最大的预设,建议仅作为评估测试或高级配置使用。
本地嵌入
针对本地预设以及自定义本地模型:
- Kaiwu 会全权管理本地运行时
- 模型在首次使用时自动下载
- 下载完成后,直接由守护进程缓存于本地运行
用户无需自行安装 Python、Ollama、sentence-transformers 或任何其他独立的嵌入服务。
自定义远程嵌入
高级用户可选择 Custom → OpenAI-compatible endpoint。
支持自定义填写:
- Base URL
- API Key
- 远程嵌入模型名
- 维度(可选)
对于已有自建嵌入服务,或打算使用兼容 OpenAI 的接口替代本地模型的场景,该方式十分理想。
注意事项:
- 远程配置仅限设备本地
- API Key 安全保存在守护进程的本地加密配置中,非明文存储
- 若远程端点不可用或配置有误,Kaiwu 会平滑降级为纯文本排序,不会导致记忆搜索崩溃
隐私与清理
本地记忆搜索围绕衍生本地数据设计。
启用后,Kaiwu 会在本地存储如下索引数据:
- 轻量索引数据库
- 深度索引数据库
- 可选的本地模型缓存
勾选 Delete on disable(禁用时删除),即可在停用该设备的记忆搜索时,自动清除所有本地索引与缓存文件。
智能体协作机制
当记忆搜索可用且就绪时,Kaiwu 会引导智能体在处理召回请求时优先调用记忆工具。
具体执行逻辑如下:
- 收到“你还记得我们讨论过某某问题吗?”这类提问时,智能体应先检索记忆
- 检索到高相关度内容后,先拉取匹配的上下文窗口,再组织回答
- 若记忆搜索未命中任何内容,智能体应当明确说明,而非凭空臆造
只要目标设备启用了记忆搜索,该机制对常规编程会话与语音交互流程均适用。
典型应用场景
查找早期的设计讨论
记得讨论过某个主题但想不起具体会话时,可以使用 Local Memory Search。
示例:
- “找一下我们讨论已连接服务配额的内容。”
定位到历史会话的特定节点重新打开
搜索特定主题,直接打开命中结果即可跳至会话记录的对应位置,免去人工逐行翻找整场会话的繁琐。
提升主力开发机的召回效果
在大部分会话运行的主力设备上,启用深度索引并配合本地嵌入预设。
保持远程开发机支持搜索
若会话的守护进程实际运行在远程开发机上,直接在远程设备上单独开启记忆搜索即可。
局限性与预期表现
- 本地记忆搜索不是全服务端共享的检索索引。
- 搜索效果取决于当前选定设备已完成索引的数据量。
- 首次启用或切换模型后,构建深度索引与嵌入向量需要一定时间。
- 远程嵌入属于高级功能,要求外部端点行为完全兼容 OpenAI 的 Embeddings API。
推荐配置流程
面向绝大多数用户的建议:
- 在主力设备上启用记忆搜索
- 初始模式选择 Light(轻量)或 Deep + Balanced(深度 + 均衡)
- 历史范围先选 New only(仅新会话)
- 勾选 Delete on disable,方便后续清理数据
若日常对话较长且希望对大段会话记录获得更佳的召回效果,建议切换至 Long context。
仅在明确需要接入私有嵌入端点时,才使用 Custom remote。