一套不要求你懂「智能体」的个人知识自动化:白天在 Goodnotes 里写,夜里电脑自动整理,第二天在 Telegram 或飞书收到变化摘要。
很多人使用电子笔记的方式,和使用纸质笔记没有本质区别:写完、合上,然后很少再打开。问题并不是不愿意复习,而是整理笔记需要做一连串琐碎工作:找到昨天改过的文件、导出、识别文字、比较新旧版本、提炼重点,再把真正值得行动的内容挑出来。每一步都不复杂,但组合起来足以让人不断拖延。
我现在使用的方案把这些步骤串成了一条自动流水线:
这套流程已经可以稳定处理普通文本、手写笔记、截图和结构草图。它不是「让 AI 随意管理我的文件」,而是让脚本负责确定性的文件工作,让模型只负责它擅长的理解与总结。
Telegram 或飞书里的摘要,只是第二天早晨的回执。真正留下来的,是输出目录里那批结构统一的 Markdown:按笔记生成镜像、按日期留下 diff 与版本、按同一套标题写中文变更摘要。手写 PDF 对人友好、对模型却昂贵且不稳定;标准化文本反过来——人可以扫一眼,AI 日后可以按主题、按时间、按关键词直接检索。一天一份看似平常;几个月后,量变才会变成「我的生活与工作可被组织起来」的质变,接近 MyLifeOrganized 的核心理念:先稳定捕获,再持续整理。
下面先用普通人的语言解释它,再给出一套可以照着复制的完整配置。文末还会说明如何把同一工作流迁移到 Hermes Agent 和 Codex App。
这篇是《把手写变成行动:我的 Goodnotes → Google Drive → Logseq/Obsidian 待办工作流》的续章,侧重自动化管道的完整实现。
先理解四个词
如果你不熟悉智能体,只需要理解四个概念。
脚本是一段固定程序。给它同样的文件,它会执行同样的步骤,例如找到昨天修改的 PDF、复制文件、生成 Markdown。脚本适合做不能出错的机械工作。
提示词是交给 AI 的工作说明。它告诉模型应该读哪些文件、怎样判断变化、输出什么格式。
Skill 可以理解成一份「标准操作手册」。它把脚本、提示说明和使用条件放在一个目录里,让 AI 知道遇到 Goodnotes 任务时应当遵循哪套流程。
定时任务就是闹钟。每天凌晨 3 点,系统启动一次全新的 AI 会话,执行 Skill,然后把结果发给你。
整套系统最重要的设计原则是:文件扫描、命名、版本保留和差异生成交给脚本;理解手写内容、概括变化和提炼重点交给模型。这样既比「让 AI 自己想办法」稳定,也比纯脚本更能理解非结构化手写内容。
准备工作
这套原始实现面向 macOS,因为转换脚本使用系统自带的 PDFKit。你需要:
- 一台保持开机的 Mac;
- Goodnotes iOS/iPadOS 版本;
- Google Drive、Dropbox、OneDrive 或 WebDAV 中的一种;
- 已安装并配置模型的 OpenClaw;
- 可选的 Telegram Bot 或飞书机器人,用来接收结果。
Goodnotes 官方把「自动备份」定义为单向上传,而不是双向同步:云端修改不会回写 Goodnotes,删除 Goodnotes 文档也不会自动删除云端副本。设置入口是「资料库右上角菜单 → Cloud & Backup → Automatic Backup」。为了让脚本能读取,请选择 PDF,或者同时选择 PDF 与 Goodnotes Document。Goodnotes 自动备份说明
第一次开启后,应让 Goodnotes 保持前台运行,直到初次上传结束。然后在 Mac 上安装对应云盘客户端,确认 PDF 已经成为本地可访问文件。
假设你的路径是:
|
|
真实路径可能因云盘供应商、语言和账号而不同。先在 Finder 中找到目录,再把它拖进终端获取完整路径。
第一步:建立目录
|
|
为了避免文章中的路径过长,后文使用两个占位符:
|
|
把「你的账号」替换为本机真实目录名。不要把包含账号、Bot Token、飞书 App Secret 或聊天 ID 的配置上传到公开仓库。
第二步:从 Skills 仓库安装
完整 Skill 已发布在 walkthewalktoday/skills:goodnotes-daily-export。仓库同时保存 SKILL.md 和 Swift 脚本,不再需要从文章中复制几百行代码。
使用 npx skills 安装到 OpenClaw 的全局 Skill 目录:
|
|
安装后目录为 ~/.openclaw/skills/goodnotes-daily-export/。
第三步:确认导出脚本可执行
仓库里的脚本只读取源目录;所有生成和清理都发生在输出目录中。安装后为它增加执行权限:
|
|
以后更新 Skill 时运行同一条安装命令,或使用 npx skills update -g,不必再回到文章手工同步代码。
第四步:先手动测试,不要急着定时
把路径替换为你自己的:
|
|
正常输出类似:
|
|
检查三件事:Markdown 是否能打开;Markdown 中的相对图片链接是否正常;修改同一份 Goodnotes 笔记、重新备份并再次运行后,是否生成 .diff。
注意: 这里没有运行传统 OCR。PDFKit 只提取 PDF 本来就包含的文字层;手写内容主要靠渲染图片后交给具备视觉能力的模型理解。
第五步:配置接收渠道(Telegram 或飞书)
摘要可以投到 Telegram,也可以投到飞书(国内 Feishu / 国际版 Lark)。按官方文档把对应渠道配好、完成配对即可,凭据放进配置或环境变量,不要写进 Skill。Telegram · 飞书
第六步:直接使用 Skill 内置提示词
完整提示词已经随 Skill 发布在 assets/goodnotes-daily-summary.md,不再需要从文章复制并另存一份。
OpenClaw 全局安装后,提示词位于:
|
|
这份提示词负责限制处理范围、区分“没有变化”和“处理失败”、在文字层不足时检查页面图片,并把笔记内容视为数据。源目录与输出目录属于每台机器自己的参数,不写进公共仓库;创建定时任务时动态追加即可。
以后调整摘要格式或安全边界,只需更新 Skill:
|
|
第七步:创建 OpenClaw 定时任务
--channel / --to 换成你实际用的渠道即可:Telegram 填数字聊天 ID;飞书私聊填 ou_xxx,群聊填 oc_xxx。
|
|
在较新的 OpenClaw 文档中,openclaw automations create 是推荐入口;openclaw cron add 是很多现有安装仍提供的兼容命令。先运行 openclaw cron --help 或 openclaw automations --help,采用本机支持的形式即可。OpenClaw 定时任务文档
创建后立刻测试:
|
|
不要等到第二天才发现路径或权限配置错误。
一份好的结果应该长什么样
|
|
重点不是让模型把每一笔都转写出来,而是每天用一分钟知道:我昨天到底记录了什么、改变了什么、有哪些值得继续处理的事情。
常见问题与真实边界
为什么不直接让模型遍历整个云盘
因为文件扫描和版本管理是确定性问题。交给脚本更快、更便宜,也更容易审计。模型只处理本次变化,可以显著减少上下文和误判。
为什么保留两个 PDF 版本
Goodnotes 手写笔记经常没有文字层,文本 diff 无法反映真正变化。两个视觉版本足以让模型比较「上一版」和「这一版」,同时避免无限占用磁盘。
会不会漏掉文件
会。默认逻辑只扫描「昨天修改」的文件。如果电脑连续关机数天、云盘延迟同步,或者定时任务失败,需要通过 --date YYYY-MM-DD 补跑。更可靠的生产版应记录「最后成功处理时间」和文件哈希,而不是只依赖自然日。
同名笔记会怎样
示例脚本把不同子目录中的 PDF 平铺到一个输出目录。如果两个文件同名,它们会发生冲突。笔记库存在重名时,应把相对目录编码进输出路径,或为每个源文件生成稳定 ID。
AI 会不会读错手写字
会。视觉模型不是法庭级转录工具。因此提示词要求标出不确定内容,而不是为了让摘要完整而猜词。重要信息仍应回到原 PDF 核验。
电脑必须一直开着吗
本地 OpenClaw Gateway 必须在任务触发时运行,并且云盘文件已经同步到本机。可以使用系统服务让 Gateway 登录后自动启动,也可以把流程部署到始终在线的 Mac 或服务器;但 macOS PDFKit 版本必须运行在 macOS。
如何迁移到 Hermes Agent
假设 Hermes 已安装并能正常使用。迁移时只需装同一个 Skill,再挂上定时任务。
1. 安装 Skill
|
|
Skill 通常装到 ~/.hermes/skills/,新会话中生效。Hermes Skill 指南
2. 创建定时任务
直接读取 Hermes 安装目录中随 Skill 提供的提示词,并动态追加本机参数:
|
|
--deliver 按你的接收渠道调整:Telegram 用 telegram,飞书用 feishu 或 feishu:<ou_xxx|oc_xxx>。建议顺便固定模型和供应商,避免以后改聊天默认配置时影响定时任务:
|
|
然后测试:
|
|
Hermes 的 cron 每次都是新会话,提示词需自包含;稳定步骤放在 Skill 里即可。Hermes cron 文档
如何迁移到 Codex App
假设 Codex App 已可用。结果默认进 Scheduled 页面和应用通知,不必另配聊天机器人。
1. 安装 Skill
|
|
全局安装后,完整提示词资源位于 ~/.codex/skills/goodnotes-daily-export/assets/goodnotes-daily-summary.md。
也可以装到项目的 .agents/skills/,仅对该项目可见。Codex Skill 文档
2. 创建定时任务
在 Codex App 中输入:
|
|
创建后在侧栏 Scheduled 查看状态和最近运行。本地任务要求电脑开机、App 在跑、项目目录可访问。Scheduled tasks 文档
下一步可以怎样升级
当前版本完成的是「采集—版本化—理解—通知」。如果继续向个人知识系统演进,我会按以下顺序升级:
- 用文件哈希和成功游标取代「只扫描昨天」,解决漏跑问题。
- 为同名文件加入相对路径或稳定 ID,避免覆盖。
- 保存每次运行 manifest,让摘要和本次产物严格绑定。
- 把明确 TODO 提取到 Logseq、Obsidian 或任务管理工具,但必须保留人工确认。
- 自动添加主题标签和双向链接,形成长期可检索的知识网络。
- 为连续失败、云盘未同步和磁盘增长增加告警。
- 对高隐私笔记使用本地视觉模型,或在进入云端模型前执行排除规则。
这套工作流最有价值的地方,不是「AI 能识别手写字」,而是它改变了笔记的生命周期。
过去,笔记的终点是写完。现在,写完只是入口:文件会自动留下版本、变成可检索的标准 Markdown、被重新阅读、产生摘要,并在第二天回到你的注意力里。通知可以删,镜像文本最好留——它才是日后问 AI「上周架构草图改了什么」「把近一个月的关键结论按项目归类」时真正读得动的材料。
对普通用户来说,不需要先学会复杂的智能体理论。先找一件每天重复、步骤明确、结果可以检查的小事:让脚本负责机械动作,让模型负责理解,再用定时任务把它们接起来;让每一天都留下同一规格的文本。一个真正有用的个人自动化,往往就是这样开始的——My Life Organized,靠的不是某一晚的灵感,而是可累积的结构。