文档大纲

本地优先 + CRDT + AI Native:AFFiNE如何把 Notion、Miro、AI 助手装进一个 App

如果你是 Notion 的重度用户,又被 Miro 的白板吸引,还想把 AI 助手嵌进日常写作——通常你得开三个标签页、在三个 SaaS 之间来回切。但 AFFiNE 试图把这件事压成「一个 App」。更关键的是:它完全开源、本地优先、CRDT 协同,而且真的把 AI 嵌进了 Block 层面,而不是简单的 API 包装。

这篇文章会围绕三个问题展开:

  1. AFFiNE 解决了什么?
  2. 它的技术架构为什么值得关注?Blocksuite CRDT 库有什么用?
  3. 作为开发者/团队负责人,你怎么用它,又能从它身上借鉴什么?

我们会顺便聊一下:如果把它接到 OpenClaw 这类多 Agent 工作台,会发生什么。

一、为什么是 AFFiNE:知识管理的「All-in-One」叙事

先看一张数据对比表,把「我们今天到底被哪些工具组合困扰」摆出来:

你想做的事通常的方案痛点
写文档/做笔记Notion / 飞书文档 / Obsidian缺乏白板扩展
画流程图 / 头脑风暴Miro / FigJam / Whimsical文档里嵌不进白板
让 AI 帮我写、改、扩ChatGPT + 复制粘贴AI 与文档割裂
多端实时协作SaaS + 云同步数据上云,权限不可控
自托管 / 数据自主AppFlowy / Outline多数不支持白板,或没有 AI

AFFiNE 一次把这五件事合并了。它的官方定位不是「又一个笔记工具」,而是 「operating system for knowledge building blocks」——把知识管理的所有原子单元(文档、白板、数据库、演示文稿)融合为一个超融合平台。

更值得注意的是它的产品哲学。打开它的 README,第一句话是:

We shape our tools and thereafter our tools shape us.

这是麦克卢汉。它想表达的是:工具的形态决定了我们的工作方式,而不是反过来。换句话说,AFFiNE 想把「写作—思考—协作—AI」四件事重新焊在一起,而不是让你在不同工具间来回切换。

这就是 7 万颗星的真实驱动力——不是某个独立功能多强,而是「用一个 App 替代你日常 4-5 个 SaaS」这件事本身。

二、三层能力拆解:AFFiNE 究竟"装了什么"

AFFiNE 的能力结构可以拆成三个相互嵌套的层:

2.1 文档层(Docs):Block-based,但不是 Markdown-only

AFFiNE 的文档底层是 Block(块),但和 Notion 早期「Everything is a block」类似又略有不同:

  • Markdown-friendly:支持原生 Markdown 语法,也可以用 / 命令插入块;
  • 多视图数据库:表格、看板、列表三种视图切换(虽然还没有 Notion 那么复杂);
  • 可嵌入网页:直接 https://... 粘贴进文档,会渲染成预览卡片;
  • 导出友好:支持 Markdown、HTML、PDF 三种导出格式。

但更重要的是——文档里的 Block 可以在 Canvas(白板) 上自由拖拽和组合,这是它和 Notion 最大区别。

2.2 白板层(Canvas):无边界 + 多 Block 混排

打开一个 AFFiNE 白板,你会看到一个无边界的画布:

  • 文档 Block 可以作为「卡片」拖到白板上
  • 可以画连接线、流程图、思维导图
  • 支持多人光标实时协作(基于 CRDT)
  • 白板里的内容直接双向同步回文档

对比下 Miro:AFFiNE 的白板不是独立的 App,它就是你文档的一部分。你可以在白板边缘拖一个文档 Block,左边是思维导图、右边是 Notion-like 的长文档。它们共享同一份数据、同一个 AI、同一个权限模型。

2.3 AI 层:嵌入 Block 的"AI 伙伴"

这是 AFFiNE 最激进的地方。它的 AI 助手不是一个浮窗,而是一个直接编辑 Block 内容的对象:

  • 在文档里输入 /AI,可以让 AI 继续写、总结、扩写、改语气;
  • 在白板上选中一组 Block,可以让 AI 重新组织、做规划、生成图示;
  • 支持自托管时接入本地大模型(Ollama、LM Studio 等);
  • Slogan 是 "Write / Draw / Plan All at Once"——AI 不是外挂,是工作流的内置节点。

