kenforthewin/atomic

GitHub: kenforthewin/atomic

自托管的语义互联个人知识库,将 Markdown 笔记转化为 AI 增强的知识图谱,支持语义搜索、图谱可视化和智能对话检索。

Stars: 1276 | Forks: 85

Atomic [![Discord](https://img.shields.io/discord/1489017497200885800?label=discord&logo=discord&logoColor=white&color=5865F2)](https://discord.gg/fT4vTERhz3) [![桌面应用](https://img.shields.io/github/v/release/kenforthewin/atomic?label=desktop&logo=github)](https://github.com/kenforthewin/atomic/releases/latest) [![服务端镜像](https://img.shields.io/github/v/tag/kenforthewin/atomic?label=server&logo=docker)](https://github.com/kenforthewin/atomic/pkgs/container/atomic-server) [![Web 镜像](https://img.shields.io/github/v/tag/kenforthewin/atomic?label=web&logo=docker)](https://github.com/kenforthewin/atomic/pkgs/container/atomic-web) 一款个人知识库,能将 Markdown 笔记转化为语义互联、AI 增强的知识图谱。 Atomic 将知识存储为 **atoms**(原子)——这些 Markdown 笔记会自动进行分块、嵌入、打标,并通过语义相似度进行关联。你的原子可以被合成为 Wiki 文章,在空间画布上进行探索,并通过智能体聊天界面进行查询。 https://github.com/user-attachments/assets/e8cd771f-6e23-46cf-86d1-3c70cb8d1954 *每日简报 —— 包含行内引用的近期原子 AI 摘要,可在微型画布上高亮显示来源* https://github.com/user-attachments/assets/282da0e3-4969-42dd-b591-7da974078e87 *原子 —— 包含标签、来源和邻域图的 Markdown 笔记* ![Atom 查看器](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8f18a7a1a3195731.png) *Wiki 合成 —— 包含行内引用的 LLM 生成文章* ![Wiki 合成](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c4a3f0f688195731.png) *画布 —— 在交互式图谱上查看你的知识* ![画布](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/703a035c24195732.png) *语义搜索 —— 根据含义而非关键字进行查找* ![语义搜索](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5e2d1c3283195733.png) ## 功能特性 - **原子** —— 具有分层标签、来源 URL 和自动分块功能的 Markdown 笔记 - **语义搜索** —— 使用 sqlite-vec 对你的知识库进行向量搜索 - **画布** —— 力导向空间可视化,通过语义相似度决定布局 - **Wiki 合成** —— 根据你的笔记构建的包含行内引用的 LLM 生成文章 - **聊天** —— 在对话过程中搜索你的知识库的智能体 RAG 接口 - **自动打标** —— 由 LLM 驱动的、按层次类别组织的标签提取 - **多种 AI 提供商** —— 使用 OpenRouter、Ollama 或任何兼容 OpenAI 的提供商进行嵌入和 LLM 操作 - **RSS 订阅源** —— 订阅信息源并自动将新文章同步为原子 - **浏览器扩展** —— 直接将网页内容捕获到 Atomic 中([Chrome Web Store](https://chromewebstore.google.com/detail/bknijbafnefbaklndpglcmlhaglikccf)) - **MCP 服务器** —— 将你的知识库暴露给 Claude 及其他 AI 工具 - **多数据库** —— 具有共享注册表的多个知识库 - **iOS 应用** —— 用于在移动设备上读写原生的 SwiftUI 客户端([App Store](https://apps.apple.com/us/app/atomic-kb/id6759266634)) ## 入门指南 Atomic 可以作为**桌面应用**(Tauri)、**无头服务器**(Docker/Fly.io)运行,或两者同时运行。 ### 桌面应用 从 [GitHub Releases](https://github.com/kenforthewin/atomic/releases) 下载适用于你平台的最新版本(macOS、Linux、Windows)。 首次启动时,设置向导将引导你完成 AI 提供商的配置。 ### 使用 Docker Compose 自托管 ``` git clone https://github.com/kenforthewin/atomic.git cd atomic docker compose up -d ``` 这将启动三个服务:API 服务器、Web 前端和 Nginx 反向代理。打开 `http://localhost:8080`,并通过设置向导认领你的实例。 提供代理服务是为了方便起见 —— 如果你已经运行了自己的反向代理(Caddy、Traefik 等),则可以跳过它,直接将流量路由到 `server` 和 `web` 容器。有关示例配置,请参见 `docker/nginx.conf`。 ### 部署到 Fly.io ``` cp fly.toml.example fly.toml fly launch --copy-config --no-deploy fly volumes create atomic_data --region --size 1 fly deploy ``` 打开 `https://your-app.fly.dev` 并认领你的实例。用于 OAuth/MCP 的公共 URL 将根据 Fly 应用名称自动检测。 ### 独立服务器 ``` cargo run -p atomic-server -- --data-dir ./data serve --port 8080 ``` 首次运行时,创建一个 API token: ``` cargo run -p atomic-server -- --data-dir ./data token create --name default ``` ## AI 提供商设置 Atomic 需要 AI 提供商来进行嵌入、打标、Wiki 生成和聊天。 - **OpenRouter** — 从 [openrouter.ai](https://openrouter.ai) 获取 API 密钥。支持为嵌入、打标、Wiki 和聊天分别选择模型。 - **Ollama** — 安装 [Ollama](https://ollama.com) 并拉取模型(例如,`ollama pull nomic-embed-text`)。Atomic 会自动发现可用模型。 - **兼容 OpenAI 的提供商** — 任何提供兼容 OpenAI API 的提供商(例如 OpenAI、Azure OpenAI、Together、Groq)。配置 base URL 和 API 密钥即可。 在首次启动时通过设置向导进行配置,或稍后在“设置”中配置。 ## 浏览器扩展 Atomic Web Clipper 可将网页内容捕获为原子。从 [Chrome Web Store](https://chromewebstore.google.com/detail/bknijbafnefbaklndpglcmlhaglikccf) 安装,然后在扩展选项中配置你的服务器 URL 和 API token。 捕获内容会离线排队,并在服务器可用时同步。 ## MCP 服务器 Atomic 暴露了一个 MCP 端点,供 Claude 及其他 AI 工具搜索和创建原子。 ### 桌面应用(本地模式) 桌面应用捆绑了 `atomic-mcp-bridge`,这是一个 stdio 到 HTTP 的桥接工具,可自动读取本地身份验证 token。无需配置 token —— 只需将你的 MCP 客户端指向该二进制文件即可: ``` { "mcpServers": { "atomic": { "command": "/Applications/Atomic.app/Contents/MacOS/atomic-mcp-bridge" } } } ``` 应用的“设置 > 集成”页面会显示适用于你系统的确切路径。 ### 远程 / 自托管 对于远程服务器或 Web 应用,通过位于 `/mcp` 的 HTTP 端点并附带 Bearer token 进行连接: ``` { "mcpServers": { "atomic": { "type": "url", "url": "https://your-server.com/mcp", "headers": { "Authorization": "Bearer YOUR_TOKEN" } } } } ``` 从“设置 > 连接 > API Tokens”创建 token,或通过 CLI 创建: ``` atomic-server token create --name "claude" ``` **可用工具:** `semantic_search`、`read_atom`、`create_atom`、`update_atom` ## 系统架构 所有业务逻辑都位于 `atomic-core` 中,这是一个没有框架依赖的独立 Rust crate。`atomic-server` 用 REST API、WebSocket 事件和嵌入式 MCP 端点对其进行封装。每个客户端都通过 HTTP 连接到 `atomic-server`: ``` +------------------+ | atomic-core | | (all logic) | +--------+---------+ | +--------v---------+ | atomic-server | | (REST + WS + MCP)| +--------+---------+ +---------+----+----+---------+ v v v v +-----------+ +----------+ +------+ +----------+ | src-tauri | | React UI | | iOS | |mcp-bridge| | (sidecar) | | (browser)| | app | | (stdio) | +-----+-----+ +----------+ +------+ +-----+----+ | | +-----v-----+ +-----v-----+ | React UI | | MCP clients| | (desktop) | |(Claude,etc)| +------------+ +------------+ ``` ## 项目结构 ``` Cargo.toml # Workspace root crates/atomic-core/ # All business logic crates/atomic-server/ # REST + WebSocket + MCP server crates/mcp-bridge/ # HTTP-to-stdio MCP bridge src-tauri/ # Tauri desktop app (launches server as sidecar) src/ # React frontend (TypeScript) ios/ # Native iOS app (SwiftUI) extension/ # Chromium browser extension scripts/ # Import and utility scripts ``` ## 开发 ### 前置条件 - Node.js 22+ - Rust 工具链([rustup](https://rustup.rs)) - 对于桌面应用:特定平台的 [Tauri v2 依赖](https://v2.tauri.app/start/prerequisites/) ### 命令 ``` npm install # Install frontend dependencies # 桌面端应用 npm run tauri dev # Dev with hot reload npm run tauri build # Production build # 仅 Server cargo run -p atomic-server -- serve --port 8080 # 仅 Frontend npm run dev # Vite dev server # Checks cargo check # All workspace crates cargo test # All tests npx tsc --noEmit # Frontend type check ``` ## 技术栈 | 层级 | 技术 | |-------|------------| | 核心 | Rust, SQLite + sqlite-vec, tokio | | 桌面端 | Tauri v2 | | 服务端 | actix-web | | 前端 | React 18, TypeScript, Vite 6, Tailwind CSS v4, Zustand 5 | | 编辑器 | CodeMirror 6 | | 画布 | Sigma.js, Graphology | | iOS | SwiftUI, XcodeGen | | AI | OpenRouter, Ollama, 或兼容 OpenAI 的提供商(可插拔) | ## 许可证 MIT
标签:Agent, AI增强, AI聊天, DLL 劫持, Docker, LLM, Markdown笔记, Unmanaged PE, 个人知识库, 交互式画布, 双向链接, 可视化界面, 块级嵌入, 大语言模型, 安全防御评估, 开源, 效率工具, 文本向量化, 智能标签, 桌面应用, 知识管理, 空间图, 笔记软件, 网络调试, 自动化, 自动摘要, 自托管, 语义分块, 语义搜索, 语义连接, 请求拦截, 通知系统