我第一次使用 Roam 是六年前,2020 年底。差不多就在那时——GPT-3 刚发布不久——我写了一篇文章,未来的社交信息平台,谈 GPT-n 模型将如何改变世界。出乎意料的是,我大体上说对了——也在一些有意思的地方说错了。

而世界也确实变了。Roam 是一个很棒的思考环境,我曾想象,它甚至可能发展成整个网络的底层载体,就像 Xanadu 那样。现实远没有达到这个程度。但我对它依然像当初一样兴奋——而这很大程度上也是因为那些 GPT-n 模型——我认为,Roam 有潜力成为智能体与人类共享的最佳思考载体。

写这份路线图是一次有趣的尝试,尤其是如今我已经是个局外人了(我曾在 Roam 工作过大半年),再加上 Roam 对路线图的态度 :) 我希望,要么自己为其中一些想法开发插件,要么把团队引诱过来,让他们自己动手实现……

改进已有的东西

  1. 让更高层的可视化组件提供更好的操作支持
    • Roam 有 tablekanban 这样的可视化组件,它们由块这一基本单元构建而成。最近的表格更新之后,你不再需要手动编写它们了;你可以对列排序,等等。
      • 看板也值得得到同样的关照:
        • 空表格目前是这样的:
        • 而空看板是这样的:
        • 一些问题:
          • 看板中的条目只包含卡片,不包含嵌套块(例如,嵌套在卡片内的块是看不见的)。
          • 看板这种抽象还不能铺满整个宽度。
          • 键盘导航尚未完整实现——没法轻松跳到下一列,也没法通过 Esc 选中卡片,或选中整列。
          • 对于表格、看板等大多数组件,智能体也缺少高层操作接口,只能在块的层面上操作。
          • 看板缺少很多操作功能:排序、移动列、在看板上筛选或搜索(这是一个更通用、理应存在的功能的具体形式:块级的持久化筛选器)。
      • 查询也一样 :(
  2. 更好地分享 Roam 内容,具体来说,就是能够生成静态网站,以及改善 Roam 图谱分享的 SEO。
    • 我敢打赌,Roam 团队现在只要把这项任务扔给一个 GPT-5.5 / Fable 这类的智能体,让它不断迭代,直到行为基本复现网页应用,就能以很低的成本实现静态网站生成和 SEO 改进。我在 quartz 上发布内容(以及使用 Obsidian),九成的原因都在这里。过去社区里有人尝试过,但据我所知,还没人做出一个使用顺畅、能跟上最新变化的版本。
  3. 改进图谱视图
    • 这里有太多唾手可得的改进机会了——全部写出来得花上一整天——但图谱视图确实可以变得有用得多得多。
      • 按语义布局,而不只是依据显式链接。
        • 既然现在有了向量嵌入,就可以在一定程度上按相似度布局,再把链接叠加上去。接着还可以按主题或类似的依据给聚类着色……
        • 这里有一个我为 Twitter 导出数据做的图谱视图示例,可以让你感受一下:
      • 把时间作为图谱的一个轴。
      • 在图谱视图中提供完整的搜索、筛选和查询功能。
      • 细节层次 / 多尺度 / 缩放。
    • 作为参考,这是它现在的样子:
  4. 让高层功能能够组合使用
    • 能不能让分形看板得到原生支持?
    • 看板、表格和查询能不能作为其他组件的输入?
  5. 更好的导出
    • Roam 用户经常会在所写内容对应的页面之外写下这些内容。比如,我可能在一个叫 [[Evolution]] 的页面上写关于 [[People/Charles Darwin]] 的内容。但当你把图谱导出成 markdown 时,打开 Charles Darwin.md,里面却什么也没有。
      • 这里一个显而易见的解决方案,是在每个导出的页面末尾附加一个名为“引用”的部分,至少可以提供被提及的次数、提及它的页面和块文本,等等。
    • 还可以有导出预览;导出为 pdf、原生的打印按钮,等等……
  6. 统一查询、筛选和搜索
    • 整体的筛选体验还有相当大的改进空间。
    • 仔细想想,这些体验非常相似,而且经常需要在相似的界面中配合使用。
      • 它们有什么区别?
        • 查询就是一个实例化的搜索,可以在整个图谱中复用,也允许你使用逻辑搜索运算符,但它不支持全文搜索:

          [[Important]] AND [[Project: Work]]
        • 搜索主要依据文本或语义搜索,生成一个候选块的视图——目前你不能使用 or/and 这样的查询操作。

        • 筛选嘛,就是对各种范围内(所有地方、仅页面、链接引用等)的任意块列表进行筛选。但它会预先列出可供筛选的页面(而不是让你自己想要查询什么),而且有时你还可以把这个观察视角保留下来。

      • 可这些就应该是同一回事!我应该能在搜索中使用逻辑运算符!我应该能临时筛选搜索结果!在确定要查找哪些页面或块之后,我应该能进行子字符串搜索!
  7. 把那个该死的网站更新一下
    • 它需要改版,把事情讲得更清楚。Roam 不是一个笔记工具,尽管它最初是以这种方式起步的。而且,如果我们有了静态网站生成,帮助图谱和开发者图谱就真的能被轻松找到了,等等。
  8. 更好的 TODO
    • 加一个 TODONT 状态(我经常有一些 TODO,最后其实没有去做)?记录标记为完成的时间?实现更好的延期处理?支持重复发生的 TODO,比如 {{[[TODO]]: recurs: [[weekly]]}} 或类似的形式?
  9. 实现 Move block to... ——基本上不言自明。
  10. 输入 1. 时,应该自动切换到编号列表块视图。
    • 我不在乎从技术上说,“编号列表”其实是我输入 1. 所在块的父块——它就应该触发!加一个幽灵父块也好,怎样都行,我不在乎。

全新的基本单元

将智能体和 AI 聊天作为一等公民

  • 不妨探索一下,让 Roam 成为通过 LLM 聊天来遍历知识的原生载体。
    • 所有 LLM 聊天应用都有同一个问题:信息会淹没在聊天记录里。Roam 特别适合承载这些聊天,同时也能从中提炼知识,用于构建知识图谱。
      • 换句话说,输入(聊天)和输出(产物)都可以存在于同一种媒介中。
      • 朝这个方向迈出的第一步,大概是更好的聊天基本单元,正如我们需要更好的聊天与多人协作基本单元中所勾勒的那样。
      • 然后,我们就可以在 Roam 内部拥有类似 Notion 的 AI 聊天。已经有社区插件在做这件事,但说实话,我认为它值得得到原生支持。
  • 为智能体提供完整的 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 的体验,会非常有用:
  • b) 可组合的时间抽象(小时 > 日 > 周 > 月 > 年 > 十年 / 世纪)。
    • Roam 的一个大问题是,东西很容易被淹没,你无法看到随时间展开的全貌。
    • 目前有每日笔记,但你无法从整体上查看或引用某一“周”、某个月或某一年。
    • 在视觉上,哪怕只是按周呈现的简单瀑布流布局,或者月历视图,都会很棒。
  • 在搜索、筛选、查询等功能中全面支持时间——不言自明——我没法说,给我看看这个查询在上周的所有结果,等等……
  • 问题的一部分在于,这里的时间既连续又离散——所以我怀疑这里得做一些相当严肃的数学工作……

将 Roam 作为一种可嵌入的媒介

  • 我想这不是什么新点子,但我经常想在网络的其他地方,把 Roam 这种媒介同时用作输入和输出。例如:
    • 想象一下,一个基于 Roam 构建、可以嵌入网站的表单?
    • 嵌入一张“Roam 页面”,这样你就能在视频旁边记笔记。
    • 把随手记的笔记分享给朋友。
    • 在博客文章中嵌入 Roam 内容。
  • 现在他们的好几个 API 都已就绪,这些想法也更有可能实现了……

真正的图遍历与超图功能

  • 边可以强大得多。目前你无法在 Roam 中直接操作它们。我觉得属性大致是在朝这个方向发展,但也可能是我想错了……
  • 也没有办法操作“聚类”,或从更高的层次查看图谱……

附言:这篇文章与 Notion 毫无关系。我很喜欢用他们的产品,他们那里也有很多才华横溢的人,包括出色的 Geoffrey Litt。我只是觉得这个标题很好笑。