这一层和 ChatGPT 的差距在于:AI 直接对你的 Block 数据有结构化感知,它知道"这一段是标题"、 "这一组是卡片",而不是把整篇文档当 token 灌给模型。

三、技术亮点:Blocksuite CRDT 到底是什么

如果说"三层融合"是产品故事,那 Blocksuite CRDT 才是 AFFiNE 真正的硬核资产。

3.1 CRDT 解决了什么问题

CRDT 全称是 Conflict-free Replicated Data Type,中文叫"冲突自由可复制数据类型"。它的核心价值是:

没有中心服务器,多端也能协作;冲突自动收敛,无需锁。

传统的协同文档(比如早期的 Google Docs)依赖一个中心协调服务器,每次操作要发到服务器排序。这种方式有两个问题:

  • 离线就瘫痪:断网后无法编辑;
  • 中心化依赖:服务器宕机全盘瘫痪。

CRDT 用数学保证了:每个客户端可以独立修改数据,再把操作发到其他端,最终所有人的数据会一致——不需要服务器仲裁、不需要冲突解决流程。

3.2 AFFiNE 自研 Blocksuite 的特殊之处

AFFiNE 没有用开源的 CRDT 库(如 Yjs、Automerge),而是自己写了一个叫 Blocksuite 的库。这有几个深意:

  1. Block-aware CRDT:传统 CRDT 是字符级别的(Yjs 处理 JSON 树),Blocksuite 把 CRDT 粒度直接做到 Block 级别。代价是实现复杂度高,收益是协作粒度更粗、性能更好——一个 100 个 Block 的文档,不是 1000 个字符的合并。
  2. 可视化编辑器架构:Blocksuite 不是单纯的 CRDT 库,它还包含了编辑器 UI 框架。这意味着任何产品可以基于 Blocksuite 直接做出一个 Notion-like 的协同编辑器,而不用从头实现。
  3. 多端架构统一:Web、Desktop(Electron)、Mobile 共用同一套 CRDT 代码。这对开源社区的意义是巨大的——以后想做一个"我的私有飞书文档",可以直接 fork Blocksuite。

3.3 这对开发者的实际价值

如果你是前端工程师,看 AFFiNE 的代码会学到三件事:

  • 怎么把 CRDT 嵌入富文本编辑器——这是 Notion、飞书文档多年积累的工程难点;
  • 怎么用 TypeScript 写一个可视化编辑框架——Blocksuite 的代码质量很高,可以作为大型 TS 项目的参考;
  • 怎么设计一个「数据—视图—协同」三层分离的架构——这是任何在线文档产品的通用模式。

如果你是产品经理/团队负责人,Blocksuite 的存在意味着:未来会有更多 Notion-like 产品基于它诞生——这是生态层面的布局,不是单纯的笔记工具。

四、竞品对比:和 Notion、Miro、AppFlowy 比起来如何

光说"融合"还不够,得看实际差距:

维度AFFiNENotionMiroAppFlowy
文档 + 白板融合✅❌❌❌
本地优先 / 自托管✅❌❌✅
内置 AI✅❌❌❌
开源✅❌❌✅
CRDT 协同✅❌✅✅
定价免费(自托管)付费 SaaS付费 SaaS免费(自托管)

几个观察点:

  1. AFFiNE 的真实对手不是 Notion,是 Notion + Miro + ChatGPT 这套组合拳。它的优势是"一个客户端、一次登录、一套权限",劣势是单一产品的深度还比不上这三位前辈。
  2. AppFlowy 是直接竞品,都是本地优先 + 自托管。但 AppFlowy 没有原生白板、AI 还在 Beta、CRDT 是基于 Yjs 而非自研。
  3. Notion AI 推出后,付费墙越来越高。AFFiNE 的"开源 + AI 内置"对中小团队有天然吸引力——你不用每个月付 $20/人,又能保留 AI 能力。
  4. 如果你已经在用 Notion,迁移成本是必须考虑的。AFFiNE 支持 Markdown 双向导入,但 Notion 里的数据库视图、复杂关联目前迁移不完整。这是一个务实的取舍。

