找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3229

积分

0

好友

428

主题
发表于 2026-2-14 04:22:07 | 查看: 33| 回复: 0

Milvus向量数据库logo

Claude Code插件架构概念图

昨天我们聊了如何复刻OpenClaw的记忆系统,旨在为所有Agent构建透明、可控的记忆层,并发布了核心工具 memsearch

但具体到代码编程领域,如何有效地实现记忆与检索,其需求和挑战又与其他场景有所不同。因此,在 memsearch CLI 的基础上,我们专门为 Claude Code 开发了一个永久记忆插件——memsearch ccplugin。这个设计思路理论上也适用于其他支持插件的AI编程工具。

借助 memsearch ccplugin 提供的轻量级记忆方案,Claude 能够记住你的每一次对话、每一个技术决策、每一条代码风格偏好,实现跨会话、跨天的知识积累与自动检索,让历史经验随时可用。

memsearch ccplugin应用架构

为了表述清晰,在本文中,我们将上层的 memsearch Claude Code plugin 简称为 ccplugin,而底层核心仍称为 memsearch

我们为什么需要 memsearch ccplugin?

设想这样一个场景:早上打开 Claude Code,你想让AI继续昨天的代码重构工作。但 Claude 似乎“失忆”了,完全不记得昨天的进展。于是,你不得不翻找历史记录,开始复制粘贴上下文。这种问题虽小,但频繁发生会极大影响开发效率。

Claude Code 自身虽然具备一些记忆机制,但在实际生产级应用中往往捉襟见肘。例如,它的 CLAUDE.md 文件适合存储静态的项目规则和简短的提示,却难以承载长期、动态积累的知识。虽然也有 /resume/fork 等命令来恢复会话,但体验并不友好:用户需要记住复杂的 session ID,手动管理一堆分叉的对话历史。

更常见的情况是,当你输入 /resume 命令后,面对一长串只有简单标题的会话列表,如果只模糊记得某些操作细节且时间久远,根本无从分辨哪个才是目标会话。

Claude Code Resume Session界面

为此,市场上出现了像 claude-mem 这样的全栈式解决方案。它的核心理念是构建一套完整的记忆系统:自动捕获编码活动,用AI压缩成可搜索的摘要,并在需要时注入相关上下文。

claude-mem项目图标

为了实现这一目标,claude-mem 设计了一个三层记忆系统:先搜索高层摘要,需要细节时可以查看时间线,想看原始对话则能调取完整的交互记录。此外,它还提供了隐私标签、成本统计和Web可视化界面等功能。

其技术栈实现如下:

claude-mem技术栈

平心而论,claude-mem 是一个出色的开源项目,它切实解决了Claude Code的记忆痛点。但其架构也带来了相当的复杂性,主要体现在:

  1. 环境与组件依赖繁重:用户需要部署Node.js、Bun、MCP runtime等基础环境,并维护包含Worker服务、Express server、React UI、SQLite、向量数据库在内的多个组件,部署和维护门槛较高。
  2. Context窗口与成本开销大:其基于MCP server的设计存在一个关键问题——所有工具定义会永久占用Claude的上下文窗口,且每次工具调用的请求和响应都会消耗额外tokens。在长时间会话中,这些累积开销可能导致token成本失控。
  3. 记忆召回的被动性:claude-mem采用“Agent驱动”模式,必须由Claude主动调用search等工具才能触发检索。如果Claude没有“意识”到需要调取某段记忆,相关内容就不会出现。
  4. 数据存储不透明:记忆数据分散存储在SQLite(元数据)和Chroma(向量数据)等二进制数据库中,缺乏通用、开放的格式。用户想要迁移或直接查看记忆内容,只能通过专用接口或编写导出脚本。

正是基于对上述现状的思考,我们开始探索:AI记忆系统能否设计得更简单、更轻量?

memsearch ccplugin 的构建哲学与架构

与claude-mem追求功能完备的全栈架构不同,memsearch ccplugin 选择了另一条路径:极简主义。我们的目标是,以最轻量化的方式解决Claude Code的记忆问题,摒弃一切不必要的复杂性。

memsearch ccplugin 的架构核心,仅仅是 四个Shell Hook脚本 加上 一个后台文件监控(watch)进程。它完全避免了Node.js服务、MCP server、Web UI等重型组件,本质上就是几个调用底层 memsearch CLI 的Shell脚本,极大地降低了部署和维护成本。

从职责划分上看,ccplugin 本身不负责记忆存储、向量检索或文本嵌入。这些核心能力全部交由底层的 memsearch CLI 来实现。ccplugin 的唯一使命,就是充当一座高效的桥梁,将Claude Code全生命周期中的关键事件(如会话启动、用户输入、停止回复、会话结束),精准地桥接到 memsearch CLI 的对应功能上。

memsearch ccplugin 工作流程架构图

这种分层解耦的设计带来了极大的灵活性。即使你不使用Claude Code,memsearch CLI 也可以独立集成到其他IDE或Agent框架中,甚至通过命令行手动调用,完全不受单一场景的限制。

具体来说,这套架构有两大突出特色:

