你的收藏夹里有多少条"稍后阅读"?100 条?500 条?那些你在通勤路上、午饭间隙、睡前刷到的好文章,收藏的瞬间你觉得很重要,三天后连标题都想不起来。问题不在于你不爱学习,而在于"收藏"和"理解"之间缺一条管道。这篇教程教你用一个周末搭起来。
核心思路:30 秒版
如果你只想知道这套系统是什么,一句话:
在微信里把链接发给一个转发插件,后台自动抓正文、用本地大模型生成摘要和标签,最后写成一篇结构化笔记进入你的 Obsidian 收件箱。
整个过程:发链接 5 秒,后台处理 15 秒,你什么都不用管。
| 工具 | 用途 | 费用 |
|---|---|---|
| Docker Desktop | 运行 n8n 容器 | 免费 |
| n8n(自托管) | 自动化编排引擎 | 免费 |
| 微信转发插件 | 把微信消息转成 webhook | 免费 |
| Ollama | 本地运行大语言模型 | 免费 |
| Obsidian | 知识库,收纳最终笔记 | 免费 |
总月费:0 元。数据全程不出你的电脑。
架构总览
数据怎么从你的手机跑到 Obsidian 里:
手机上看到好内容 → 复制链接 → 发给微信转发插件
|
v
n8n Webhook (POST /knowledge-inbox)
|
v
Normalize Input -- 提取 URL + 备注
|
v
Fetch Content -- X 走结构化接口
其他走通用 HTML 提取
|
v
Ollama qwen3:8b -- 摘要 + 标签 + 分类
|
v
Build Markdown → Write to Obsidian/Inbox/
一共 6 个节点,单工作流,没有分叉。下面逐步搭建。
Step 1 — 启动 n8n
n8n 是一个开源的自动化编排工具,你可以把它理解成免费版的 Zapier,但跑在你自己的电脑上。我们用 Docker 启动它。
安装 Docker
如果没装过,去 Docker 官网 下载 Docker Desktop。Mac / Windows / Linux 都支持。
一行命令启动
docker run -d --name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-v /path/to/your/obsidian/vault/Inbox:/files/inbox \
-e N8N_RESTRICT_FILE_ACCESS_TO="/files/inbox" \
-e N8N_BLOCK_ENV_ACCESS_IN_NODE=false \
--restart unless-stopped \
n8nio/n8n
你需要改的只有一个地方:把 /path/to/your/obsidian/vault/Inbox 换成你自己的 Obsidian Vault 下的 Inbox 目录绝对路径。
关键参数解释:
-v n8n_data:/home/node/.n8n— 数据持久化,Docker 重启后 workflow 还在-v ...:/files/inbox— 把 Obsidian Inbox 挂进容器,n8n 才能往里写文件N8N_RESTRICT_FILE_ACCESS_TO— 安全限制,只允许写 Inbox 目录--restart unless-stopped— 系统重启后 n8n 自动恢复
启动后访问 http://localhost:5678,看到 n8n 界面就说明成功了。
Step 2 — 安装 Ollama
Ollama 让你在本地跑大语言模型,不需要 API key,不花钱。
# Mac 用 Homebrew
brew install ollama
# 或者去 ollama.com 下载安装包
# 然后拉取中文模型
ollama pull qwen3:8b
拉完大约 5GB。验证一下:
curl http://localhost:11434/api/tags
能返回包含 qwen3:8b 的 JSON 就说明就绪。
llama3.2:3b(2GB,速度更快,中文稍弱)。
Step 3 — 配置微信转发
这一步的目标:让你在微信里发的链接自动变成一个 HTTP POST 请求打到 n8n。
核心配置只有三个字段:
微信转发插件配置(最小可用版){
"knowledgeInbox": {
"enabled": true,
"webhookUrl": "http://localhost:5678/webhook/knowledge-inbox",
"successReply": true
}
}
enabled— 开启知识收纳直连模式webhookUrl— 收到消息后 POST 到这个地址successReply— 处理成功后微信端收到确认回复
插件会自动做两件事:从消息里提取第一个 URL,剩余文本作为备注。所以你在微信里发这种格式就够了:
https://example.com/article 这篇关于 Agent 编排的文章值得细读
curl 来发送链接。微信转发插件只是对中文用户摩擦最低的方案。
Step 4 — 搭建 n8n 工作流
回到 n8n 界面,创建一个新 workflow。整条链路是 6 个节点串联:
4.1 Webhook 节点
添加一个 Webhook 节点,Method 选 POST,Path 填 knowledge-inbox。这就是你的入口 URL:http://localhost:5678/webhook/knowledge-inbox。
4.2 Normalize Input
用一个 Code 节点统一解析输入。不管消息是从 query 还是 body 传来的,都提取出四个字段:url、note、author、source。
4.3 Fetch Content
这是最容易翻车的环节。我的策略是分平台处理:
- X / Twitter — 走结构化接口提取,避免抓到登录页或 JS 降级页面
- 其他网页 — 走通用 HTML 提取:先去掉
script / style / noscript噪音,再从og:title、h1、article标签中提取标题和正文
如果不做这一步处理,你会遇到:标题变成一大串 CSS、正文只有 "JavaScript 不可用"、写进 Inbox 的笔记根本不能看。
fetch_failed,备注里的内容仍然会写入笔记。养成发链接时附一句备注的习惯,就是最好的兜底。
4.4 Prepare Prompt + Ollama 摘要
把标题、正文、备注、来源拼成一段 prompt,发给本地 Ollama:
Ollama HTTP Request 配置要点Method: POST
URL: http://host.docker.internal:11434/api/chat
Body: {
"model": "qwen3:8b",
"messages": [
{"role": "system", "content": "你是知识整理助手。只输出严格 JSON。"},
{"role": "user", "content": "输出 summary/tags/category..."}
],
"stream": false
}
要求 Ollama 输出三个字段:
summary— 一句话中文摘要tags— 5-10 个标签,数组格式category— 从预设分类中选一个(AI 技术、产品思维、技术实操等)
host.docker.internal?因为 n8n 跑在 Docker 容器里,容器内的 localhost 是容器自己,不是你的 Mac。host.docker.internal 是 Docker Desktop 提供的特殊域名,指向宿主机。
JSON 解析一定要做 fallback。LLM 不保证输出完美的 JSON — 有时候会多一层 markdown 代码块包装,有时候会夹杂解释文字。做三层防御:去掉 ```json 包装 → 正则提取 {...} → 解析失败用默认值兜底。让管道在 LLM 犯错时也能继续运行。
4.5 Build Markdown + Write
把所有信息拼成一篇 Obsidian 友好的 Markdown:
生成的笔记格式---
title: "文章标题"
date: 2026-05-22T10:30:00.000Z
type: article
category: AI技术
tags:
- Agent
- 编排框架
- 自动化
source: "https://..."
status: inbox
---
> **摘要**: AI 生成的一句话摘要
## 我的备注
你发链接时写的那句话
## 原文内容
(提取后的完整正文)
---
原文链接: https://...
最后用 n8n 的 Write File 节点写入 /files/inbox/(映射到你本地的 Obsidian Inbox)。文件名格式 标题-时间戳.md,保证不重名。
Step 5 — 端到端测试
不要一上来就从手机测。先用 curl 打 webhook,排除网络问题:
curl -X POST http://localhost:5678/webhook/knowledge-inbox \
-H 'Content-Type: application/json' \
-d '{
"url": "https://example.com",
"note": "第一条 smoke test",
"author": "test",
"source": "curl"
}'
成功的返回:
预期响应{
"ok": true,
"title": "Example Domain",
"category": "未分类",
"noteFileName": "Example Domain-20260522-xxxxxx.md"
}
然后打开 Obsidian,在 Inbox 里看到新笔记,说明主链路已通。再从微信发真实链接验证完整流程。
生成的笔记能做什么
跑通之后,你拿到的不再是收藏夹里一个死链接,而是一篇:
- 可以搜索 — Obsidian 全文检索,tag 过滤
- 可以继续提问 — 打开笔记用 AI 助手深入讨论
- 可以追加思考 — 你的备注 + AI 摘要 + 原文三层信息
- 可以聚合管理 — Dataview 插件按 category / tag / date 汇总
完整的知识流动应该是这样的:
白天刷到内容:
看到链接 → 发给微信转发插件(5 秒)
后台自动处理:
转发插件 → n8n 提取正文 → Ollama 摘要打标 → 写入 Inbox
晚上深度工作:
打开 Obsidian → 看摘要决定是否深读 → AI 助手继续沉淀
第一层是自动收纳,第二层是主动理解。这套系统解决的是第一层 — 让碎片输入不再丢失。第二层需要你自己来,但至少素材已经整整齐齐地等着你了。
进阶方向
主链路跑通之后,可以按需扩展:
- 图片归档 — 在 Fetch 阶段提取图片 URL,写成 Markdown 图片引用。更进一步可以下载到本地
assets/目录,实现真正离线可用 - 去重 — 在 Normalize 阶段检查 URL 是否已存在,避免重复入库
- 周刊汇总 — 新增一个定时工作流,每周聚合 Inbox 中的笔记生成周报
- 多入口 — 同时接 Telegram Bot、iOS 快捷指令、浏览器扩展
但建议:先把文本版跑稳,再加功能。一个能稳定运行的最小系统,比一个功能很多但经常坏的系统有用得多。
总结
- 核心链路 6 个节点:Webhook → Normalize → Fetch → Prompt → Ollama → Write
- 技术栈:Docker + n8n + Ollama qwen3:8b + Obsidian,全部免费
- 从发链接到笔记入库,15-25 秒,数据全程不出本地
- 关键设计:分平台抓取策略 + JSON 三层解析防御 + fallback 兜底
- 一个周末可以搭完并跑通,先跑最小版本,再按需扩展
收藏夹坟场的问题不在于你收藏得太多,而在于收藏之后没有下一步。这条管道就是那个"下一步" — 自动的、免费的、完全属于你自己的。