这是一套个人知识管理系统的设计:以本地 Markdown 文件为权威来源,融合 PARA 方法做知识组织、子弹笔记做事件溯源,所有条目 JSONL 追加写,终身可回溯。
核心问题
知识库包含经历、事件、参考资料、笔记、个人思考、感悟、灵感等,顶层应如何分类?
两个根本维度
| 维度 | 含义 |
|---|---|
| 来源 | 外部输入 vs 内部产出 |
| 性质 | 事项性(在时间上发生)vs 知识性(有价值而不依赖时间) |
四象限模型
两个维度交叉后自然出现四个大类:
外部输入 内部产出
┌─────────────────┬─────────────────┐
事项性 │ ① 事件 │ ② 任务 │
│ 发生了什么 │ 要做什么 │
├─────────────────┼─────────────────┤
知识性 │ ③ 知识 │ ④ 洞见 │
│ 学到了什么 │ 想通了什么 │
└─────────────────┴─────────────────┘
| 大类 | 核心问题 | 典型内容 | 时间性 |
|---|---|---|---|
| 事件 | 发生了什么? | 会议、旅行、对话、人生里程碑 | 强 |
| 任务 | 要做什么? | 待办、项目、目标、截止日期 | 强 |
| 知识 | 学到了什么? | 读书笔记、论文要点、技术文档 | 弱 |
| 洞见 | 想通了什么? | 个人感悟、方法论总结、创意灵感 | 弱 |
与子弹笔记类型对应
四种子弹笔记类型恰好覆盖四个象限:
| 子弹笔记 type | 对应大类 | 含义 |
|---|---|---|
event | 事件 | 外部发生在我身上的事 |
task | 任务 | 我主动要去做的事 |
note | 知识 | 外部信息的吸收和内化 |
idea | 洞见/灵感 | 从自己脑子里长出来的 |
关键区分:note 承载外部知识吸收,idea 承载内部产出的洞察。如果一个条目既描述事实又包含洞察,选主导性质。
子弹笔记与 PARA 的关系
子弹笔记不是索引,是时序基座
索引只负责指路,不承载内容。子弹笔记是系统内一切内容的第一个落脚点和时间维度的唯一载体。
两类内容在系统中的不同命运
| 内容类型 | 子弹笔记中的角色 | PARA 知识库中的角色 |
|---|---|---|
| 事件 | 主体 — 事件只存在于时间线上 | 无 |
| 任务 | 主体 — 任务的生命周期在时间线上 | 无 |
| 知识 | 过程记录 — “什么时候学的、卡在哪” | 当前态 — 学到的结构化内容 |
| 洞见 | 过程记录 — “什么时候想通的” | 当前态 — 想通后的结论 |
架构示意
┌──────────────────────────────────────┐
│ 子弹笔记(时序基座) │
│ 一切内容的「时间维度」都在这 │
│ │
│ 事件 ───────────── 主体(常住) │
│ 任务 ───────────── 主体(常住) │
│ 知识 ───────────── 过程记录 │
│ 洞见 ───────────── 过程记录 │
│ │
│ 每条都有 ID + 时间戳 │
└──────────────┬───────────────────────┘
│ refs / para 字段
▼
┌──────────────────────────────────────┐
│ PARA 知识库(当前态) │
│ 仅知识/洞见有「当前态」版本 │
│ 事件/任务不进入 PARA │
└──────────────────────────────────────┘
一句话总结
子弹笔记是时间流(when),PARA 是知识面(what)。 四个象限的内容从时间流进入系统——事件和任务在此常住,知识和洞见从这里迁入知识库。
存储与事件溯源
存储结构
子弹笔记按月存储为 JSONL(追加写),按年归档。PARA 目录按标准四层组织:projects(有终点的项目)、areas(持续关注的领域)、resources(参考资料)、archives(已归档),外加 inbox 作为待分类入口。原则:一个主题一个文件夹,归档移入 archives,保留历史。
两个时间字段的本质区别
| 字段 | 含义 | 适用类型 |
|---|---|---|
time | 条目创建时间 — 何时写入 JSONL | 全部,事件溯源的基础 |
scheduled | 实际发生/排期时间 — 事件何时发生、任务计划何时做 | event + task |
time ≠ scheduled 的典型场景:补记历史事件(昨天发生的事今天才记)、外部数据批量导入、AI 回顾对话后提取条目。生成日报/时间线时以 scheduled 为准,不是 time。
条目关联
每条子弹笔记有全局唯一 ID 和时间戳,通过 para 字段关联 PARA 路径、通过 refs 字段引用本地文件,构成可追溯的编辑历史。任务还有 status(open/done/cancelled)、estimated(预估分钟数)、due、priority、parent(子任务拆分)等字段。更新以 updated 事件追加记录(只记录变化字段),不改写历史。
知识进入门禁
知识进入 PARA 知识库按来源走不同路径,所有写入必须经过对应路径的门禁,不可绕过。
路径 1:对话共创(内部产生)
处理自己产生的一切——口述碎片、自己写的笔记、实践记录。核心假设:不存在成品文档,一切都是半成品。
门禁:追问展开 + 确认成形。
- 即使是自己写的笔记,agent 也要审视——实践事实保留,猜测性结论可能被挑战、不完整的理解被展开(“你这个结论背后的逻辑是什么?有没有可能反过来?")
- 区分随口与认真:不是每句话都要入库,追问后判断是"值得沉淀的想法"还是"随口一提”
- 产出草稿:在 inbox 或对话中产出 Markdown 草稿,用户可编辑
- 确认入库:用户明确说"记下来"或自然达成共识时,才写入 PARA 并创建子弹笔记条目,写入前展示摘要确认
路径 2:外部进入(外部输入)
快速通道 — 参考资料:芯片手册、数据表、协议规范等仅用于查询的文档。判据是"读完后只需要记住它在哪里",解析后直接入库。
完整通道 — 学习资料:论文、书、方法论文章等需要理解的资料。门禁是确认吸收:
- 解析:用工具提取结构化内容
- 提炼要点:总结核心论点、关键概念
- 带领消化:逐段讨论,关联已有知识(“这里讲的核心概念是 X,你之前某个笔记里也提到过类似观点,有什么异同?")
- 确认吸收:用户表示理解后,才将结构化笔记写入知识库
- 子弹笔记记录的不是"解析了 PDF”,而是"学了什么、关联了什么已有知识、理解到什么程度"
路径 3:旧笔记迁移(内部已有内容入库)
处理已有的旧笔记、旧文章、旧社交平台内容迁入知识库的场景。内容已存在,不需要追问展开,但需要还原时间线。
三要素缺一不可:
| # | 要素 | 缺失后果 |
|---|---|---|
| 1 | 文件归档 — 原始内容写入 PARA 对应目录 | 内容不可检索 |
| 2 | 子弹笔记入库 — 按原始时间戳创建条目(scheduled = 原始日期) | 事件流断裂,时间线查询不到历史 |
| 3 | 文件关联 — 条目的 refs/para 关联归档文件路径 | 条目与文件脱节 |
scheduled 是迁移的关键字段:一篇多年前发布的博客,time 是迁移日期,scheduled 是原始发布日期。常见反例:只做了文件归档和精华提取,跳过子弹笔记入库,导致历史事件在时间流中不可见。
Inbox 工作空间
inbox/ 有两个角色:信息入口(临时丢入的文件、截图、笔记,按路径分发处理)和工作空间(草稿、学习中间产物)。原则:
- 混乱是正常的,草稿可丢弃
- 一条内容一条条目
- 去重优先:与已有内容完全一致的重复文件直接删除
- 结构化数据可还原时原始文件不归档;含格式/图片/布局的 PDF 等仍需归档,原始文件是最终证据
日常沟通术语
| 术语 | 覆盖范围 | 适用场景 |
|---|---|---|
| 知识库(广义) | PARA + 子弹笔记(全部内容) | 日常口头沟通 |
| 知识库(狭义) | PARA 层(知识/洞见的当前态快照) | 技术文档中明确区分时 |
| 时间流 | 子弹笔记(时序基座) | 与狭义知识库对举时 |
| 时序基座 | 子弹笔记 | 架构文档中强调其角色 |
| Corpus / 语料库 | PARA + 子弹笔记的统称 | 需要一次性指代「一个人的全部知识身体」时 |
日常沟通中「知识库」是最自然的术语,歧义通过上下文消解。
落地历程
- 设计并搭建知识库体系(PARA 结构 + 子弹笔记)
- 旧笔记备份迁移:子弹笔记批量入库,PARA 目录建齐
- PDF 解析 pipeline 集成(文档解析后进入门禁流程)
- 入库工具加入敏感内容检查;确立归档可省略规则