agentkits-memory
aitytech/agentkits-memory加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你正在为一个大项目开发一个新功能。上午和 AI 助手讨论了数据库设计,它建议了表结构和索引策略;下午你继续开发时,AI 突然完全"失忆"——不知道上午讨论过的决策,不知道为什么你选择了 PostgreSQL 而非 MySQL,甚至不知道项目用的是哪个 ORM。
这不是 AI 的 bug,而是 AI 架构的固有局限。 大多数 AI 编程助手(Claude Code、Cursor、Windsurf 等)本质上是"无状态"的对话,每次新会话都是白纸一张。它们无法记住上一个项目的技术选型、你自己定义的代码规范、或者某个历史决策背后的原因。
AgentKits Memory 正是为解决这一痛点而生——它为所有主流 AI 编程助手提供持久化记忆系统,让 AI 在跨会话、跨项目中始终保有上下文记忆。
AgentKits Memory 的诞生建立在 Model Context Protocol(MCP) 协议之上。MCP 是 Anthropic 主导推出的开放协议,旨在让 AI 模型能够与外部数据源和工具无缝交互。开发者可以通过 MCP 服务器扩展 AI 的能力边界——访问文件系统、搜索数据库、调用 API,而无需为每个 AI 产品单独适配。
AgentKits Memory 的核心思路很优雅:利用 MCP 协议将 SQLite 数据库暴露为 AI 可访问的记忆存储。项目由 AityTech 团队开发维护,已发布 npm 包 @aitytech/agentkits-memory,支持一键安装集成到现有 AI 编程工作流中。
AgentKits Memory 实现了精心设计的三层渐进式信息披露机制,这是该项目最具技术含量的设计之一:
这一设计的精妙之处在于Token 经济性——AI 编程助手按 Token 计费,无节制地加载历史记忆会大幅增加使用成本。三层设计确保 AI 始终以最小成本获取最相关的信息,既不浪费 Token,也不遗漏关键上下文。
项目通过 MCP 协议暴露了 9 个工具,覆盖记忆的全生命周期:
| 工具 | 功能 |
|---|---|
memory_save | 保存记忆(支持决策/模式/错误/上下文分类) |
memory_search | 混合搜索(FTS5 关键词 + sqlite-vec 向量语义) |
memory_timeline | 按时间线检索记忆 |
memory_details | 获取单条记忆完整内容 |
memory_recall | 智能召回相关记忆 |
memory_list | 列出指定命名空间下的记忆 |
memory_update | 更新记忆内容 |
memory_delete | 删除记忆 |
memory_status | 查询数据库状态 |
AgentKits Memory 支持混合搜索,同时利用 SQLite FTS5(全文搜索)和 sqlite-vec(向量嵌入搜索)两种技术:
@xenova/transformers 生成语义嵌入,实现"找相似的实现模式"等模糊查询。这种双引擎设计解决了 AI 编程中两类典型搜索需求:开发者知道要找什么(用关键词),以及开发者知道要什么但不记得叫什么(用语义搜索)。
项目提供了完善的 Hooks 系统,能够自动捕获 Claude Code 的工作上下文:
session-init:会话初始化时自动记录项目信息user-message:捕获用户指令和意图observation:自动记录 AI 的观察和发现summarize:AI 生成摘要时自动保存context:捕获代码变更和文件修改上下文这套 Hook 机制意味着用户无需手动标注记忆——项目会自动学习并积累开发过程中的关键信息。
AgentKits Memory 声称支持以下主流 AI 编程助手:
实际上这些产品的集成方式略有差异:Claude Code 通过 .mcp.json 直接配置 MCP 服务器,Cursor 通过其 MCP 扩展支持,其他工具通过兼容层间接支持。对于主流用户来说,至少 Claude Code 和 Cursor 的集成是开箱即用的。
AgentKits Memory 的技术选型非常务实:
dist/index.d.ts),项目本身代码质量较高。项目采用清晰的模块化组织:
src/index.ts:核心导出入口src/better-sqlite3-backend.ts:SQLite 持久化层src/cache-manager.ts:缓存管理src/types.ts:TypeScript 类型定义src/mcp/:MCP 协议实现(MCP server、tools definitions、types)src/hooks/:上下文自动捕获系统src/embeddings/:向量嵌入生成src/search/:混合搜索引擎src/cli/:命令行工具(viewer、web-viewer、save、setup)项目的测试覆盖数据令人印象深刻:
除了 CLI viewer(agentkits-memory viewer)之外,项目还提供了一个Web Viewer(agentkits-memory web),允许用户在浏览器中可视化浏览记忆数据库内容。这在调试和手动检索场景下很有用。
安装 AgentKits Memory 非常简单:
npm install -g @aitytech/agentkits-memory
然后在对应 AI 工具的 MCP 配置中添加服务器即可。以 Claude Code 为例,在 ~/.claude/projects/ 或项目目录的 .mcp.json 中添加:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@aitytech/agentkits-memory", "server"]
}
}
}
项目提供了优化的多阶段 Dockerfile,支持容器化部署:
FROM node:22-slim AS builder
# ... TypeScript 编译 ...
FROM node:22-slim
# 生产镜像仅复制编译产物,不含开发依赖
ENTRYPOINT ["node", "dist/mcp/server.js"]
Dockerfile 设计合理(多阶段构建、依赖分离),但没有提供 docker-compose,需要自己编写 docker-compose.yml 来完整运行(需要持久化存储 .claude/memory/memory.db)。
项目强调100% 本地运行:所有数据存储在本地 SQLite 文件中,不上传到云端,无需 API Key,无需注册账号。对于企业用户来说,这是一个重要的信任基础——代码、设计决策、技术债务记录等敏感信息不会离开本地环境。
但需要注意:可选依赖 @xenova/transformers 会进行本地模型推理(如 MiniLM),首次运行时会下载模型文件(~90MB),需要确认公司网络环境允许访问 Hugging Face Hub。
sqlite-vec 的语义搜索质量直接依赖于嵌入模型。@xenova/transformers 在本地 CPU 上运行,模型精度有限(默认使用 MiniLM 等轻量模型)。对于需要高精度的代码语义搜索场景,可能需要更强的嵌入模型,这会显著增加首次启动时间和内存占用。
MCP 协议仍在快速演进中,项目的工具定义、接口格式可能随协议版本变化而需要同步更新。用户需要关注 AityTech 团队的版本发布节奏,避免因协议不兼容导致功能失效。
当前版本(v2.3.0)没有内置的数据备份或跨设备同步功能。对于需要在多台机器间共享记忆的高级用户,需要自己实现备份脚本或使用第三方同步工具(如 Syncthing)。团队协作场景下,每人维护独立的记忆库,无法共享团队层面的知识积累。
SQLite 是单写多读的嵌入式数据库,高并发写入场景(如多 AI 工具同时工作)可能面临锁竞争。虽然 better-sqlite3 已经做了异步优化,但在高频写入的工作流中仍需注意。
AgentKits Memory 代表的趋势是 AI 编程助手从"单次对话工具"向"持久化开发伴侣"的演进。随着 AI 编程工具的普及,"记忆缺失"问题越来越被开发者重视——无论是个人开发者的个人项目经验积累,还是团队层面的知识传承,都需要某种形式的持久化上下文机制。
类似的竞品还有:
相比这些竞品,AgentKits Memory 的差异化优势在于:原生 MCP 集成 + SQLite 轻量化 + 三层 Token 经济性设计,这三个特性组合在当前市场上是相对独特的。
AgentKits Memory 是一个设计精巧、解决真实痛点的开源工具。它通过 MCP 协议为 AI 编程助手赋予持久记忆能力,三层渐进式信息披露机制在信息完整性和 Token 成本之间找到了很好的平衡点。全 TypeScript + better-sqlite3 的技术选型确保了性能和质量,970 个测试用例和 91% 覆盖率也体现了较高的代码质量。
适合人群:重度使用 Claude Code、Cursor 等 AI 编程助手的开发者,尤其是长期维护大型项目的团队。
不太适合:仅偶尔使用 AI 编程工具的轻量用户(收益不明显),或者需要跨团队共享知识的大型组织(当前无协作功能)。
一句话评价:它不是魔法,但它是目前最务实的"给 AI 装上记忆"的开源方案之一。