作品九
想到什么,随手一句,就进了我自己的系统。手机或电脑,有网没网,都一样。
记下的这一句当晚出现在当天的日记里,我的 AI 读得到它,值得留的归进知识库,要做的在卡片上勾成任务,回头翻卡片墙还能再看到它。记录端用现成的开源软件,中间那段由我写。
它是什么:一个随时能记的入口,一条把随手记送进我系统的管道,一面回看的卡片墙。
它帮我做四件事。
为什么可信:终点是我的文件夹,不是别人的应用;管道只走一个方向,不覆盖,不删。
它和什么连着:我想到的事从这里进来,落在收件箱,当晚接上日记,整个系统从收件箱接上它。
它由两个记录端、一个服务、两段管道、一个视图构成,下面按一条随手记走过的顺序讲。
一条随手记从记下,到进日记、在卡片墙里能回看,经过四站,每站只做一件事。
| 站 | 做什么 | 实际是什么 |
|---|---|---|
| 记录端 | 记下,断网先存本地 | 手机上的 Moe Memos;电脑上一个打开本机服务的网页窗口 |
| 服务 | 唯一写入端,存全部随手记 | 本机一个 Docker 容器里的 Memos,版本锁在 0.30.0。Docker 是在本机跑隔离程序的工具 |
| 镜像 | 把服务里的每条随手记写成一个文件 | 一个同步脚本,系统定时任务每 60 秒跑一次,落到文件夹的收件箱 |
| 日记 | 把当天的随手记挂进日记 | 一个进日记脚本,每天 22:50 跑一次,只写引用 |
| 视图 | 看,筛,回顾,记,勾任务 | Obsidian 插件,读文件;输入框里记的一条发回服务;卡片上勾任务只改文件里那一行 |
让它不毁我的东西、不让我等的工程有六项,见 Harness 一节。
想记的时候打开就能记:两个记录端各用一个现成的开源客户端,各自能离线。
「没网也能记」不靠管道,靠两个记录端各自的离线能力。
服务版本锁在 0.30.0,锁的理由在手机端。
记下的每一条只存一处、只由一处管:我电脑上的一个 Memos 服务。文件夹里的镜像因此永远和它对得上。
数据库放在文件夹外面,不放在被云盘同步的文件夹里。
手机连服务走私有网络,不上公网。
唯一写入端这条约束落在三个位置。
记下一分钟内,这一条就是我文件夹里的一个纯文本文件,AI 和知识库从这里接上它:同步脚本每 60 秒跑一次,把服务里的每条随手记写成一个文件,落在收件箱。
每条一个文件,不按天合并。
先进收件箱,不直接进日记。
同步规则以「不毁我的东西」为先,五条。
| 情况 | 脚本怎么做 |
|---|---|
| 文件被改名 | 按文件头里的编号认出来,就地更新,不另建 |
| 文件在本地被改过 | 不覆盖,不删除,只记一行日志 |
| 文件被移出收件箱或删掉,服务里那条没再改 | 不重建 |
| 服务里删了 | 删对应文件,仅限本地没改过的 |
| 服务返回零条,之前同步过 | 跳过删除,防止误清空 |
删除一个文件要同时满足三件事。
改动检测用内容指纹,不用服务给的更新时间。指纹是把一条的内容算成一个短码,内容一变短码就变。
脚本上线前在临时目录跑了九种情况,再在真实收件箱跑一遍确认走通。
白天想过什么,晚上自动出现在当天的日记里:进日记脚本每天 22:50 跑一次,在日记里加一段「随手记」,每条一行时间加一个引用。日记每天一份,是文件夹里的一个文件。
备选的两个方案我都否了,选了第三个。
「随手记」段放在「今日记录」段之前,位置由另一个程序决定。
每晚重算最近七天,不只写今天。
回看在这里:笔记软件里一面卡片墙,按天看、按标签筛、随机回顾。插件读收件箱里的随手记文件,不改名、不删任何文件。
界面见首屏截图;那张图按「反脆弱」标签筛出了一天的五条。
视图顶上有一个输入框,记的一条发回服务,不写文件。
性能红线:打开和记下都在三秒内。红线落在四条写法上。
文件列表里显示开头一句,文件名不动。
harness 不产出内容,只让产出稳定:谁能写、往哪个方向写、什么情况不许删、打开要多快,每一条都落在管道上一个具体位置。
| 项 | 做了什么 | 约束哪一层 |
|---|---|---|
| 服务是唯一写入端 | 新记、改、删都只在服务里发生;视图里的输入框也发回服务,不写文件。防两处各写一份,镜像从此和服务对不上 | 服务;视图的写入路径 |
| 管道单向 | 同步脚本只从服务读,只往文件写,从不往服务写;拉取失败直接退出,不写不删。防两个方向同时写,谁也不知道哪份是准的 | 镜像:服务到文件的那段管道 |
| 本地改过不覆盖 | 我在文件夹里改过的文件,同步脚本不覆盖、不删除,只记下来;写文件先写完整再放进收件箱,文件夹里不出现半个文件。防覆盖我的整理 | 镜像:服务到文件的那段管道 |
| 空结果不删 | 服务返回零条时不做任何删除。防一次空结果清空整个收件箱 | 镜像:服务到文件的那段管道 |
| 日记只挂引用 | 只挂引用不复制正文;只改日记里两个标记之间的那一段,别的段落不碰。防第二份正文,防改坏日记里的其他内容 | 日记:文件到日记的那段管道 |
| 视图性能红线 | 打开必须立刻;插件只读收件箱那一个文件夹,只查随手记的条目,不遍历整个笔记库。防打开卡住、记一条要等 | 视图 |
从起念到全链路打通用了一个晚上,之后的改动全部来自我用了一次之后的纠正。
没变的是管道的三条约束,变的是界面上的每一处。
写这一页的日期是 2026-09-17。系统建成两天,三档分开说,不混。
数字只报能证明系统真实存在的。
随手记落进的收件箱和日记,是作品一里记忆层的一部分。这个视图的做法之后被信息获取系统的收件箱视图沿用。它背后的想法怎么来的,见思考。