💡阅读指南

这一节讨论的是系统设计,不是具体命令。读的时候可以同时抓住两个维度:第一,一份资料进入胶囊系统以后,会按什么流程被处理;第二,每个动作分别由 Hermes 和飞书承担什么职责。流程用来说明动作顺序,分层用来说明职责边界。

7.1 先按流程理解资料处理过程

一份资料进入胶囊系统以后,大致会经过下面这条线:

Text
用户提交资料
  ↓
Hermes 接收并做入口判断
  ↓
Hermes 抽取正文,生成标准化证据
  ↓
飞书保存证据页
  ↓
飞书多维表格记录索引和处理状态
  ↓
Hermes 阅读证据,判断主题和资料关系
  ↓
Hermes 更新主题页、概念页或综合页
  ↓
飞书保存更新后的 Wiki 页面

这条流程里,Hermes 和飞书不是并列替代关系。Hermes 负责做判断,飞书负责保存判断结果和中间状态。

比如用户丢进来一篇关于 Embedding 的文章。Hermes 先把正文抽出来,整理成可以核对的 Markdown。飞书保存这份证据页,多维表格记录来源、状态、证据页链接和目标主题。接着 Hermes 阅读证据,判断这篇资料是否补充“Embedding 向量”主题页,是否涉及“向量空间”“余弦相似度”这些概念页。最后,Hermes 改写对应的 Wiki 页面,再把结果保存回飞书。

这里最重要的是:流程不能停在“保存资料”。如果只把文章存进飞书,那只是换了一个收藏夹。胶囊系统真正要做的,是让这份资料进入主题演化。

7.2 再按分层明确职责边界

流程表达的是动作顺序,分层表达的是职责边界。

把胶囊系统放到 Hermes + 飞书里,可以先这样分:

飞书负责什么 Hermes 负责什么
交互层 作为可选入口,比如飞书频道、消息和文档入口 作为主网关,接收用户资料和指令
证据层 保存标准化后的证据页 抽取正文,清理噪音,生成 Markdown 证据
索引层 用多维表格记录来源、状态、证据页和目标主题 读取和更新索引,决定下一步处理动作
理解层 提供证据页和索引记录给 Hermes 读取 判断主题、观点、重复、冲突和可引用场景
演化层 保存主题页、概念页和综合页 融合新内容,校正旧判断,维护页面结构
内化层 展示主题索引、当前判断和知识页 在写作、方案和问答中调用这些知识页

这张表不是为了把系统拆得很复杂,而是为了避免职责混乱。

飞书不是大脑。不要期待飞书替我们理解资料。飞书最擅长的是保存和展示:文档、知识库、多维表格、权限、协作、搜索。它应该承担的是工作空间和数据承载层。

Hermes 也不是数据库。不要让 Hermes 把所有状态都记在对话里。Hermes 的优势是理解和执行:它能阅读证据,判断关系,调用 CLI,更新飞书里的页面和表格。它应该承担的是 Agent 维护层。

这个分工如果没有定清楚,后面很容易变成一堆临时脚本:今天把资料写进一个文档,明天把摘要丢进另一个表格,过几天又不知道哪份资料已经处理过。胶囊系统要长期使用,就必须让每一层都有稳定位置。

7.3 飞书承载哪些东西

飞书在这套方案里主要承担四类东西。

云文档和知识库保存证据与 Wiki

证据页、主题页、概念页、综合页,都适合放在飞书云文档或飞书知识库里。

证据页保存的是标准化后的正文。网页可以转成 Markdown,PDF 可以抽取正文,音频可以先转写成文字。只要这份文本足够完整,后面还能回到来源核对,它就可以作为证据层的主要材料。

主题页、概念页和综合页则是演化层的产物。它们不是原文,也不是摘要,而是 Hermes 持续维护出来的 Wiki 页面。用户可以直接在飞书里阅读这些页面,Hermes 也可以继续修改它们。

这就是飞书的第一个价值:它让证据和 Wiki 都有一个可见、可读、可协作的位置。

多维表格管理资料状态

资料一多,只靠文档目录是不够的。

胶囊系统需要知道每一份资料从哪里来,证据页在哪里,当前处理到哪一步,是否参与主题演化,最后影响了哪个主题页。这些信息适合放在飞书多维表格里。

第一版索引表可以先保留这些字段:

字段 作用
标题 资料的可读名称
来源类型 URL、PDF、音频、图片、纯文本等
原始链接 回到来源的地址
证据页 飞书证据文档或知识库路径
入库时间 资料进入系统的时间
处理状态 待处理、已入库、已理解、已演化、不被采纳等
主题 Hermes 判断出来的目标主题
参与演化 这份资料是否被主题页采纳
目标主题页 它影响了哪个主题页
判断理由 被采纳或不被采纳的简要理由

这个表不是为了好看,而是为了让系统可管理。

比如一份资料被判断为“不被采纳”,它可以不再进入主题演化,但索引层仍然要留下轻量记录。以后同一份资料再次进入,Hermes 才知道它已经处理过,不需要重新完整执行一遍。

搜索和目录帮助 Hermes 找资料

飞书本身有搜索能力,知识库也有目录结构。第一版可以先利用这些能力,不必一开始就做复杂的向量数据库。

Hermes 要更新一个主题页时,通常需要先找到相关证据、旧主题页、概念页和索引记录。飞书的搜索、知识库目录和多维表格筛选,都可以为 Hermes 提供候选材料。

当然,飞书搜索不能替代 Hermes 的理解。搜索只能帮 Hermes 找到可能相关的页面,真正判断“这份资料和旧主题是什么关系”,仍然要由 Hermes 完成。

权限和协作交给飞书

知识系统如果只在本地目录里,很快会遇到协作和权限问题。

