让 Tana 和 Heptabase 协同作战
作为 Heptabase 的忠实拥趸,我一直深信它是当下最好的笔记工具之一。今年三月,我还撰写了一篇题为《重新理解 Heptabase》的长文,详细阐述了为什么我会对它青睐有加,它如何让我能以中观视角(Mesoscopic Perspective)进行知识管理,巧妙架构笔记,有效掌控信息。
Heptabase 几乎成为了我所有笔记的归宿,从日常灵光乍现的想法,到阅读后的深度思考,再到关注的热点话题和兴趣领域的新洞见,无所不包。起初,一切都井然有序,运转顺畅。然而,当我的卡片数量突破 5000 大关时(算上 Journal 中的临时笔记、暂存笔记则更多),一个意料之外的「敌人」悄然而至——混乱。
这种混乱,恰如米缸中不慎掺入沙粒,想要筛出却无从下手。面对这一挑战,我开始了曲折、复杂的探索,希望能够找到一个相对合适的解决方案。这段探索的也意外的让我重新审视了自己的笔记习惯和流程,促使我思考如何更好地利用现有工具来提升知识管理的效率和质量。
「敌人」来了
随着笔记数量的增长,Heptabase 的一些局限性逐渐显现,犹如蛰伏已久的司马懿终于发动了高平陵之变。这些问题源于我的使用习惯,归于 Heptabase 目前功能上的不足。两者互相纠缠,最终让「混乱」兵临城下。
1. 功能缺失导致的效率瓶颈
比起直接使用白板,我更喜欢在 Journal 中做笔记(原因见《我如何使用 Heptabase 做笔记》)。但是,Heptabase 现在依然不支持 inline tag,这是一个从 2022 年就开始被用户反复请求的功能。作为一种变通,我不得不创建「#+标题」的卡片作为替代。这种权宜之计虽然可行,但与 Tana 的 SuperTag 或 Roam Research 的 inline tag 相比,仍有不小差距,效率和灵活性都大打折扣。Tana 的 SuperTag 以数据库形式呈现,与 Heptabase 的 Tag 系统颇为相似;而 Roam Research 的 inline tag 虽然外观上与 Heptabase 的「#+标题」卡片相仿,却额外提供了筛选功能。
2. 搜索功能的局限性
Heptabase 的搜索功能只能说是聊胜于无,也是让我感觉到混乱的关键因素。无论是我在 Journal 中进行表层思考还是需要在白板中进行深入思考,都不可避免的需要查找、复用、修改相关的既有笔记。可是在 Journal 和卡片页面,Right Sidebar 的检索功能十分简陋;白板页面的 Right Sidebar 功能稍齐,却依然无法通过 tag property 等方式进行高级检索;未添加标签的卡片更是难觅踪影。甚至,笔记工具最关键的功能 —— 全局搜索 —— 也同样不好用。这种局限性严重影响了笔记的检索效率和知识的关联。
3. 系统设计的割裂感
Heptabase 的 Map 和 Tag 两大系统在设计理念上存在割裂。例如,从 Right Sidebar 的卡片库选项中向白板添加卡片时,无法通过 tag property 进行筛选。同样,在 Tag 页面的 table view 中,我无法直观地看出哪些卡片已被归入特定白板,也无法通过 property 筛选白板。白板的 info 中也缺乏该白板包含标签数量的信息。
我理解 Heptabase 在设计这两个系统时考虑了不同的笔记匹配不同的管理方式,正如我在《重新理解 Heptabase》中所写的,「相得益彰的 Map 和 Tag 给了数据组织的多种可能」。但在使用中不可避免的需要同时让白板和标签之间产生紧密联系和相互支持的特性。
4. 操作流程的顿挫感
某些看似简单的操作,如 block reference,block embed 或查看 backlinks,在 Heptabase 中却显得繁琐。因为不能直接在编辑器中引用 block,所以需要先进行全局搜索,定位到想要引用的 block,然后复制该 block 的 link 到需要的地方进行粘贴。由于不能 embed,所以直接粘贴过来 block link 就只会显示成一条 URL。被引用过的 block 也不会有任何标记。
Heptabase 不支持 alias,例如我在研究佛经时,佛陀、世尊往往代指释迦牟尼,在笔记中如果要让「佛陀」这个词可以直接跳转到「释迦牟尼」这张卡片,就需要先选中「佛陀」,再选择 add link,搜索「释迦牟尼」,完成关联。还有一种方式是将「释迦牟尼」这张卡牌的标题写成「释迦牟尼 | 佛陀 | 世尊」,mention 后再删除掉,但实际操作时要删除其中不需要的,只能从后往前删,无法直接将光标定位到准确的位置。
这种操作上的顿挫感常常打断思考的连贯性,就像正在游戏中全神贯注、一顿操作猛如虎地冲击水晶塔,却突然被一通电话打断,瞬间失去了所有的节奏和激情。
5. 笔记关联的困难
在 Heptabase 中,未添加标签或未纳入白板的笔记很容易被忽视,Journal 中记录的笔记更是难以被利用。例如,某次阅读启发我思考「对传统的态度」,我在白板中写下了一张探讨「为什么中国人常说人心不古」的卡片,其中提到了这是一种认知偏差。事实上,我曾在 Journal 中记录了一条关于「衰落主义」的笔记可以与之呼应,但当时并未建立联系,因为这条笔记不是卡片,更遑论标签和白板了。笔记增多后,信息熵也指数级增长,由于缺乏有效的关联机制,许多本应可以在表层思考时就相互关联的笔记都未能及时建立联系。只能在进行深度思考时通过一系列手段将它们关联起来,这无疑增加了深度思考时操作的复杂性。
这一系列问题累积起来,造成了巨大的混乱。让我在使用 Heptabase 进行日常记录和表层思考时越发感到力不从心,也影响了我在白板中进行深度思考。做笔记时,我开始过度关注如何组织和标记,而非专注于思考本身。也渐渐混淆了表层思考和深度思考之间的界限。这种感觉让我回想起早年使用 Evernote 的经历 —— 表面上井井有条,实则一团乱麻。也越来越理解为什么笔记是一场无限游戏。
作为一款以可视化见长的笔记工具,Heptabase 理应成为深度思考的利器,构建视觉化网状知识体系的绝佳平台。然而,目前的 Heptabase 在减少使用时的顿挫感、消除设计上的割裂方面还有很长的路要走。它尚未实现所有系统和功能的无缝协作,未能产生预期的 1+1>2 的协同效应。
因此,我意识到需要一个新的方案来突破这些限制。
寻找解决方案
面对混乱 —— 这个棘手的「敌人」—— 我开始寻求应对之策。
优化使用习惯
首先,我尝试优化在 Heptabase 中的使用习惯。一方面,我将所有适合的卡片纳入白板系统,为每个白板添加索引卡,也为未归入白板的卡片创建索引。这些索引卡被汇总到一个名为 MOC(Map of Content)的白板中,并固定在 Left Sidebar 以便快速访问。另一方面,我并没有依据卡片盒笔记法专门设计临时笔记的白板或标签,而是将临时笔记写在 Journal 中,然后 mention 标题为「#fleeting」的卡片,或者标记「$$ 可产生关联的卡片标题」。这些临时笔记和在 Journal 中暂存的笔记也加入到索引卡中。
然而,这种方法很快显露出其局限性。随着每天新增的笔记和卡片,我需要频繁更新索引卡,这个过程既耗时又繁琐。更重要的是,笔记的生命周期并不止于创建。它们需要持续的维护和更新:有些笔记可以合并以减少冗余,有些需要更新内容以保持相关性,还有一些可能已经过时,可以直接删除。于是我将使用频率较低的卡片导出到 DEVONthink 进行存档;合并相似主题的笔记,删除过时或冗余的内容。通过这些措施,我成功将卡片总数控制在了约 3000 张左右,Journal 中的临时笔记和暂存笔记也都建立了索引。
接下来,我开始着手合并索引卡,以进一步简化结构。然而,这个过程中又浮现出新的问题:随着索引卡内容的不断丰富,即便通过小标题进行了初步分类,其长度和复杂性也不可避免的增加,这无疑会加大快速查找和阅读的难度。
我也尝试了通过 Tag 系统来优化,为所有卡片添加至少一个标签,并通过 relation property 建立关联。然而,就在我沾沾自喜地以为找到了方法时,Alex 很快就给我泼了一盆冷水:
新增笔记是 O(1)。「更改元数据的定义」或者「添加新的元数据」都是 O(N) 啊。
更改元数据的定义:如果不修改之前的条目,那这列数据会逐渐熵增到不可用。
添加新的元数据:如果不修改之前条目,那么你的元数据就是稀疏信息了。
(推论:所以只要是 O(N) 对人类来说就是不能接受的。)
为之奈何?
寻找新工具
既然优化 Heptabase 的使用习惯这条路走起来磕磕绊绊,那么秉承着「世上无难事,只要肯放弃」和「只要思想不滑坡,办法总比困难多」的精神,我开始寻找其他的笔记工具,试图替代 Heptabase。
第一个被我想到的当然是 Obsidian。自从有了 Canvas 功能后,再加上琳琅满目的插件,它几乎可以完全替代 Heptabase。但当我将笔记导入后就发现了问题 —— Obsidian 是基于文件夹系统的。虽然在 Heptabase 中白板也相当于文件夹,但与真正的文件夹系统相比还是有不少区别。这让我盯着 Obsidian 半天不知如何下手,最终果断放弃了这个选择。
我的目光随后转向了六月份刚升级了 diagram 功能的 Roam Research。经过大约两三周的使用,我感觉它确实有潜力替代 Heptabase。其优势主要体现在七个方面:
搜索功能完全碾压 Heptabase。目前 Heptabase 的搜索功能只能说是聊胜于无。而在 Roam Research 上,搜索可以设置各种 field,还可以使用 query。
更优秀的 block reference 功能,以及 Heptabase 所没有的 block embed 功能。在 Heptabase 上,block reference 只能通过手动找到后使用 copy link to block 来引用,而且在被引用的 block 旁边也没有提示。对于我这种把 Journal 当作草稿纸的用户来说就很苦恼。
inline tag 功能,尽管在 Heptabase 中可以通过创建以 # 开头的卡片来变通解决。
在 Roam Research 中,每一个 block 都是一个卡片(或页面),这在输入长笔记时更容易保持聚焦。修改时,可以只选中特定 block 打开,大大提高了便利性。我在 Heptabase 中写 blog 和 newsletter 时深有体会,如果不用小标题去分隔,修改起来会非常痛苦。
在 Heptabase 中,将 Journal 中的笔记转化为卡片需要慎重考虑。而在 Roam Research 中则无需有这种顾虑。
支持笔记库的加密,而 Heptabase 目前还没有这个功能。
提供 API,可以直接在 Raycast 上进行输入,也可以利用 API 进行其他操作(例如引入 AI 检索笔记库)。
突破
尽管 Roam Research 有这么多优势,我最终还是没有选择用它来替代 Heptabase。原因是在使用过程中我意识到:我并不需要一个完美的笔记工具,更不需要一个 all in one 的笔记工具,混乱的源头在于混淆了日常记录与知识管理的关系,以及表层思考和深度思考的关系。那么,我完全可以同时使用两个笔记工具,让它们协同作战。因此,集合 Roam Research 和 Notion 的优点于一身的 Tana 反而成为了最佳选择。
协同作战
确立了两个笔记工具协同应对「敌人」的思路后,我着手更新我的笔记工作流。关键在于明确 Tana 和 Heptabase 各自的职责分工。
回顾今年第二十一期电子报中分享的笔记工具选择思路,当时我还将 Tana 视为 Heptabase 的完全替代品。然而,如果我转变思路,将 Tana 用于日常记录,而保留 Heptabase 作为深度思考和知识管理的平台,这就开辟了一条全新的协作路径。
在《LifeOS 2.0》一文中,我介绍了「CETDE 框架」,这个框架描述了从信息接收到知识输出的完整过程:
Capture(收集):这个阶段的目标是从我们的感知系统(视觉、听觉、味觉、嗅觉、触觉、意识等)中捕获数据。这些数据可以来自任何地方,可能来自网络,也可能来自我们周围的世界。
Encode(编码):编码阶段是我们对信息和知识的感知阶段。在这个阶段,我们依赖自己的知识储备和经验,将捕获的数据转换为有用的信息。
Transfer(转换):转换是一个从感知到认知的过程。在这个阶段,我们通过整合、分布和排列多条信息,形成认知和记忆。
Distill(提炼):在提炼阶段,我们对信息进行深入的分析和理解,使其成为我们的知识。这是一个深度思考的过程,它使我们能够建立自己的理解和见解。
Express(输出):最后,我们需要将这些知识转化为有价值的产出。这可能是一篇文章、一个产品设计、一个决策,或者任何形式的创新。
基于这个框架,Tana 和 Heptabase 的分工变得清晰:
Tana 的角色:
主要负责 Capture 和 Encode 阶段
部分参与 Transfer 阶段的初步工作
适合进行表层思考和快速记录
Heptabase 的角色:
重点负责 Transfer 的深入部分、Distill 和 Express 阶段
专注于深度思考和系统化的知识管理
这种分工充分利用了两个工具的优势:Tana 的 SuperTag 具有足够的灵活性,移动端的 app 能够收集包括声音、文字、图像等多种类型的内容,非常适合日常记录和初步整理,而 Heptabase 的 Whiteboard 系统则更适合深度分析和知识体系构建。通过这种协同作战的方式,可以最大限度减少摩擦,实现从信息收集到知识创造的无缝过渡。
新的工作流程如图所示:
当我在 Tana 中记录的笔记需要转入 Heptabase 进行深度思考时,就进行以下步骤:
标记任务:在 Tana 中为目标笔记添加 "T&H" 标签,明确标识需要进行深度思考的内容。
生成 Tana 笔记链接:复制该笔记在 Tana 中的 node link,为后续跨平台引用做准备。
准备深度思考的环境:在 Heptabase 中创建新白板或打开相关的既有白板,为深度思考搭建基础。
记录转移过程:
在 Heptabase 的 Right Sidebar 中打开当天的 Journal。
粘贴之前复制的 Tana node link。
使用 mention 功能关联当前工作的白板,建立上下文联系。
生成 Heptabase 记录链接:复制刚才在 Heptabase Journal 中创建的 block link。
完成双向关联:将 Heptabase 的 block link 粘贴回 Tana 中的原始笔记,实现双向引用。
这种方法的优势在于充分利用了 Tana 和 Heptabase 都能在 Web 端完整运行的特性。通过建立这种双向链接,我可以在两个平台之间自如跳转,无缝衔接表层思考和深度分析过程,确保了思考的连贯性和知识的整合性。
更重要的是,这个工作流还实现了一个「简 → 繁 → 简」的循环过程:
由简入繁:在 Tana 中进行初步记录,然后转移到 Heptabase 进行深入探讨。
深度思考:在 Heptabase 的白板中展开全面、系统的分析。
由繁返简:在 Heptabase 完成深度思考后,回到 Tana 进行简要总结。
这个循环不仅完成了知识处理的完整过程,还践行了费曼技巧的核心理念,帮助我更好地理解、简化复杂概念,并识别知识盲点。
理解:通过在 Heptabase 中的深度思考,全面理解复杂概念。
简化:将复杂的想法转化为简单的语言,在 Tana 中进行概括。
识别差距:在简化过程中发现理解的不足之处。
复习与完善:根据发现的差距,返回 Heptabase 进行进一步探索和完善。
通过这种协同作战的方式,我不仅克服了单一工具的局限性,还创造了一个更加灵活、高效的知识管理生态系统。这个新的工作流程为我应对「混乱」这个敌人提供了强有力的武器,让我能够在保持思考深度的同时,不被繁琐的组织工作所困扰。
至于工作流中所涉及到的其他软件,如 Readwise,DEVONthink 等,它们并不具备全局性意义,只是负责其所在流程的职责而已。例如,Readwise 仅承担信息收集和阅读的功能,DEVONthink 只承担备份的功能。
克敌制胜
Tana 与 Heptabase 协同作战工作流是否能让我彻底摆脱「混乱」这个顽固、狡猾的敌人?坦诚地说,我无法给出百分百的肯定答复。毕竟,知识管理和思维组织是一个持续演进的过程,不存在一劳永逸的解决方案。
然而,这个创新的工作流无疑为我开启了一扇新的大门,展现了一条充满希望的道路。虽然我不能断言这个工作流会彻底消除所有的混乱,但它确实提供了一个强大的框架,使我能更有效地管理和利用笔记。
这个工作流的真正价值并不在于能否立即消除所有混乱,而在于它针对性地规避了使用 Heptabase 时遇到的诸多挑战:
功能互补:Tana 的 SuperTag 功能有效弥补了 Heptabase 缺乏 inline tag 的不足,提高了标记效率,增强了笔记间的关联性。这让我无须改变习惯,就能顺利过渡到全新的工作流。
搜索与检索优化:利用 Tana 强大的 NodeSearch 功能,解决了 Heptabase 在全局搜索和未标记笔记检索方面的局限。这大大提高了信息检索的效率和准确性。
流畅的思考体验:在 Tana 中进行快速记录和初步关联,避免了 Heptabase 中因功能缺失导致的思路中断,保持了思考的连贯性。这种流畅的体验让我能够更专注于思考本身,而非工具的使用。
系统割裂的桥接:新工作流巧妙地利用两个工具的优势,在一定程度上弥合了 Heptabase 的 Map 和 Tag 系统之间的割裂,使得信息组织更加灵活和全面。
增强笔记关联:Tana 的 NodeSearch 和 AI 功能帮助发现潜在的笔记连接,弥补了 Heptabase 在建立笔记间联系方面的不足。使得我在 Heptabase 进行深入思考时可以有更丰富的「抓手」,提升了中观视角的独特优势。
简化操作流程:通过在 Tana 中进行初步整理和关联,减少了 Heptabase 中繁琐的操作步骤,如复杂的 block reference 过程。这种简化让我能够更多地将精力投入到内容创作和思考中。
通过这种创新的协同方法,我不仅跳脱出单一笔记工具的局限性,还创造了一个更加灵活、高效的知识管理生态。新的流程为我应对「混乱」提供了一个明确可行的解决方案,让我能够在保持思考深度的同时,不被繁琐的组织工作所困扰。
总结
这一次曲折、复杂的探索过程,不仅让我对工作流进行了优化,也对知识管理的本质有了更深的思考。通过一系列的尝试、失败和突破,我得到了这些启示:
知识管理是一个动态过程:没有完美的解决方案,只有不断演进的策略。正如我在围绕 Heptabase 优化使用习惯时发现的,每一步改进都可能引发新的问题和挑战。如果不具备灵活的思维方式,随时准备调整策略的觉悟,一味地保残守缺,别扭的只能是自己。
工具协同的力量:双笔记工具的协同使用,让不同工具的优势可以形成互补,创造出超越单一工具的效果,或许这就是「重器轻用」的道理和意义所在。
平衡是关键:无论工作流如何变动,我依然选择在效率、广度和深度之间寻找平衡点。正是这份固执让我能够快速捕捉想法,同时不牺牲深度思考的可能性。
区分表层思考与深度思考:新工作流帮助我清晰地划分快速记录的表层思考和需要深入探索的复杂概念。这种分层、区分工具的方式使得每种思考模式都能在最适合的环境中进行,提高了整体的思考效率和质量。
元认知能力的培养:通过「简 → 繁 → 简」的循环,我可以有意识的训练自己简化复杂概念和识别知识盲点的能力。
不要让工具成为束缚:正如在《笔记工具:洞察力增长的助推器还是束缚?》中探讨的,当笔记工具可以被巧妙运用时,确实有潜力成为洞察力增长的助推器。重点在于如何使用,而非工具本身。这也是我在《折腾笔记软件是把双刃剑:不要忽视写笔记和思考》和《为什么要写笔记》就已经明确的观念。
最后,我想强调的是,对 Heptabase 的吐槽,并非有多少不满,反而是「爱之深,责之切」。如果它不好,我何必要用它,又何必要继续在工作流中保留它呢?实际上,这一轮的优化和调整中,我又尝试了一些笔记工具,有从来没有用过的,也有之前用过但放弃了的。可以毫不讳言,在进行深度理解方面,Heptabase 依然是最佳选择。只不过,好钢还需用在刀刃上。