我第一次使用 Roam 是六年前,2020 年底。差不多就在那时——GPT-3 刚发布不久——我写了一篇文章,未来的社交信息平台,谈 GPT-n 模型将如何改变世界。出乎意料的是,我大体上说对了——也在一些有意思的地方说错了。
而世界也确实变了。Roam 是一个很棒的思考环境,我曾想象,它甚至可能发展成整个网络的底层载体,就像 Xanadu 那样。现实远没有达到这个程度。但我对它依然像当初一样兴奋——而这很大程度上也是因为那些 GPT-n 模型——我认为,Roam 有潜力成为智能体与人类共享的最佳思考载体。
写这份路线图是一次有趣的尝试,尤其是如今我已经是个局外人了(我曾在 Roam 工作过大半年),再加上 Roam 对路线图的态度 :) 我希望,要么自己为其中一些想法开发插件,要么把团队引诱过来,让他们自己动手实现……
改进已有的东西
- 让更高层的可视化组件提供更好的操作支持
- Roam 有
table和kanban这样的可视化组件,它们由块这一基本单元构建而成。最近的表格更新之后,你不再需要手动编写它们了;你可以对列排序,等等。- 看板也值得得到同样的关照:
- 空表格目前是这样的:
- 而空看板是这样的:
- 一些问题:
- 看板中的条目只包含卡片,不包含嵌套块(例如,嵌套在卡片内的块是看不见的)。
- 看板这种抽象还不能铺满整个宽度。
- 键盘导航尚未完整实现——没法轻松跳到下一列,也没法通过 Esc 选中卡片,或选中整列。
- 对于表格、看板等大多数组件,智能体也缺少高层操作接口,只能在块的层面上操作。
- 看板缺少很多操作功能:排序、移动列、在看板上筛选或搜索(这是一个更通用、理应存在的功能的具体形式:块级的持久化筛选器)。
- 查询也一样 :(
- 看板也值得得到同样的关照:
- Roam 有
- 更好地分享 Roam 内容,具体来说,就是能够生成静态网站,以及改善 Roam 图谱分享的 SEO。
- 我敢打赌,Roam 团队现在只要把这项任务扔给一个 GPT-5.5 / Fable 这类的智能体,让它不断迭代,直到行为基本复现网页应用,就能以很低的成本实现静态网站生成和 SEO 改进。我在 quartz 上发布内容(以及使用 Obsidian),九成的原因都在这里。过去社区里有人尝试过,但据我所知,还没人做出一个使用顺畅、能跟上最新变化的版本。
- 改进图谱视图
- 这里有太多唾手可得的改进机会了——全部写出来得花上一整天——但图谱视图确实可以变得有用得多得多。
- 按语义布局,而不只是依据显式链接。
- 既然现在有了向量嵌入,就可以在一定程度上按相似度布局,再把链接叠加上去。接着还可以按主题或类似的依据给聚类着色……
- 这里有一个我为 Twitter 导出数据做的图谱视图示例,可以让你感受一下:
- 把时间作为图谱的一个轴。
- 在图谱视图中提供完整的搜索、筛选和查询功能。
- 细节层次 / 多尺度 / 缩放。
- 按语义布局,而不只是依据显式链接。
- 作为参考,这是它现在的样子:
- 这里有太多唾手可得的改进机会了——全部写出来得花上一整天——但图谱视图确实可以变得有用得多得多。
- 让高层功能能够组合使用
- 能不能让分形看板得到原生支持?
- 看板、表格和查询能不能作为其他组件的输入?
- 能不能让分形看板得到原生支持?
- 更好的导出
- Roam 用户经常会在所写内容对应的页面之外写下这些内容。比如,我可能在一个叫
[[Evolution]]的页面上写关于[[People/Charles Darwin]]的内容。但当你把图谱导出成 markdown 时,打开Charles Darwin.md,里面却什么也没有。- 这里一个显而易见的解决方案,是在每个导出的页面末尾附加一个名为“引用”的部分,至少可以提供被提及的次数、提及它的页面和块文本,等等。
- 还可以有导出预览;导出为 pdf、原生的打印按钮,等等……
- Roam 用户经常会在所写内容对应的页面之外写下这些内容。比如,我可能在一个叫
- 统一查询、筛选和搜索
- 整体的筛选体验还有相当大的改进空间。
- 仔细想想,这些体验非常相似,而且经常需要在相似的界面中配合使用。
- 它们有什么区别?
-
查询就是一个实例化的搜索,可以在整个图谱中复用,也允许你使用逻辑搜索运算符,但它不支持全文搜索:
[[Important]] AND [[Project: Work]] -
搜索主要依据文本或语义搜索,生成一个候选块的视图——目前你不能使用 or/and 这样的查询操作。
-
筛选嘛,就是对各种范围内(所有地方、仅页面、链接引用等)的任意块列表进行筛选。但它会预先列出可供筛选的页面(而不是让你自己想要查询什么),而且有时你还可以把这个观察视角保留下来。
-
- 可这些就应该是同一回事!我应该能在搜索中使用逻辑运算符!我应该能临时筛选搜索结果!在确定要查找哪些页面或块之后,我应该能进行子字符串搜索!
- 它们有什么区别?
- 把那个该死的网站更新一下
- 它需要改版,把事情讲得更清楚。Roam 不是一个笔记工具,尽管它最初是以这种方式起步的。而且,如果我们有了静态网站生成,帮助图谱和开发者图谱就真的能被轻松找到了,等等。
- 更好的 TODO
- 加一个 TODONT 状态(我经常有一些 TODO,最后其实没有去做)?记录标记为完成的时间?实现更好的延期处理?支持重复发生的 TODO,比如
{{[[TODO]]: recurs: [[weekly]]}}或类似的形式?
- 加一个 TODONT 状态(我经常有一些 TODO,最后其实没有去做)?记录标记为完成的时间?实现更好的延期处理?支持重复发生的 TODO,比如
- 实现
Move block to...——基本上不言自明。 - 输入
1.时,应该自动切换到编号列表块视图。- 我不在乎从技术上说,“编号列表”其实是我输入
1.所在块的父块——它就应该触发!加一个幽灵父块也好,怎样都行,我不在乎。
- 我不在乎从技术上说,“编号列表”其实是我输入
全新的基本单元
将智能体和 AI 聊天作为一等公民
- 不妨探索一下,让 Roam 成为通过 LLM 聊天来遍历知识的原生载体。
- 所有 LLM 聊天应用都有同一个问题:信息会淹没在聊天记录里。Roam 特别适合承载这些聊天,同时也能从中提炼知识,用于构建知识图谱。
- 换句话说,输入(聊天)和输出(产物)都可以存在于同一种媒介中。
- 朝这个方向迈出的第一步,大概是更好的聊天基本单元,正如我们需要更好的聊天与多人协作基本单元中所勾勒的那样。
- 然后,我们就可以在 Roam 内部拥有类似 Notion 的 AI 聊天。已经有社区插件在做这件事,但说实话,我认为它值得得到原生支持。
- 所有 LLM 聊天应用都有同一个问题:信息会淹没在聊天记录里。Roam 特别适合承载这些聊天,同时也能从中提炼知识,用于构建知识图谱。
- 为智能体提供完整的 MCP/CLI 支持。
- 这其实现在已经基本实现了,但我仍然觉得有必要提一下。智能体并不会天然理解 Roam,也不了解它的工作方式或组件。
- 为智能体提供更好的、类似 IDE 的操作支持。 Roam 有 roam/js 组件,让你可以在图谱内部运行代码——但也许还能做些事情,让智能体更好地使用它们。例如,提供一份技能文档,为 MCP 工具添加更好的注释,给智能体提供语义搜索工具,等等……
我们需要更好的聊天与多人协作基本单元
- a) 我们需要一种聊天块视图 / 组件。
- 目前我们有 Roam 评论——但它基本上只是一个快捷操作(按住 Cmd 点击评论按钮),通过侧边栏为评论创建一个块结构。
- 不过,哪怕只是在视觉上,也可以做得更好。
- 在块上显示作者姓名,提供叶节点视图和讨论串视图,等等。这里有一个非常粗略的实验,是把 Max Krieger 的 用 Glue 聊天输入进去做出来的。
- 还可以定义一个具有块级权限的聊天——这样就只有某些人或智能体能看到那棵树,或在其中发言?等等。
- b) 我们需要在 Roam 中为 PR 提供一套用户体验——提出待采纳的块,而不是立刻提交它们。
- 我认为,有了多人协作和智能体,就需要一种查看、批准或拒绝块及其差异的方式,而不是立即提交它们。
- c) 更好的块版本管理。
- AI 聊天网站实现了我见过的第一套达到生产可用水平的块版本管理。Roam 更早就有了块版本,但它几乎没法用。它需要更多关照。
我们需要更好的时间建模
- a) 我们需要一种时间线 / Google Calendar 块视图。
- Roam 团队和用户群体中有很大一部分人会在任务间隙写日志,但它竟然没有在这个层面上为时间提供原生支持!如果能在每日笔记中复现 Google Calendar 的体验,会非常有用:
- Roam 团队和用户群体中有很大一部分人会在任务间隙写日志,但它竟然没有在这个层面上为时间提供原生支持!如果能在每日笔记中复现 Google Calendar 的体验,会非常有用:
- b) 可组合的时间抽象(小时 > 日 > 周 > 月 > 年 > 十年 / 世纪)。
- Roam 的一个大问题是,东西很容易被淹没,你无法看到随时间展开的全貌。
- 目前有每日笔记,但你无法从整体上查看或引用某一“周”、某个月或某一年。
- 在视觉上,哪怕只是按周呈现的简单瀑布流布局,或者月历视图,都会很棒。
- 在搜索、筛选、查询等功能中全面支持时间——不言自明——我没法说,给我看看这个查询在上周的所有结果,等等……
- 问题的一部分在于,这里的时间既连续又离散——所以我怀疑这里得做一些相当严肃的数学工作……
将 Roam 作为一种可嵌入的媒介
- 我想这不是什么新点子,但我经常想在网络的其他地方,把 Roam 这种媒介同时用作输入和输出。例如:
- 想象一下,一个基于 Roam 构建、可以嵌入网站的表单?
- 嵌入一张“Roam 页面”,这样你就能在视频旁边记笔记。
- 把随手记的笔记分享给朋友。
- 在博客文章中嵌入 Roam 内容。
- 现在他们的好几个 API 都已就绪,这些想法也更有可能实现了……
真正的图遍历与超图功能
- 边可以强大得多。目前你无法在 Roam 中直接操作它们。我觉得属性大致是在朝这个方向发展,但也可能是我想错了……
- 也没有办法操作“聚类”,或从更高的层次查看图谱……
附言:这篇文章与 Notion 毫无关系。我很喜欢用他们的产品,他们那里也有很多才华横溢的人,包括出色的 Geoffrey Litt。我只是觉得这个标题很好笑。