五、实践指南:怎么用 AFFiNE 解决真实问题

光看产品不够,我们聊点落地。

5.1 三类典型场景

场景AFFiNE 怎么用替代的工具组合
创业团队内部 wiki文档 + 数据库视图Notion / 飞书
产品经理需求梳理文档 + 白板 + AI 扩写Notion + Miro + ChatGPT
研发团队技术方案文档 + Block 嵌入代码 + 多人协作Confluence + draw.io
自由职业者知识库自托管 + 本地大模型Obsidian + Ollama

5.2 自托管部署(5 分钟上手)

AFFiNE 提供官方 Docker 镜像,自托管是 5 分钟的事:

# 拉取镜像
docker pull ghcr.io/toeverything/affine-graphql:stable

# 启动(带持久化卷)
docker run -d \
  --name affine \
  -p 3000:3000 \
  -v affine_data:/data \
  ghcr.io/toeverything/affine-graphql:stable

启动后访问 http://localhost:3000,第一次会让你设置管理员账号。所有数据都保存在本地 affine_data 卷里,包括 AI 调用的上下文——这是 Notion 永远做不到的隐私级别。

5.3 接本地大模型

AFFiNE 的 AI 助手支持接入 OpenAI 兼容 API,包括 Ollama、LM Studio、vLLM 等本地推理服务。配置方法:

# 在自托管实例的 .env 里加:
OPENAI_API_KEY=sk-xxx           # Ollama 用任意值
OPENAI_BASE_URL=http://host.docker.internal:11434/v1
AFFINE_AI_ENABLED=true

接好之后,AI 推理完全跑在你自己的机器上,文档数据不会出本机网络——这是真正的"AI + 隐私"组合。

5.4 和 OpenClaw 的集成思路

这是我自己的扩展思考:

如果你的团队已经在用 OpenClaw 之类的多 Agent 工作台,AFFiNE 是一个极佳的"知识底座":

  1. Agent 的持久记忆:把 AFFiNE 作为 Agent 长期记忆的存储后端。Agent 在白板上规划任务、把决策写成文档 Block,下次会话可以直接读回来。
  2. 多 Agent 协作画布:让多个 Agent 在同一个白板上分工画图、写文档、做对比。
  3. CRDT 解决 Agent 冲突:多个 Agent 同时编辑一个文档时,CRDT 保证数据不冲突。这比给每个 Agent 单独分配文件的方案优雅得多。

具体实现路径有两种:

  • API 集成:AFFiNE 提供 GraphQL API,Agent 可以通过 API 读写 Block;
  • MCP 集成:把 AFFiNE 包装成 MCP Server,让任何支持 MCP 的 Agent(Claude Code、Codex 等)直接调用。

后者更优雅——你不需要写胶水代码,Agent 直接"看得见"AFFiNE 的工具集。

六、可以借鉴的地方:不只是工具,更是产品思路

不管你最后用不用 AFFiNE,它的产品思路都值得学:

6.1 产品层:All-in-One 而非点工具

国内 SaaS 市场经常陷入"垂直工具内卷"——做一个更好的笔记、一个更好的白板、一个更好的 AI 助手。但 AFFiNE 的思路是:用户的真实需求是「完成一件事」,而不是「用对工具」。

把"工具→任务"重新映射成"任务→工具集合",才是真正的用户体验升级。

6.2 技术层:CRDT 是协同工具的未来

任何想做协同产品(文档、白板、表格、设计工具)的团队,都应该认真评估 CRDT 架构。它在 2026 年已经成熟到可以工程化的程度,不是研究阶段的东西。

6.3 商业层:核心免费 + 自托管免费,SaaS 增值

AFFiNE 的商业模型值得学习:

  • 核心能力(文档、白板、AI、CRDT)全部开源;
  • 自托管完全免费,适合个人和小团队;
  • 云端托管(Cloud)收费,适合不想运维的企业;
  • 企业版支持 SSO、审计、私有部署。