飞书本来就有用户、群组、文档权限、知识库空间和协作编辑能力。用飞书承载证据和 Wiki,可以少处理很多非核心问题。用户要看某篇主题页,可以直接打开飞书文档;要和别人协作,也可以通过飞书权限来控制。

这也是本教材选择飞书的重要原因之一。我们要讨论的是胶囊系统,不是重新开发一个文档协作平台。

7.4 Hermes 承担哪些判断

飞书负责保存,但保存只是前半段。

胶囊系统真正的难点,是判断资料和知识结构之间的关系。这部分要由 Hermes 承担。

入口判断

Hermes 收到资料以后,先判断它是什么类型:URL、文件、图片、音频,还是一段普通文字。不同类型需要不同的抽取方式。

同时,Hermes 还要做入口去重。比如同一个 URL、同一个文件、同一条消息,能在入口拦住就不要继续处理。入口去重只处理确定重复,不负责判断内容是否重复。内容是否有新增价值,要等理解层和演化层处理。

证据整理

Hermes 要把资料整理成证据页。

网页要去掉导航、广告、评论和按钮;PDF 要抽取正文;音频要先转写;图片要 OCR。整理后的证据页应该尽量像一份干净的 Markdown 文本,而不是一堆抓取噪音。

这一步如果做不好,后面理解层就会被污染。证据页里混进太多无关内容,Hermes 后面提取观点、判断主题、更新页面都会受到影响。

关系理解

证据进入飞书以后,Hermes 要重新读取它,判断它和现有知识结构的关系。

这里至少要回答几个问题:

判断 说明
它属于哪个主题 是否进入已有主题,还是需要新建主题
它补充了什么 是否提供了新例子、新边界、新解释
它重复了什么 是否只是换一种说法重复已有内容
它冲突了什么 是否修正或挑战了旧页面里的判断
它可以用在哪里 以后适合进入哪类写作、方案或回答

理解层的产物不一定要写成一篇文章。它更像 Hermes 做出的处理判断。后面的演化层会根据这些判断,决定怎么改主题页。

主题演化

主题演化是 Hermes 最重要的职责。

Hermes 不能把新资料简单追加到主题页末尾,也不能把每篇文章都写成一篇摘要。它要重新阅读旧主题页,把新资料融合进去。该补充的补充,该删掉的重复表达删掉,该修正的边界修正掉。

比如“Embedding 向量”主题页原来只讲了“文本会变成向量”。后来新增资料讲到“向量空间”“语义相似度”“余弦相似度”。Hermes 应该把这些内容融合进原来的结构,让主题页变成一篇更完整的知识文章,而不是在末尾追加几段新增资料。

主题页最后应该保持一种状态:用户打开它时,看到的是当前最好的版本。

规则执行

Hermes 做这些判断时,不能只靠当前对话里的感觉。

胶囊系统需要一份明确的规则文件,告诉 Hermes 什么时候保存证据,什么时候更新索引,什么时候新建主题页,什么时候只更新概念页,什么时候判定资料不被采纳。

这份规则可以写进 Skill,也可以写成项目里的规则文档。后面真正执行时,Hermes 必须先读取规则,再处理资料。否则系统很容易前后不一致。

7.5 两者怎样交接

Hermes 和飞书之间的交接,不能靠记忆。

每一步都应该有可以检查的中间结果。资料进入以后,要有证据页;证据页生成以后,要有索引记录;Hermes 做出理解判断以后,要能更新处理状态;主题页被改写以后,要能回到飞书里看到最终页面。

可以把交接关系理解成这样:

Text
Hermes 接收资料
  ↓
飞书保存证据页
  ↓
飞书多维表格记录状态
  ↓
Hermes 读取证据和索引
  ↓
Hermes 改写 Wiki 页面
  ↓
飞书保存最新页面

这里有一个很重要的原则:Hermes 的每次判断,都应该尽量落到飞书里的某个文件或字段上。

比如“这份资料不被采纳”,不能只停留在对话里。它应该写入多维表格的处理状态和判断理由。比如“这份资料补充了 Embedding 的向量空间解释”,也不能只停留在对话里。它应该体现在主题页的改写结果里,同时在索引层留下目标主题页。

这样做以后,即使对话中断,下一次 Hermes 也能从飞书里的证据页、索引表和 Wiki 页面继续处理。

7.6 第一版先打通主线

这一节讲的是系统设计,但第一版实现不需要一开始就铺得很大。

第一版只需要把几件事完成:

  1. 用户能向 Hermes 提交一篇 URL 文章。

  2. Hermes 能抽取正文,并把证据页写进飞书。

  3. 飞书多维表格能记录这份资料的来源、状态、证据页和目标主题。

  4. Hermes 能判断这篇文章属于哪个主题。

  5. Hermes 能把有价值的内容融合进对应主题页。

  6. 用户能在飞书里看到证据页、索引记录和更新后的主题页。

只要这条线成立,Hermes + 飞书实现胶囊系统的基本形态就成立。后面再增加 PDF、音频、图片、飞书频道入口、搜索增强和自动维护,才有意义。

7.7 ■ 学点英语

中文 English 音标 说明
存储层 Storage Layer /ˈstɔːrɪdʒ ˈleɪər/ 负责保存数据和文件的系统层
理解层 Understanding Layer /ˌʌndərˈstændɪŋ ˈleɪər/ 负责解释内容、提取关系和生成回答的系统层
职责划分 Responsibility Split /rɪˌspɑːnsəˈbɪləti splɪt/ 把存储、理解和执行等职责分给不同系统
系统边界 System Boundary /ˈsɪstəm ˈbaʊndəri/ 系统内部能力和外部依赖之间的边界