特色一:Markdown优先,向量索引为可重建缓存

ccplugin 将所有记忆以纯文本形式,存储在 .memsearch/memory/ 目录下的Markdown文件中。

.memsearch/memory/
├── 2026-02-09.md
├── 2026-02-10.md
└── 2026-02-11.md

每个文件代表一天的会话摘要,格式人类可读、可直接编辑。以下是 memsearch 项目自身的记忆文件示例:

memsearch项目记忆Markdown文件内容

你可以清晰看到时间、会话ID、每轮对话的ID以及由AI生成的会话摘要。这意味着,你想知道AI记住了什么,直接打开Markdown文件即可。想修改或删除某段记忆?用任何文本编辑器编辑就行。需要迁移数据?直接复制整个 .memsearch/memory/ 文件夹。

在此设计中,Milvus向量索引仅作为加速语义检索的派生缓存。所有索引都可以随时从Markdown源文件完整重建。这确保了整个系统没有不透明的二进制数据库,数据完全可追溯、可控制。

memsearch数据存储与重建流程

特色二:自动注入与零上下文消耗

透明的存储是基础,高效的使用才是关键。ccplugin 的记忆召回是完全自动的。

每次你在Claude Code中输入提示(prompt),UserPromptSubmit Hook会自动触发语义搜索,并将最相关的3条记忆(top-3)直接注入到对话上下文中。Claude无需主动决定“是否要搜索”,它直接就获得了相关的历史上下文。

在这个过程中,Claude看不到任何MCP工具定义,因此不会占用宝贵的上下文窗口(Context Window)。Hook机制在操作系统CLI层面运行,注入的只是纯文本搜索结果,没有进程间通信(IPC)的开销,也彻底避免了工具调用所产生的额外token成本,从根源上杜绝了上下文开销累积的问题。

memsearch ccplugin 会话全生命周期序列图

此外,为了兼顾默认效率与特殊场景的灵活性,我们设计了一套三层渐进式检索逻辑:

  • L1 (自动层):每次输入时自动注入top-3语义搜索结果(包含chunk_hash和约200字的预览),满足日常多数需求。
  • L2 (按需层):当需要更完整的上下文时,可以手动运行 memsearch expand 命令,获取完整的Markdown章节及其元数据。
  • L3 (深入层):如需追溯到原始对话记录,可运行 memsearch transcript --turn 命令,调取JSONL格式的原始交互记录。

这套逻辑确保了默认使用时的极度轻量化,同时保留了按需深入挖掘细节的能力。

memsearch三层渐进式检索逻辑

解决了“怎么用”的问题,我们再来看看“存什么”以及“怎么存”。

ccplugin 的Markdown记忆内容是通过一套后台异步、低成本的流程自动生成的:每当你停止Claude的回复时,Stop Hook会异步触发,解析本次对话记录(transcript),并调用成本极低的Claude Haiku模型生成一段简洁的会话摘要,然后将其追加到当天的Markdown文件中。

与此同时,一个后台的watch进程会监控Markdown文件的变化。一旦检测到有新内容追加,它会自动将新增部分索引到Milvus向量库中,从而确保记忆的实时可检索性。整个流程在后台静默运行,对用户无干扰,且API调用成本极低。

快速上手指南

只需要简单几步,你就可以为你的Claude Code装上“永久记忆”:

第一步:安装插件
在Claude Code的终端中运行以下命令,从插件市场安装。

# 在Claude Code终端运行
/plugin marketplace add zilliztech/memsearch
/plugin install memsearch

第二步:重启Claude Code
安装完成后,重启Claude Code。插件会自动完成初始化配置。

第三步:验证记忆生成
完成一次完整的编码对话后,你可以通过以下命令查看当天生成的记忆摘要。

cat .memsearch/memory/$(date +%Y-%m-%d).md

第四步:体验自动记忆检索
下次启动Claude Code开始新会话时,系统会自动在后台检索并注入相关记忆,你无需任何额外操作即可享受上下文连贯的编程体验。

总结与对比

回到最初的问题:如何为AI编程助手添加记忆?claude-memmemsearch ccplugin 代表了两种不同的设计思路,各有优劣。

memsearch 与 claude-mem 功能对比表格

  • claude-mem 提供了更丰富的功能(如Web可视化、精细化管理)、更完善的用户界面以及更灵活的控制逻辑。如果你需要团队协作、对记忆内容进行复杂的标签管理或可视化审计,它是一个强大的选择。
  • memsearch ccplugin 则追求极简设计,实现了零上下文消耗、完全透明的数据存储和极低的维护门槛。如果你只想为Claude Code增加一个轻量、可靠、不添乱的记忆层,而不想引入额外的复杂度,那么它可能更适合你。

没有绝对的好坏,只有是否适合你的需求。 我们的目标是提供一种更简单、更可控的选项,让AI编程助手的记忆回归“工具”的本质。

项目资源




上一篇:西部数据新HDD路线图:100TB容量与8倍性能提升,要跟SSD抢市场?
下一篇:嵌入式系统中高效数据压缩的应用场景与算法选型:从固件升级到日志管理
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 14:19 , Processed in 0.726420 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表