这种「核心免费 + 增值服务」的模式,比硬卖 SaaS 订阅更容易获得早期用户和社区口碑。

6.4 AI 层:把 AI 嵌进数据层,而不是套 API

很多产品接 AI 是「加个 ChatGPT 按钮」,但用户用一两次就腻了。真正的 AI Native 是:AI 知道你正在编辑的 Block 结构、知道上下文、知道你的意图。

AFFiNE 的 /AI 命令、Block 级别的 AI 操作、多视图 AI 总结,都是这个思路的体现。

七、谁应该现在就用 AFFiNE?

7.1 强烈推荐

  • ✅ 如果你正在用 Notion + Miro + ChatGPT 的组合——每月 SaaS 账单超过 $30/人——强烈建议试一下 AFFiNE,自托管一周,体验完再决定
  • ✅ 如果你做产品/咨询/创意工作——文档和白板联动是刚需,AFFiNE 比单一工具效率高
  • ✅ 如果你关心数据隐私——AFFiNE 的本地优先 + 自托管是少数能做到的方案

7.2 谨慎评估

  • ⚠️ 如果你的团队已经在 Notion 里建了完整生态——迁移成本需要评估,建议先用「新建工作区」的方式试
  • ⚠️ 如果你需要 Notion 那种复杂数据库——AFFiNE 的数据库视图还不够成熟,建议再等半年
  • ⚠️ 如果你的团队分散在全球,需要稳定 SaaS SLA——AFFiNE 自托管需要你自己保证高可用

我自己的判断:

  • ✅ 如果你正在用 Notion + Miro + ChatGPT 的组合——每月 SaaS 账单超过 $30/人——强烈建议试一下 AFFiNE,自托管一周,体验完再决定;
  • ✅ 如果你做产品/咨询/创意工作——文档和白板联动是刚需,AFFiNE 比单一工具效率高;
  • ✅ 如果你关心数据隐私——AFFiNE 的本地优先 + 自托管是少数能做到的方案;
  • ⚠️ 如果你的团队已经在 Notion 里建了完整生态——迁移成本需要评估,建议先用「新建工作区」的方式试;
  • ❌ 如果你需要 Notion 那种复杂数据库——AFFiNE 的数据库视图还不够成熟,建议再等半年。

八、给团队负责人的落地清单

如果你打算在公司/团队内部推 AFFiNE,可以按以下顺序验证:

8.1 第一周:单兵试用

  • 选 1-2 个核心文档(产品需求、个人笔记)从 Notion 迁到 AFFiNE
  • 试一周,看是否真有"少切一个标签页"的体验提升
  • 记录迁移成本(最痛的是 Notion 数据库视图的兼容)

8.2 第二周:本地 AI 接入

  • 用 Docker Compose 部署本地 Ollama(qwen2.5:7b 起步)
  • 把 AFFiNE 的 AI 接进 Ollama,让所有 AI 调用本地完成
  • 测试 Block 级 AI(扩写、改写)效果是否符合预期

8.3 第三周:团队协作验证

  • 拉 2-3 个同事一起建一个共享白板
  • 测试 CRDT 协同(断网编辑、合并冲突)
  • 评估权限模型是否能替代你团队的现有方案

8.4 第四周:是否切换的决策

  • 综合成本(运维 + 培训)vs 收益(少订阅 + 数据自主)
  • 如果是 5 人以下小团队:直接切换
  • 如果是 50 人以上复杂组织:保留 Notion + 增量场景用 AFFiNE

九、写在最后:开源工具的"长期主义"

71,369 颗星不是终点。AFFiNE 还在快速迭代——它的 canary 版本几乎每周都在更新,AI 能力、编辑器稳定性、跨平台客户端都在持续打磨。

这种「持续迭代 + 社区驱动 + 开源透明」的节奏,正是我们这种开发者/团队负责人最希望看到的:不用担心某天 SaaS 厂商突然涨价格、改政策、关停服务。

如果你也对"工具即生活"这件事感兴趣,不妨去看看 AFFiNE 官网 和 GitHub 仓库。说不定,它会成为你下一个工作流的中心节点。

阅读量: 331