Skip to content

个人知识库自动化

我现在的习惯是这样的:刷公众号、刷抖音,看到一篇好东西,第一反应不是点收藏,是把链接复制出来丢进我自己的管线。几十秒之后,这篇东西就变成了我硬盘上的一个 Markdown 文件,带摘要、带标签、带原文链接,我的 AI 随时能去翻它。

这条管线我已经用了一段时间,库里攒了三百多篇笔记(2026-09-01 实测 336 篇)。这章就把它从头到尾讲清楚:架构长什么样、命令怎么敲、我踩过什么坑。

先说清楚,这章不是让你必须照着做。用豆包工作收藏文章、把经验沉淀成 Skill,那条路线蓝皮书里已经讲过了,够大多数人用。我这章是「产品之外自己搭管线」的重度玩法,适合已经被收藏夹折磨够了、又愿意动手敲几条命令的人。

一、为什么要自己搭:现成工具差在哪

我以前也是收藏夹大户。微信收藏、抖音收藏、浏览器书签,存了几千条。结果就是那句老话——收藏等于学会。我翻自己收藏记录的次数,一只手数得过来。

后来各类「知识管理工具」我也试过,这类工具确实比收藏夹强,但对我来说有几个过不去的坎:

  • 内容在别人服务器上。 服务哪天关了、改收费了、调算法了,我攒的东西说不准就没了。知识库对我来说是长期资产,长期资产我想握在自己手里。
  • 格式不归我管。 我想拿到的就是纯 Markdown 文件,因为我后面要用 AI 去读它。存在别人云端的笔记,AI 想批量处理就得走它的导出接口,麻烦。
  • 整理这一步还是要自己干。 存进去一百篇,摘要谁写?标签谁打?一篇一篇手工整理,坚持不了三天的。

所以我要的东西其实很具体:一条链接进去,出来一个带摘要带标签的 Markdown 文件,落在我自己的硬盘上,格式我说了算。 这件事现成工具没有一件能全包,那就自己搭。好在搭起来比想象中简单得多,核心代码就一个 Python 文件。

二、先换个脑子:这个库是给 AI 用的

动手之前,有个观念必须先掰过来,不然库建得再漂亮也是白搭。

这个观点不是我原创的。我看到大李书房一盏灯的一篇口播稿《先别学 Obsidian 了(知识库是给 AI 用的)》,被点醒了。他的原话是:

知识库不是给你用的,是给你的 AI Agent 用的,这点不搞清楚,建了也白建。

他自己的状态是:库里有几千份文档、几百万字,自己很少翻,查资料全让 Agent 去查。用他的话说——「我的知识库每天被 AI 用很多次,我自己很多天不打开一次」。

我看完对了一下自己的库,一模一样。我写稿要引用、做视频要找素材、拆对标账号要找案例,全是让 AI 进库里翻,我自己打开 Obsidian 主动逛库的次数基本为零。以前那些博主晒的节点连线图谱,看着很酷,但那些线是人肉连出来的,AI 检索根本不靠那个。

另外还有一个说法我也很认同,是外部作者合一的观点,不是我原创的:「视频是线性的,知识库是网状的,这是降维打击。」一条视频从头看到尾要十几分钟,但沉淀成笔记之后,AI 可以同时扫一百篇、瞬间把三篇不同来源的东西拼到一起回答你。这就是我坚持往库里塞东西的动力。

想明白「库是给 AI 用的」,技术选型反而简单了:AI 读得最顺的就是 Markdown 纯文本加规范的 frontmatter。Obsidian 在我这里的角色,就是一个 Markdown 文件浏览器,仅此而已。

三、管线全景:一条链接进来之后发生了什么

整条管线五个环节,我按真实代码的执行顺序列个表:

环节干什么靠什么产物
1. 接单你在命令行丢一条 URL 进来一条命令加一个参数
2. 识别平台看域名判断这是哪家的内容detect_platform()mp.weixin.qq.com 判公众号,douyin.com 判抖音平台标记
3. 提取抓正文 / 拉视频转文字公众号走 extract_wechat.py(默认走 browser-act 真实浏览器过反爬,requests + BeautifulSoup 只是几乎必被拦的备用分支);抖音走 extract_douyin.py(yt-dlp 下载 + 本地 whisper 转写口播)统一内容字典
4. AI 处理摘要、打标签、(可选)深度拆解Claude API,两套 prompt结构化结果
5. 落库拼 Markdown 写文件save知识/analyze素材/ + 分析/.md 笔记

