跳到主要内容

文件系统范式

文件系统范式如何组织知识?​

  • 提出者: 字节跳动火山引擎开源的 OpenViking,提出独立于“扁平向量碎片”和“图谱节点”的第三种哲学;
  • 核心做法: 把所有上下文——记忆、资源、技能——映射为虚拟文件系统中的目录和文件,每个条目拥有唯一 URI;
  • 目录示例:
viking://
├── resources/ # 外部知识:文档、代码库、网页
├── user/memories/ # 用户记忆:偏好、习惯
└── agent/ # Agent 自身:技能、经验
├── skills/
└── memories/
  • 虚拟 URI: viking:// 形式上类似 http:// 或 file://,但不指向具体物理位置;
  • 解析: Agent 通过该地址访问知识,框架在背后决定从内存、磁盘还是远程加载;

L0/L1/L2 三层上下文如何按需加载?​

层体量内容用途
L0(摘要)约 100 tokens一句话概述快速判断目录相关性
L1(概览)约 2,000 tokens核心信息与使用场景供 Agent 规划决策
L2(全文)完整原始内容原文仅在需要深入时按需加载
  • 自动生成: 资源写入时系统自动提炼三个抽象层次,每个目录下生成 .abstract(L0)与 .overview(L1)文件,形成从根到叶的层次化摘要结构;
  • 剪枝: 若在 L0 层即判定无关,则无需加载 L1 与 L2;大部分查询加载到 L1 即可完成决策,Token 消耗因此大幅降低;
  • 类似机制: 与第二章的 Skills 渐进式披露(progressive disclosure)同构——先只暴露轻量元信息,确有需要时再逐层拉取完整内容;

为什么用 Markdown 纯文本而不是专用数据库?​

  • 可读可改: 用户可以直接阅读、编辑和修正 Agent 的知识;
  • 可版本化: 可通过 Git 做版本控制与回滚;
  • 可写入: Agent 拥有 write_file 能力后,可在工作分支上自主记录和组织知识,再经审核流程合入主库;
  • 会话收尾: 系统可以提议把用户偏好更新写入 user/memories/,把操作记录写入 agent/memories/;
  • 边界: 前者属于用户知识管理;后者只有经过结果评价、跨轨迹归纳和后续验证,才会成为第九章所说的经验学习,而不是把任意一次操作直接当成可靠经验;

文件系统范式的前提是什么?​

  • 前提: 文件之间必须建立起链接与索引;
  • 纵向 vs 横向: .abstract/.overview 解决纵向的层次摘要,还需要横向的关联;
  • 反面: 只把知识拆成一堆彼此独立的文本文件平铺在目录里,除逐个全文扫描或向量检索外,Agent 几乎无从在相关条目间导航;知识越多,零散文件越难检索;
  • 正确做法: 把知识库组织得像 Wikipedia——每个条目提及其他条目时以链接指向它,再辅以入口页与索引页,让 Agent 能顺着链接从一个概念走到相关概念;
  • 等价能力: 这相当于用轻量文件链接实现了 GraphRAG 实体关系图谱的一部分导航能力,见 结构化索引;
  • 模型差异: 能力强的模型写入新知识时会自发回指已有条目、顺手维护索引,不少模型只会孤立追加文件;
  • 提示词要求: 必须明确要求“每新增一个条目,都要先检索并链接到相关的已有条目,并更新所在目录的索引页”,形成双向可达的引用网络,而不是任由知识退化成互不相连的孤岛;