SurfSense
开源 NotebookLM 替代:无限数据源、团队协作、多模态 AI Agent,Docker 一键部署
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
开源 NotebookLM 替代:无限数据源、团队协作、多模态 AI Agent,Docker 一键部署
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你的团队正在赶一个大项目,成员们分散在各地,每个人电脑里都存着大量 PDF、Notion 文档、会议录音和网页笔记。每当需要整理背景资料时,大家只能手动复制粘贴、反复切换窗口,甚至因为记不清某份资料存在哪而反复搜索。这就是 Google NotebookLM 让无数知识工作者着迷的原因——它把散落的资料汇聚成一个「AI 知识中心」,让 AI 自动帮你读懂、总结、回答问题。但当你想要:管理超过 5 个笔记、给团队成员开协作文档、或者把自己的私有数据接入系统时,NotebookLM 的付费墙就毫不客气地拦在了你面前。"
SurfSense 正是为了解决这个问题而生的。它是目前开源社区中 Stars 数最高的 NotebookLM 开源替代方案,拥有超过 1.4 万颗星,采用 Apache 2.0 许可证,完全可以私有部署,数据不出自己的服务器,没有任何使用量和笔记本数量限制。## 起源:NotebookLM 很好,但还不够好
SurfSense 的开发团队(MODSetter)在博客中提到,他们深度使用 NotebookLM 近两年,深深感受到它的强大,但同时也受够了它的一系列限制:每个笔记本最多只能放 500,000 词、文件大小不能超过 200MB、笔记本数量有上限、无法连接自己的私有数据源、不支持团队协作。更关键的是,NotebookLM 深度绑定 Google 的 LLM 和存储服务,用户没有话语权。
团队决定,既然问题的根源在于封闭和付费墙,那最好的解法就是用开源代码自己搭一个。SurfSense 的核心目标就是:在保留 NotebookLM 核心体验的同时,把所有限制全部解除,让用户真正掌控自己的数据和工作流。## 核心功能:从「单兵作战」到「团队协作」的升级
如果你把 NotebookLM 看作一个 AI 阅读助手,那 SurfSense 就是一台 AI 知识管理引擎。它不仅能做文献总结,还能:
无限制的数据源接入。 SurfSense 支持超过 25 种外部数据连接器(Data Connectors),包括 Google Drive、OneDrive、Dropbox、Notion、Confluence、Jira、Linear、Slack、Airtable、GitHub、YouTube 等主流平台。用户可以将散落在不同平台的企业知识库、需求文档、会议记录全部接入同一个 SurfSense 实例,AI 会在所有数据源中检索和综合答案,不再需要逐个平台去找资料。
实时多人协作。 与 NotebookLM 不同,SurfSense 从一开始就为团队设计。它支持多人同时编辑同一个笔记本,评论、批注、任务分配全部在同一界面完成。对于咨询顾问、法务团队、研究小组等需要共享知识库的场景,这一功能直接解决了效率问题。
多模态 AI Agent。 SurfSense 内置了多个专用 Agent:
本地桌面应用。 SurfSense 提供了 Electron 桌面端,支持四种辅助模式:Quick Assist(快速获取当前窗口内容的相关信息)、General Assist(全应用范围的 AI 问答)、Screenshot Assist(一键截图并让 AI 分析)、本地文件夹同步。用户不需要打开浏览器,随时随地都能调用 AI 能力。
AI 文件自动整理。 SurfSense 会上传的文件按来源、日期、主题自动归类到智能文件夹中,再也不需要手动创建目录结构。## 技术架构:多语言微服务,高可维护性
SurfSense 的架构设计体现了现代全栈 AI 应用的工程标准。整体采用微服务分离架构,核心分为三个子系统:
后端(Python + FastAPI)。 后端是整个系统的核心引擎,使用 Python 3.12 + FastAPI 构建高性能异步 API。关键依赖包括:LangChain 和 LangGraph(Agent 编排框架)、pgvector(PostgreSQL 向量扩展,用于语义检索)、asyncpg(异步数据库驱动)、Alembic(数据库迁移管理)、Docling(PDF/Office 文档解析)、Kokoro(TTS 语音合成)、SearXNG(隐私保护搜索引擎)。后端提供了 60+ 条 REST API 路由,覆盖认证、数据源接入、Agent 调用、文件管理、搜索空间等核心功能。值得注意的是,SurfSense 支持 MCP(Model Context Protocol) 和 Composio 集成,可接入外部工具生态,极大扩展了 Agent 的能力边界。
前端(TypeScript + Next.js)。 Web 界面基于 Next.js 15 + TypeScript,使用 pnpm 作为包管理器、Turbopack 作为构建工具。组件化结构清晰,分为 atoms、components、features、hooks、contexts 等层级,便于团队协作开发。前端通过 API 与后端通信,支持实时聊天、笔记管理、Agent 配置等功能。
数据库层(PostgreSQL + pgvector + Redis)。 核心数据存储在 PostgreSQL 17(集成 pgvector 向量插件),用于存储结构化数据并支持语义相似度检索。Redis 用于缓存和任务队列(推测配合 Celery 使用)。SearXNG 实例为隐私优先的搜索提供底层能力。
容器化部署。 所有服务通过 docker-compose 一键启动,包含 PostgreSQL(pgvector)、Redis、SearXNG、Backend、Web 五个容器。其中 Backend 使用多阶段 Dockerfile 构建,最终产出精简的生产镜像。数据库迁移通过独立的 migrations 服务在启动时自动执行,确保 schema 一致性。
从代码组织来看,后端按功能模块划分:agents/(6 个 Agent)、connectors/(数据源接入)、retriever/(检索引擎)、routes/(60+ API 路由)、services/、tasks/、templates/。这种模块化设计让不同开发者可以并行开发不同功能,降低了代码冲突和维护成本。## 部署体验:开箱即用的同时也需要一定配置
SurfSense 支持 Docker Compose 一键部署,这是它相对于其他开源 NotebookLM 替代方案最明显的优势之一。克隆仓库后,只需要:
cp .env.example .env # 编辑关键配置(LLM API Keys、数据库密码等)
docker compose up -d # 启动全部服务
整个部署过程预计需要 15-30 分钟(包括镜像拉取、数据库初始化、迁移执行)。主要挑战在于 .env 配置:SurfSense 需要用户自己提供 LLM API Key(支持 OpenAI、Anthropic、本地 Ollama 等多种 LLM 后端)、数据库连接信息、以及各数据源(Google Drive、Notion 等)的 OAuth 凭证。对于非技术团队,配置这些密钥需要一定的耐心,但文档中有详细指引。
硬件需求方面,SurfSense 不需要 GPU,CPU 架构足够运行,内存建议 4GB 以上,磁盘占用约 20GB(含 Docker 镜像)。这使得它可以在普通的云服务器(如 2 核 4GB 的 VPS)上运行。相比需要 GPU 的 LLM 本地部署方案,SurfSense 对硬件要求非常友好。
项目还提供了 Obsidian 插件(surfsense_obsidian),允许 Obsidian 用户直接在笔记应用中调用 SurfSense 的 AI 能力。## 局限性:开源不等于完美
尽管 SurfSense 功能丰富,它也有一些需要注意的局限:
LLM 需要自备。 SurfSense 本身是一个 Agent 编排和知识管理平台,不附带 LLM 模型。用户需要自己准备 OpenAI API Key、Anthropic API Key 或本地 Ollama 实例。对于隐私要求极高的场景,虽然可以用 Ollama 本地部署,但 Ollama 在中文理解、长上下文推理方面的能力与 GPT-4o / Claude 3.5 仍有差距。
配置复杂度不低。 Docker Compose 一键启动虽然方便,但接入 25+ 数据源(Google Drive、Notion、Confluence 等)时,每个平台都需要单独配置 OAuth 应用。对于技术能力有限的团队,这个初始配置工作量不小。
图片资源未找到。 本次分析过程中,README 中引用的 banner 图片和视频文件均因 GitHub 代理限制无法验证,实际效果需用户自行体验。
相对年轻的项目。 SurfSense 目前 Stars 1.4 万,属于快速增长期,但相比 freeCodeCamp(44 万 Stars)等老牌项目,生态成熟度和社区规模还有提升空间。生产环境使用前建议关注其 release 版本和 changelog。## 行业意义:开源正在撼动 AI 应用层的付费模式
SurfSense 的出现代表了 AI 应用层的一个趋势:当底层模型能力逐渐同质化后,真正的差异化在于数据接入能力、协作体验和工作流整合。 NotebookLM 之所以受欢迎,是因为它解决了「让 AI 读懂我的资料」这个核心问题。但它的封闭生态让企业用户望而却步。
SurfSense 的思路是:与其在功能上与 NotebookLM 竞争,不如做一个「完全开放版」。用户可以部署自己的实例、接入自己的数据源、使用自己喜欢的 LLM、修改 Agent 的行为逻辑。这种开放性对于企业用户和技术团队来说,是付费产品无法提供的价值。
从技术角度看,SurfSense 的 LangChain + LangGraph + pgvector + FastAPI 技术栈,代表了当前 AI 应用开发的主流范式:利用向量数据库实现语义检索、用 Agent 框架编排多步骤任务、用异步后端保障并发性能。这套架构已经被大量 AI 应用验证过,可靠性较高。
如果你或者你的团队对知识管理 AI 有需求,且对数据隐私、协作能力、成本控制有要求,SurfSense 是一个值得认真考虑的开源选项。它的 Docker Compose 部署方式让非 DevOps 背景的开发者也能快速上手,而模块化的代码结构则为深度定制提供了充分的空间。