代码结构也照实说:主入口是 scripts/knowledge_collector.py,负责路由、调 AI、生成文件;两个提取器 extract_wechat.pyextract_douyin.py 各管各的平台,也能单独当命令行工具跑。没有框架、没有数据库,就是普通 Python 脚本。

两个模式的区别要讲清楚,这决定你敲哪条命令:

  • save(快存):AI 只干两件事——写 2~3 句摘要、打几个标签。适合「这篇有用,先存着,以后让 AI 帮我查」。
  • analyze(深拆):AI 干七件事——摘要、标签、钩子分析(前 3 秒靠什么抓人)、爆款原因、可借鉴点、金句、选题延伸。适合「这篇是爆款,我要拆它为什么火,顺便给我自己的内容找弹药」。

深拆模式会一次写出两个文件:素材/ 里存原文全量,分析/ 里存 AI 的拆解,分析笔记的开头用 wikilink 反链到素材笔记。谁拆的、拆的哪篇,永远对得上账。

[截图占位:终端里跑 save 命令的完整输出,能看到平台识别、AI 处理、最终落盘路径三段打印]

四、三个关键设计(从真实代码里提炼的)

这节是给想自己搭一套的人看的。有三个设计决定了我这套东西好不好维护,都是拿教训换的。

1. 统一内容字典:新增平台不改下游

每个提取器返回的内容,都被 normalize_extractor_result() 抹平成同一套七个字段:

text
title        标题
source       作者 / UP主
url          原文链接
text         正文或口播转写
cover_url    封面图
platform     平台名(公众号 / 抖音)
publish_date 发布时间

为什么要较这个真?因为下游(AI 处理、Markdown 生成)只认这套结构。公众号提取器里叫 author 的东西、抖音提取器里叫 source 的东西,进来之后都变成同一个字段。以后我要加 B 站,只要写一个新提取器,把输出凑成这七个字段,后面的全部流程一行代码都不用动。

2. 三类笔记分目录,各干各的

库里三个目录不是随便分的,是三种笔记类型:

目录类型里面有什么
知识/快存摘要 + 标签 + 原文,来源链接置顶
素材/素材全量原文 + 封面 + 摘要,深拆模式的原材料
分析/分析AI 的七段拆解,frontmatter 里带 [[素材名]] 反链回素材笔记

这个分法最大的价值在反链。我经常是先看到一篇拆解,觉得「金句这条有意思」,点一下就跳到素材原文去核对上下文。快存和深拆分开还有个实际好处:不是每篇都值得深拆,深拆要多花一倍以上的 token。

3. 防垃圾落盘:别让自动化把库搞脏

自动化管线的副作用是它跑得快,脏东西也产得快。我在代码里守了几条规矩:

  • 文件名必须洗过。 标题里的非法字符清掉、空格转下划线、最多 80 个字符,前面加日期,最终长成 2026-08-16_文章标题.md 这样。不然抖音视频标题里一个换行符就能给你搞出坏文件。
  • 附件有专门的坑位。 封面图统一进 附件/ 目录,公众号的带 wechat_ 前缀加时间戳,抖音的直接以视频 ID 命名。绝不往库根目录落任何图片。
  • 送 AI 之前先截断。 正文超过 12000 字就截断再送,防止长文把上下文撑爆,调用直接失败。
  • 产出只进固定目录。 管线写文件的路径是写死的三个目录加附件目录,不存在「顺手往根目录丢一个」的情况。

这几条看着琐碎,但库是要用几年的,第一天不立规矩,第二年就是垃圾场。

五、怎么跑起来

前置条件:装好 Python(3.10+ 就行)、有一个 Anthropic API Key。整个项目不依赖 .env 文件,Key 直接走环境变量。

第一步,装依赖:

text
pip install -r scripts/requirements.txt

一个坑要先说:公众号提取默认走 browser-act 真实浏览器过反爬,而它不在 requirements.txt 里——不装的话,跑公众号链接会直接报 browser-act CLI not found on PATH,装法是 uv tool install browser-act-cli --python 3.12。只用抖音提取的话可以先不装,那条路径用不到它。

第二步,配环境变量。Windows 开个 PowerShell:

text
setx ANTHROPIC_API_KEY "sk-你的key"

(配完要重开一个终端窗口才生效。代码同时认 ANTHROPIC_AUTH_TOKEN,如果你走的是兼容代理,再加一个 ANTHROPIC_BASE_URL 指向代理地址就行,代码里已经预留了这个口子,不用改代码。)

第三步,跑起来。快存一篇公众号文章:

text
python scripts/knowledge_collector.py save "https://mp.weixin.qq.com/s/xxxxxx"

深拆一条抖音视频:

text
python scripts/knowledge_collector.py analyze "https://v.douyin.com/xxxxxx/"

