knowledge-base-server
willynikes2/knowledge-base-server加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象你是一名使用 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 是这场变革中一个值得关注的小而美的实践。