knowledge-base-server
让每个 AI Agent 告别"失忆症"——基于 SQLite FTS5 的本地持久记忆系统,支持 MCP 协议和 Obsidian 双向同步,数据完全留存在本地。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让每个 AI Agent 告别"失忆症"——基于 SQLite FTS5 的本地持久记忆系统,支持 MCP 协议和 Obsidian 双向同步,数据完全留存在本地。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象你是一名使用 AI 编码助手的开发者。周一,你在终端里花了两个小时调试 Docker 网络问题,Claude Code 最终帮你找到了原因——容器 Bridge 模式与宿主 DNS 冲突。你记下了这个坑,告诉它"下次遇到类似问题用 Host 模式"。周二,新的会话开始了,你对着 AI 说:"上次我们解决了 Docker 网络问题……" 对方茫然地看着你——它不记得任何事情。
这是所有 AI Agent 使用者的共同噩梦:上下文失忆。每一次新的对话,都是从零开始。调试经验、项目架构、个人偏好,统统消散在 Session 结束的那一刻。
开源项目 knowledge-base-server 正是为解决这个问题而生。它的核心命题简单而有力:让每个 AI Agent 都变得更聪明。
在 knowledge-base-server 出现之前,业界尝试过几种"续命"方案。方案一是超长 System Prompt——把所有背景塞进提示词,但 token 成本高昂,且模型注意力会稀释。方案二是向量数据库检索——将文档向量化后做语义搜索,但只能检索,无法写入,Agent 的学习成果无法沉淀。
knowledge-base-server 则走了一条完全不同的路:它构建了一个七层情报管道(Intelligence Pipeline),让信息从原始抓取到精炼知识逐层升级,并支持 Agent 的读写双向交互。
这个管道的输入端覆盖了开发者日常工作的一切信息源:Obsidian 笔记(双向同步)、YouTube 字幕、X/Twitter 书签、网页文章、终端会话日志、Bug 修复记录、PDF 文档等。输出端则是 MCP(Model Context Protocol)接口和 REST API,Claude Code、Codex CLI、Cursor、ChatGPT 等主流 AI 工具都可以接入。
不同于大多数 AI 应用选择 PostgreSQL + pgvector 或 ChromaDB 等专用向量数据库,knowledge-base-server 的核心存储选用了 SQLite + FTS5 全文搜索扩展。这是一个有意为之的工程决策。
SQLite 是单文件数据库,零配置、零服务进程、数据文件可随身携带。相比启动一个 Docker 容器来运行向量数据库,SQLite 的启动成本几乎为零。对于个人开发者工具这个场景,便利性远比水平扩展能力重要。
更重要的是,FTS5 是 SQLite 内置的全文搜索引擎,支持 BM25 排序、短语搜索、布尔查询,性能足够应对中小规模知识库(官方描述中提到已在生产环境处理 200+ 文档)。配合 HuggingFace 本地 Embedding 模型(项目使用 @huggingface/transformers),同样可以在不依赖云端 API 的情况下实现语义搜索。
整个系统可以在没有 GPU、没有互联网的环境中运行,数据完全留在本地——这对注重隐私的开发者来说是一个重要卖点。
项目深度集成了 Model Context Protocol(MCP),这是 Anthropic 主导推出的 AI 上下文协议。MCP 的核心价值在于:它将知识库的能力标准化为 AI Agent 可以直接调用的工具(Tools),而非需要解析提示词的间接机制。
knowledge-base-server 通过 MCP SDK(@modelcontextprotocol/sdk)暴露了 16 个工具,覆盖:
| 工具类型 | 工具名称 | 功能 |
|---|---|---|
| 检索 | kb_search、kb_search_smart、kb_context | 全文/语义/摘要级搜索 |
| 读取 | kb_read | 按 ID 获取完整文档 |
| 写入 | kb_write、kb_update | 创建或更新笔记 |
| 抓取 | kb_capture_session、kb_capture_fix、kb_capture_web、kb_capture_youtube | 从终端/Web/视频等来源抓取内容 |
| 管理 | kb_classify、kb_promote、kb_synthesize | AI 自动分类、知识升级、跨源综合 |
其中 kb_context 尤其值得关注:它返回文档摘要而非全文,单个文档仅消耗约 100 个 token,相比直接读取(500-5000 token)节省 90% 以上。这个设计体现了开发者的工程直觉——在 token 成本敏感的 AI 工作流中,摘要先行、按需展开是最优策略。
如果把所有知识都平铺在同一层,Agent 搜索"认证"时可能同时返回六个月的原始网页剪报和最新的架构决策文档——噪声淹没信号。
knowledge-base-server 实现了冷/温/热三层记忆架构:
这个设计与计算机存储层次结构(CPU Cache → RAM → Disk)哲学一致:快速存储存放最相关数据,慢速存储保留全部信息但不干扰主要工作流。
项目还包含一个独特的设计:自学习循环。这不是微调(Fine-tuning)或 RLHF,而是通过操作历史(Operational History)实现自我修正的指令。
每当 Agent 完成一次调试会话,kb_capture_session 会记录目标、操作、结果和原因。随后 kb_classify 工具运行 AI 分类,自动打标签、项目路由和置信度评分。kb_promote 工具进一步将原始捕获升级为结构化知识(来源 → 洞察 → 决策 → Runbook)。最后 kb_synthesize 在每周综合工作中连接跨源主题,发现重复出现的问题和潜在的工作流改进。
这套机制的效果是:随着使用时间增长,KB Server 变得越来越精准。它不再只是存储文档的仓库,而是变成了真正能从历史中学习、在未来检索时提供更有价值信息的智能层。
在部署方面,这是一个典型的开发者个人工具,而非面向服务器的 SaaS 产品。项目要求 Node.js >= 20.0.0,提供了 kb-server-install.sh 脚本将服务注册为 systemd 系统守护进程。没有 Dockerfile、没有 docker-compose,对于习惯 Docker 一键部署的用户来说,需要一点手动配置。
但这个"缺点"实际上是工程上的合理权衡:SQLite 单文件 + Node.js 本地运行,使得整个系统的运维边界非常清晰——不需要 Docker 网络、不需要持久化卷挂载、不需要健康检查。对于个人使用场景,简单性本身就是优势。
Web 仪表盘(Express.js + 原生 HTML/CSS/JS,无前端框架)提供了可视化查询界面,REST API 暴露了完整的搜索和写入能力,OpenAPI 规范文档(openapi.json)完备,方便二次开发或与其他工具集成。
没有任何项目是完美的,knowledge-base-server 也有几个值得关注的局限:
第一,分类和摘要生成依赖外部 LLM。 项目使用 Claude CLI 进行 AI 分类和综合生成,这需要本地安装 Claude CLI 或配置 API Key。对于完全离线的环境,这部分能力会降级。
第二,SQLite FTS5 在超大规模知识库上的扩展性有限。 官方描述的生产环境是 200+ 文档,如果个人开发者的知识库增长到数万条记录,SQLite 的写入锁和全文索引性能可能成为瓶颈。
第三,Obsidian 双向同步的稳定性。 项目深度依赖 Obsidian 作为"人类知识层",如果 Obsidian 笔记本身管理混乱,KB Server 同步进来的数据质量也会受影响。这是一个"输入质量决定输出质量"的系统。
第四,无官方 Docker 支持。 在容器化无处不在的今天,缺少 Dockerfile 意味着无法在云服务器或团队共享环境中快速部署。不过项目提供了完整的 systemd 服务脚本,对于 Linux 服务器用户来说,安装路径是清晰的。
knowledge-base-server 代表了一个正在壮大的开源方向:个人 AI 记忆基础设施。随着 Claude Code、Cursor、Windsurf 等 AI 编码工具的普及,开发者对"跨会话持久上下文"的需求越来越强烈。这个项目的价值不在于技术突破,而在于将一个清晰的理念(持久记忆 + MCP 协议 + SQLite 轻量存储)工程落地到了可用状态。
从增长角度看,AI Agent 领域的竞争焦点正在从"模型能力"向"上下文管理"迁移。谁能让 AI 更好地利用历史信息,谁就掌握了下一代 AI 开发工作流的核心。knowledge-base-server 是这场变革中一个值得关注的小而美的实践。