终端会依次打印平台识别结果、AI 处理进度和最终落盘路径,比如 [extract] Detected platform: wechat,最后一行就是生成文件的位置。到这里,你的库里就多了一篇规范笔记了。

[截图占位:Obsidian 里打开库的目录树,能看到知识/素材/分析/附件四个目录和里面的日期命名笔记]

[截图占位:一篇分析笔记的开头,能看到 frontmatter 和指向素材笔记的 wikilink 反链]

想加新平台的话,代码里已经留好了口子——detect_platform() 其实能认出 B 站、知乎、小红书的域名,只是提取器还没写,会直接报「暂未实现」。补齐只要四步:在 detect_platform() 加域名识别 → 写一个 extract_bilibili.py 这样的提取器 → 在 extract_content() 的映射表里注册 → 剩下的 AI 处理和落库全自动复用。

另外一个常见卡点是 whisper(抖音转写用的本地语音转文字)。它是装在 Python 里的,装完要确认命令行里敲 whisper 能找到。找不到的话,要么把它装进 PATH,要么改 extract_douyin.py_find_whisper() 的备用路径。只用公众号快存的话,装不装 whisper 完全无所谓,那条路径用不到它。

六、我踩过的坑

  • 抖音的 cookies 会过期。 抖音抓取靠 yt-dlp,需要登录态,我这边是把 cookies 存成文件喂给它的,代码在检测到 cookies 失效时会自动尝试刷新一次,但不是每次都救得回来。而且抖音接口本身有风控,这章写于 2026 年 9 月,你看到的时候接口长什么样我不敢打包票,跑不通先怀疑是平台改了,不是你的环境坏了。
  • 长文拆解会失真。 12000 字截断保护了调用,但也意味着超长文章的后半段 AI 没看到,拆出来的重点可能偏。遇到特别长的我会先手动分两段处理。
  • 转写质量看视频。 抖音转写走本地 whisper,纯口播视频很稳,BGM 声大或者多人对话的视频,转写稿会花,AI 拆解跟着拉胯。
  • 让 AI 直接读写库之前,先备份。 我的库里让 Agent 批量整理过笔记,动手前一定先 git 或者手动备份一次。批量操作写歪了再回滚,那个成本比备份高太多。

七、局限、下一步,和这条管线的出口

先交底,几个我这章给不出的东西:这套管线一天自动入库几篇、这三百多篇里有多少是管线自动落的、平均一篇省几分钟,我都没做过统计,不编数字,[待补:管线的量化收益数据(日均入库量、全库中自动落的占比、单篇省时)]。另外这条管线从哪天开始搭的、中间最翻车的一次是什么,[待补:管线搭建时间线与最翻车的一次],等我有空把当时的记录翻出来再补。

局限也明说:目前只有公众号和抖音两个平台真能跑;小红书这种强登录的平台能不能稳定抓,我没验证过;转写只有文字没有画面帧,视频里「画面怎么拍的」这层信息现在完全丢了。

下一步我排了三件事:把 B 站提取器补上(B 站是我的对标库重灾区);给管线加个入库统计,把上面那笔账补齐;把深拆模式产出的选题延伸,直接喂给我自己的内容选题库,让「拆别人」和「做自己的」接成一条线。

最后说这条管线的出口。库里沉淀的东西不是躺着好看的——我从里面挑了一批值得公开的干货,改写之后传到了飞书的《博仔说·干货合集》,目前 27 篇,免费开放,当引流用。路径是抖音评论区扣「干货」,私信发飞书链接。这里有个合规细节顺带提醒:抖音判定站外引流很严,视频画面里出现的所有网址必须打码,链接只能走私信发。

如果你完全不想写代码,这章的思路照样能用,只是换成产品内的做法:把链接丢给豆包工作,让它「读这篇文章,写三句摘要,打五个标签,存进我的知识库」。目录结构和标签体系照着这章第四节的样子建,等这个动作你每周都要重复十次以上了,再回来考虑自动化也不迟。零代码路线的完整实操记录我还没跑,[待补:用豆包/WorkBuddy 完成同款「链接进知识库」任务的实操记录]。

一句话收尾:知识库的第一读者不是你,是你的 AI。想明白这个,你建库的每个动作都会不一样。

这套管线怎么搭起来的,思路同源——都是先把活拆清楚再交给 Agent,总纲写在给 Agent 派活的框架那篇。

基于开源项目 AlephAITech/DoubaoWorkGuide(豆包工作蓝皮书)二次创作 · 原作者:刘聪NLP / 甲木 / 苍何 / 袋鼠帝 / 摸鱼小李 · 侵删