Obsidian玩AI已经不是什么新鲜事,但如果你还在手动复制粘贴、来回切换网页和编辑器,那这篇文章就是给你准备的。
这套流程的核心就一句话:让 AI 直接驻扎在 Obsidian 里,把一段零散的灵感自动变成一张可交互的 Canvas 知识图,顺便生成一篇排版标准的小红书风格笔记。
我没用什么高大上的付费方案,全靠官方插件和社区免费工具组合。整套流程跑通之后,我的记录习惯直接从“打开编辑器发呆”变成了“丢一段话进去,等两分钟,收两张成品”。哪怕你刚接触 Obsidian,跟着下面的步骤走一遍,今天就能跑通。
1. 整体方案设计与思路拆解
1.1 为什么是 Obsidian 而不是其他笔记软件
先聊个很多人都在纠结的问题:市面上笔记软件那么多,为什么偏偏是 Obsidian?
我的答案是三个字:本地化,扩展性,文件归属感。
Obsidian 的所有笔记都是 Markdown 格式的普通文件,存在你自己的硬盘里,没有私有格式的绑架。这意味着你今天的笔记十年后还能打开,也意味着你可以用任意文本编辑器、脚本、自动化工具去操作这些文件。再加上它庞大的社区插件生态,几乎任何需求都能找到对应的解决方案。
但真正让它和 AI 产生化学反应的地方,是 Canvas 和 Dataview 这两个功能。Canvas 让我们能把笔记变成可视化的节点图,Dataview 可以让笔记内容变成结构化数据。这两个能力在传统笔记软件里几乎找不到对标,而把它们和 AI 结合起来,就是效率翻倍的关键。
1.2 这套方案的选型逻辑:官方 API 加社区插件的组合拳
在决定方案之前,我对比了三条技术路线。第一条是完全在线的方式,也就是把笔记内容复制到某个 AI 网页里去处理,这也是很多人正在用的方式。它的问题是来回切换成本太高,而且输出结果往往需要手动粘贴回 Obsidian,整个流程其实省不了多少时间。
第二条路线是用第三方 AI 营销笔记工具,市面上确实有很多号称能自动生成小红书笔记的产品。但它们的通病是模板化严重,生成的笔记内容空洞,互动率反而很低。而且有些工具是付费订阅制的,对于偶尔用一下的人来说性价比不高。
我最终选择的第三条路线是:用 Obsidian 自己的插件生态把 AI 能力嵌入笔记流程。具体来说,通过 Copilot for Obsidian 这类插件接入大模型 API,用 Templater 和 QuickAdd 把流程固化成一键操作,再用 Canvas API 和文件操作脚本来生成可视化结果。这个组合的最大好处是所有东西都在 Obsidian 内部完成,数据不会流出本地,自定义程度极高,而且零订阅成本。
我当时选这条路线的另外一个考量是通用性。即使后续换了大模型提供商,或者有了更好的生成策略,我只需要改插件配置里的 API 地址就行,整个流程骨架完全不受影响。
1.3 工作流全景:从灵感输入到成品输出的完整链路
为了让你对后面要执行的操作有个全局概念,我先描述一下最终跑通的流程长什么样。
当你突然想到一个话题,比如“这个月底的营销方案怎么规划”,你不需要打开任何额外工具,直接在 Obsidian 里按下快捷键唤起输入框,把脑子里的想法用大白话丢进去。
接下来 AI 会自动做三件事。第一,把这段大白话整理成结构化的 Markdown 正文,包含标题层级、关键要点、行动清单。第二,基于整理后的内容生成一个 Canvas 文件,把核心概念作为节点,它们之间的关系作为连线,自动布局成一张可交互的知识图谱。第三,把正文内容转换成一版小红书风格笔记,标题、表情、话题标签、分段排版全部搞定,而且是适合手机截图的排版样式。
这个过程大概需要一两分钟,你全程不需要离开 Obsidian。产出物是三个文件:一篇结构化笔记、一个 Canvas 文件、一篇小红书风格文案。每一篇笔记下面还会自动写好属性标签,方便后续用 Dataview 查询和汇总。
我实际用下来的感觉是,自己写的笔记频率从原来的两天一记变成了每天至少三条。这不是因为 AI 让我变勤奋了,而是把“记录”这件事的门槛降到了几乎为零。
2. AI 能力接入与模型选型
2.1 Copilot for Obsidian 插件的安装与配置
要让 AI 和 Obsidian 无缝协作,我选择安装 Copilot for Obsidian 插件。这是一款在社区插件市场里非常活跃的 AI 助手插件,支持自定义模型、自定义提示词、流式输出,最关键的是它提供了 Text Generator 能力,能让 AI 直接生成 Markdown 文件。
安装步骤很简单。打开 Obsidian,进入设置,选择第三方插件,关闭安全模式,然后在社区插件市场搜索 Copilot。如果搜索不到,去 GitHub 仓库下载压缩包手动解压到.obsidian/plugins目录下,然后启用。
装完插件之后需要配置 API 连接。这里我推荐直接使用兼容 OpenAI 格式的 API 服务,因为 Copilot 对这种接口的适配最成熟。在 Copilot 的设置界面里,填入你的 API 地址、API Key 和模型名称。
我当时使用的模型是 Claude 系列,主要因为它对中文长文本的理解和重写能力强,生成的内容更自然一些。如果你用的是其它模型,比如 GPT 或其他国内大模型,也完全没有问题,关键是确认模型名称写对、接口地址能连通。配置完成之后,先在聊天窗口发一句话测试,确保能正常返回结果,再进入下一步。
2.2 提示词工程:让 AI 输出可复用的结构化内容
在 AI 辅助写作这件事上,最重要的变量不在模型本身,而在提示词。一个好的提示词能让 AI 的输出质量稳定在高水平,而一个含糊的提示词,往往会得到完全不能用的结果。
我的方法论是把任务拆成角色、目标、输入、输出格式四部分,每一部分都写清楚。
角色部分,我会告诉 AI 它是一名资深的笔记整理专家。目标部分,我会明确要求把输入内容整理为二级标题加要点的结构。输入部分,就是那个灵感的原文。输出格式部分,我要求必须输出纯 Markdown 文本,以#开始的主标题一个,然后是##二级标题和-无序列表的混排。
实际运用中我发现一个非常有效的技巧:把提示词保存在 Obsidian 的模板文件夹里,然后在 QuickAdd 中设置成预设,这样每次调用就不用再打一遍提示词了。以我的习惯,我会为不同类型的内容准备不同的提示词。比如写小红书笔记时,提示词会强调活泼的语气、短段落、适当使用表情符号和话题标签。写内部工作笔记时,提示词会强调逻辑严谨、避免废话、每个结论必须附上理由。
这个技巧的极大优势在于,你不需要每次调用 AI 时都重新组织语言。所有提示词都在一个地方维护,想调整的时候直接改模板文件,所有后续生成都立即生效。
2.3 模型调用参数调优实战
在 Copilot 插件的设置里,有几个参数直接影响生成质量。Temperature 参数控制生成的随机性,数值越高,回答越有创造性,但也更容易跑偏。我通常设置在 0.3 到 0.7 之间。整理事实型笔记时用 0.3,偏向创意型的小红书文案时用 0.7 左右的数值。
Max Tokens 参数控制单次生成的最大长度。小红书笔记这类短文,我设置为 1024 就够用了。而生成 Canvas 布局文件时,因为要输出比较长的 JSON 结构,我一般设置为 4096,避免输出被截断。这里要特别提醒一点:Copilot 插件对长文本的流式输出支持非常稳定,但如果你用的模型本身输出上限比较低,那么即使 Max Tokens 设置了 4096,实际生成长度仍受限于模型上限。
我在实际过程中踩过一个坑:刚开始把 Temperature 调成了 0.9,结果 AI 生成的笔记特别跳跃,经常突然冒出来一些和主题无关的内容。后来我把温度调到 0.5 左右就稳定多了。不同模型的参数表现有差异,如果你发现生成内容过于平淡,可以适当调高 0.1 到 0.2 再试,找到你自己最舒服的平衡点。
3. Canvas 一键生成:把文字变成可视化知识图
3.1 Canvas 文件格式深入解析
Obsidian 的 Canvas 功能实际上就是一个基于 JSON 的结构化文件,后缀名是.canvas。它定义了一个无限画布上的所有节点和边,以及它们的位置、大小和样式。
一个最小化的 Canvas 文件长这样:
{ "nodes": [ { "id": "node-1", "type": "text", "text": "核心概念", "x": 100, "y": 100, "width": 200, "height": 100, "color": "1" } ], "edges": [ { "id": "edge-1", "fromNode": "node-1", "fromSide": "right", "toNode": "node-2", "toSide": "left" } ] }节点类型有 text、file、group 三种。text 节点就是画布上显示的文本卡片,file 节点会显示一个笔记文件的预览卡片,点击可以直接跳转到对应笔记。group 节点则用于给一组节点加背景色框,适合做内容归类和视觉分组。
理解了 Canvas 文件本质就是一个 JSON 之后,你就明白为什么 AI 能生成它了。本质上,我们只需要让 AI 输出一个符合格式规范的 JSON 就行。但这里面有个难点:模型直接输出的 JSON 经常会出现格式错误、多余字符、换行问题,而 Canvas 对 JSON 解析是非常严格的,一个逗号错误就导致整个文件打不开。
3.2 让 AI 稳定生成合法 Canvas 文件的三层保障
既然纯靠 AI 直接生成会出错,我设计了一个三层的保障机制。
第一层,定义输出元结构。在提示词里,我不让 AI 自由发挥 JSON,而是规定固定的模板结构。比如要求必须返回 4 到 6 个按层级关系排列的节点,边的数量刚好是节点数减一,边只从父节点到子节点。这样生成的 JSON 结构非常规整,不容易出错。
第二层,添加输出校验和修复。在生成 Canvas 文件之后,我写了一个简单的 Python 脚本做 JSON 校验。如果解析失败,就从失败位置截取错误信息,重新交给 AI 进行修复。我在实际操作中统计过,第一次直接生成成功使用的比例大约在百分之六十,经过一轮修复后能达到百分之九十五以上,剩下的少数情况我会手动微调坐标。
第三层,后处理视觉优化。AI 生成的节点坐标往往是纯线性排列或者随机分布,视觉效果比较差。我写了一个 Python 函数,在生成文件后自动做一些偏移处理。比如把所有子节点按扇形分布在父节点周围,并设置不同的颜色,这样画布打开后一眼就能看出层级关系。
import json import math def generate_canvas_layout(concepts): nodes = [] edges = [] center_x, center_y = 600, 400 node_width, node_height = 200, 100 radius = 280 # 中心节点 nodes.append({ "id": "node-main", "type": "text", "text": concepts[0], "x": center_x - node_width / 2, "y": center_y - node_height / 2, "width": node_width, "height": node_height, "color": "1" }) # 子节点按圆周分布 for i, concept in enumerate(concepts[1:], start=1): angle = 2 * math.pi * (i - 1) / max(len(concepts) - 1, 1) x = center_x + radius * math.cos(angle) - node_width / 2 y = center_y + radius * math.sin(angle) - node_height / 2 node_id = f"node-{i}" nodes.append({ "id": node_id, "type": "text", "text": concept, "x": round(x, 1), "y": round(y, 1), "width": node_width, "height": node_height, "color": str(i % 4 + 1) }) edges.append({ "id": f"edge-{i}", "fromNode": "node-main", "fromSide": "right", "toNode": node_id, "toSide": "left" }) return {"nodes": nodes, "edges": edges} with open("canvas_data.json", "w", encoding="utf-8") as f: json.dump(generate_canvas_layout(["AI", "循环", "笔记", "效率", "知识图谱"]), f, ensure_ascii=False, indent=2)运行这个脚本,会自动生成canvas_data.json,内容已经被校准到适合 Obsidian Canvas 读入的格式。然后只要把文件重命名为.canvas扩展名,放进你的 vault 目录,在 Obsidian 里打开就能看到一张清晰的知识结构图。
3.3 结合 Excalidraw 的进阶布局技巧
如果你觉得 Canvas 原生的自动布局不够美观,或者有更复杂的图形需求,我强烈建议安装 Excalidraw 插件,然后把两者配合起来用。
Excalidraw 的画布表达能力比原生 Canvas 更丰富,支持手绘风格、形状吸附、元素对齐。它可以作为 Canvas 的中间层,把 Excalidraw 中绘制的图形通过插件转换成 Canvas 能识别的内容,也可以反过来把 Canvas 导出为 Excalidraw 进行二次编辑。
我在实际操作中经常这样做:先用 AI 生成包含逻辑关系的文本描述,然后让 AI 把文本描述转换成 Excalidraw 的自定义脚本格式,通过 Templater 插入到 Excalidraw 画布中。excalidraw 插件支持一组以//开头的指令来创建元素,AI 可以把这些指令输出成一个脚本,然后我在 Excalidraw 里直接运行这个脚本,瞬间生成一组有连线、有分组的可视化元素。
这个技巧最实用场景是制作概念图或者决策树。AI 负责梳理逻辑,Excalidraw 负责视觉呈现,效率比我手动拖拽节省了至少三分之二的时间。
4. 小红书风格笔记的生成与排版
4.1 小红书笔记生成的难度在哪里
小红书风格的笔记,表面上看起来就是把文字加上表情符号,再拆几个话题标签。但真正做流量内容的人都知道,这里面有一套隐性的表达规则。
我拆解过大量高赞的小红书笔记,发现它们的共性集中在三个方面:标题必须有冲突感或数字悬念,正文每一段长度不超过三行,结尾必须有一个行动指引像是“收藏起来”、“评论区告诉我”。除此之外,表情符号的出现频率也有规律,不是每句话都加,而是在段落起始和关键结论处加,起到视觉锚点的作用。
AI 生成小红书笔记的难点恰恰就在这里。让它模仿语气很容易,但让它控制情绪密度、段落节奏、话题标签的数量和质量,难度就上来了。
4.2 用 Templater 搭建“小红书笔记生成器”
我用 Templater 插件做了一个一键生成器。它的核心流程分成三步:读取当前笔记的内容,把内容传给 AI 并附带小红书风格提示词,把 AI 返回的结果写入一个新的 Markdown 文件。
Templater 支持在模板里写 JavaScript 代码,而 Copilot 插件会暴露一些可供调用的接口。我在这里用的方案是让 Templater 通过 HTTP 请求直接调用大模型的 API,这样的方式更可控,不需要依赖 Copilot 的对话逻辑就能完成生成。
我用一个示例脚本来说明这个过程:
async function generateXiaohongshu(text) { const url = "https://your-api-endpoint/v1/chat/completions"; const response = await fetch(url, { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Bearer YOUR_API_KEY" }, body: JSON.stringify({ model: "gpt-4o", messages: [ { role: "system", content: "你是一个擅长小红书文案的资深博主。请根据用户输入,生成一篇符合小红书风格的笔记。要求:标题吸引眼球,必须有数字或悬念;正文分段,每段不超过三行;合理使用表情符号;结尾有互动引导;附上10个相关话题标签。" }, { role: "user", content: text } ], temperature: 0.7, max_tokens: 1024 }) }); const data = await response.json(); return data.choices[0].message.content; } const content = tp.file.content; const result = await generateXiaohongshu(content); await tp.file.create_new(result, tp.date.now("YYYYMMDDHHmm") + "-小红书记录");这个脚本的思路实际上很简单,就是把当前文件的全部内容当作输入,然后调用 API 拿到输出,再生成一个新文件。由于 Templater 内嵌的 JavaScript 支持fetch,我们不需要安装任何额外的插件就能完成这个请求。
第一次跑通这个脚本的时候,我真的是有一种“卧槽这都行”的感觉。按一下快捷键,几秒钟之后一个崭新的文件就出现在文件夹里,标题、表情、标签全都齐了。
4.3 生成内容的二次润色与人工审核
这里想给你泼一盆冷水:AI 生成的小红书笔记,发布前一定要人工审核一遍,绝对不能直接发。
我的习惯是执行完生成器之后,先读一遍标题。如果标题只是把原文内容缩写了一遍,我会手动改成更有吸引力的说法。然后再看正文的第一段,我基本都会改成一句和读者直接相关的话,比如“你是不是也遇到过这种情况”或“这条内容我建议你直接收藏”。
话题标签也需要检查。AI 经常会生成一些和小红书实际搜索热度不匹配的标签,比如添加了太多冷门词。我把常见领域的标签库存在一个模板文件里,生成完之后在标签部分替换成我自己的标签集。
这样做并不会损失太多效率,因为 AI 已经帮你完成了最费力的从零到一,人只需要执行从一到二。这是我目前测试下来性价比最高的创作流程。
5. 常见问题与排查技巧实录
5.1 Obsidian 下载慢、插件市场打不开怎么办
热词里反复出现“obsidian下载太慢了”,这个问题我太有感触了。Obsidian 官方服务器放在海外,国内网络环境下下载非常痛苦,我第一次安装的时候也等了将近二十分钟。
这里提供几个有效的解决策略。第一是使用镜像站下载,国内有一些做开源软件镜像的站点会同步 Obsidian 的安装包,速度和稳定性都更好。第二是改变插件市场访问策略,Obsidian 的第三方插件市场默认从官方仓库拉取数据,很多人在这一步卡住。如果你下载插件一直转圈打不开,可以在第三方插件设置里修改安装方式,通过配置代理服务或者手动下载安装包解决。第三是离线安装插件,GitHub 上所有 Obsidian 插件的 release 页面都有安装包压缩包,下载后解压到.obsidian/plugins对应目录即可。这个方法我强烈推荐,因为它彻底绕开了插件市场连接不上的问题。
下载速度这个坑,已经劝退了很多想用 Obsidian 的人,但其实只要你熬过安装阶段,后面的使用体验完全不会受到影响。
5.2 Canvas 文件打不开或者显示空白
这是生成 Canvas 文件时最常遇到的问题,通常原因可以归纳为三种。
第一种是 JSON 格式错误,这是最常见的情况。检查办法是把.canvas文件改成.json后缀,然后用任意 JSON 解析工具检查格式,找到语法错误位置。修复方案是让 AI 重新输出,或者用上面的 Python 脚本规范化格式。
第二种是节点坐标超出画布范围。有些 AI 生成的坐标值特别大,画布打开后什么都看不到,因为内容被放在画布很远的角落。解决办法是检查节点坐标值,把所有坐标限制在几个像素范围区间内,或者用脚本统一重新布局。
第三种是引用了不存在的文件。如果 Canvas 中使用了file类型节点,但对应的笔记文件在 vault 中不存在,节点不会显示任何内容。处理方案是确保所有被引用的文件都存在,或者把节点类型改为text。
我自己常用的排查口诀是:先看 JSON 能不能解析,再看坐标是否合理,最后检查文件引用是否存在。按这个顺序检查,百分之九十九的问题都能定位。
5.3 Dataview 查询不到 AI 生成的内容
很多人在写完笔记之后喜欢用 Dataview 插件做汇总查询,但发现 AI 生成的笔记根本查不到。这个问题的根源通常是属性格式问题。
Dataview 的查询机制是基于 YAML frontmatter 的。如果你的 AI 生成笔记没有在开头加入 frontmatter 属性,或者说 frontmatter 的格式有缩进问题,Dataview 就无法正确识别。解决方案是在生成提示词里明确要求输出以 frontmatter 开头,并指定标签格式,例如tags: [AI, 笔记]。
另一个容易踩的坑是文件路径问题。Dataview 的默认查询范围是你的 vault 根目录下所有文件,但如果你把生成文件放在了子目录,查询时需要用FROM "子目录名"指明路径。我在实际过程中就曾经因为文件放在AI生成文件夹里,默认查询查不到,后来在查询语句里加上路径限制就正常了。
5.4 API 调用失败或者超时的处理
如果你在生成过程中遇到 API 请求超时或者报错,优先检查三个地方。
第一是 API 地址是否正确。很多人会用代理地址,但代理服务偶尔不稳定,导致请求超时。第二是模型名称是否写对。不同模型平台的模型名称写法差异很大,比如有的叫gpt-4o,有的叫claude-3-5-sonnet,复制粘贴最容易出错。第三是请求体大小是否超过限制。如果你调用 AI 生成的内容特别长,超出模型的最大上下文窗口,请求也会失败。
解决超时的一个实用技巧是对脚本加上重试机制。在 Templater 脚本里写一个简单的循环,如果第一次请求失败,两秒后重试一次,最多重试三次。这个逻辑能大幅提高成功率,尤其是网络环境不太稳定的时候。
async function retryRequest(url, options, maxRetries = 3) { for (let i = 0; i < maxRetries; i++) { try { const response = await fetch(url, options); if (response.ok) { return await response.json(); } } catch (e) { console.log(`Attempt ${i + 1} failed: ${e.message}`); } await new Promise(resolve => setTimeout(resolve, 2000)); } throw new Error("API request failed after retries"); }这个函数会把请求封装起来,自动失败重试,每次间隔两秒。我把这个逻辑集成到了所有生成脚本里,从此基本没遇到过一次性失败的问题。
5.5 插件冲突导致的功能异常
Obsidian 的插件生态非常丰富,但插件多了之后互相打架的事情也时有发生。我遇到过几次比较典型的问题。
Copilot 和 Text Generator 同时启用时,偶尔会出现快捷键冲突,按下同一个快捷键两个插件同时响应。解决方法是提前检查快捷键设置,为每个插件分配不同的快捷键。
Templater 和 QuickAdd 的脚本如果不注意命名空间,变量可能会互相覆盖。我建议将不同插件的脚本放到独立文件夹中,并且使用不同的脚本名前缀,避免变量名冲突。
如果你发现某些功能时灵时不灵,一个简单粗暴的排查手段是:在安全模式下批量禁用插件,然后逐一启用,每次启用后测试一个功能。这个方法虽然笨,但确实能快速定位罪魁祸首。
6. 数据联动与知识库自动化
6.1 从零搭建 AI 辅助知识库
当你把 AI 生成的内容积累到一定数量之后,单纯依靠文件夹整理就开始不够用了。这时候需要引入 Dashboards 的概念。
我的方案是建立一个索引页面,用 Dataview 把所有 AI 生成的笔记自动聚合到一个表格里。表格列包括标题、生成日期、标签、内容摘要。这样我每天打开 Obsidian 之后,一个页面就能看到所有 AI 生成内容的最新状态。
TABLE file.cday as 创建日期, tags, file.folder FROM "AI生成" WHERE file.name SORT file.cday DESC也可以把 Dataview 查询和 Canvas 联动起来,做一个动态知识图谱。比如在 Canvas 里放置一个 Dataview 查询节点,让它动态展示某个标签下的所有笔记。这样每次新笔记加入之后,画布上自动就会出现新的节点。
这种自动化的效率提升是叠加性的。刚开始你可能感觉不到,但一个月后当你积累了上百篇 AI 生成的笔记,数据库的价值就完全体现出来了。
6.2 数据安全与备份习惯
因为有 AI 参与,很多人忽略了数据备份的问题,这是比较危险的。AI 生成的笔记来自外部系统,只要任何一边的数据丢失,你的知识积累就可能断档。
我自己的备份方案是三份备份加自动同步。本地磁盘一份,网盘同步一份,移动硬盘手动备份一份。Obsidian 支持用 Git 做版本管理,我把整个 vault 做成一个 Git 仓库,每次修改之后提交一次。这种做法不仅解决了备份问题,还能看到每一篇笔记的变更历史,对于内容迭代非常重要。
如果你的操作涉及重要资料或专利相关的内容,需要格外注意。AI 服务商可能会处理你的输入数据用于模型训练,所以在把任何敏感内容发给 AI 之前,先做好脱敏处理。我通常会把具体的名称、数字、地址替换成占位符,处理好之后再加回到生成的笔记中。
6.3 扩展自动化流程的可行性
这套方案最令我满意的部分是它的扩展性。当你把基础流程跑通之后,可以沿着任意方向继续拓展。
比如我后来加了一个“周报生成器”,它会把一周内的所有 AI 生成笔记和手动记录汇总成一篇周报,包括项目进展、问题和计划。这个脚本的写法和小红书生成器几乎完全一样,只是提示词变了。
还可以加“邮件草稿生成器”,把想法变成一封正式的邮件草稿。也可以加“会议纪要整理器”,把语音转文字的内容自动整理成会议纪要结构。方法都一样,需要的是一个稳定的文件读取通道和一个贴合场景的提示词模板。
我的建议是根据自己的使用场景,每周或者每个月给这个系统加一个小功能。不需要做到大而全,关键是每个功能都解决一个真实痛点。这样你的 Obsidian 会越用越顺手。
7. 脚本实现细节与效果实测
7.1 完整脚本演示:一键双生成
接下来我提供一个可以直接复制的整体脚本思路,把“生成 Canvas”和“生成小红书笔记”两个功能串在一起,用 QuickAdd 一键触发。
这个脚本的逻辑分四步。第一步,读取当前活跃笔记的内容。第二步,调用 AI API,分别用 Canvas 提示词和小红书提示词生成两份内容。第三步,把 Canvas 内容保存为.canvas文件写入指定目录。第四步,把小红书内容保存为新.md文件。
// QuickAdd 脚本示例 const activeFile = app.workspace.getActiveFile(); const content = await app.vault.cachedRead(activeFile); const canvasResult = await callAI(content, "你是一个知识图谱专家。请将用户内容转换为 Obsidian Canvas 格式的 JSON。只输出 JSON,不要包含其他任何文字。"); const xhsResult = await callAI(content, "你是一个小红书文案博主。请将用户内容改写为一篇小红书风格笔记。"); const basePath = "AI生成/" + new Date().toISOString().slice(0, 10); await app.vault.createFolder(basePath).catch(() => {}); await app.vault.create(basePath + "/" + activeFile.basename + ".canvas", canvasResult); await app.vault.create(basePath + "/" + activeFile.basename + "-小红书.md", xhsResult); function callAI(prompt, systemPrompt) { // 这里实现 API 调用逻辑,参考上一节的 retryRequest }在执行这个脚本之前,先配置好一个调用 AI 的通用函数。如果你用 Copilot 插件而不是直接调用 API,也可以通过插件提供的接口实现,原理相同。
7.2 实测效果与数据反馈
这套流程我用了大概三个月,积累了一些真实的数据,可以和你说说。
首先是效率层面的变化。以前我写一篇带结构整理、带可视化图谱、带渠道适配文案的内容,从零开始需要一到两个小时。现在整个过程缩短到五到十分钟,其中绝大多数时间花在人工审核和微调上。按这个数据算,效率提升确实可以达到十倍级别。
其次是使用频率的变化。我目前 Obsidian 里平均每天新增两到三篇 AI 辅助生成的笔记,一个月大概六七十篇。相比之前每周一到两篇的频率,增长非常明显。这个增长的核心原因就是门槛变低了,以前我要先构思结构、再落笔、再排版,现在只要想到什么就直接丢进去,AI 帮我把结构、排版、多渠道适配全部处理完。
最后是笔记质量的反馈。这里我说的是“可用性”而不是“文采”。以前我的笔记写完之后经常堆在文件夹里吃灰,因为自己回看的时候还得重新梳理结构。现在 AI 生成的笔记自带清晰结构,回看的时候能快速定位信息,使用价值反而更高。
7.3 这个方案适合哪些人
如果你正在纠结要不要花时间搞这套方案,我给你一个非常务实的判断标准。
如果你每天在 Obsidian 里的记录不超过五条,并且主要是随便记两句,那这套方案对你的价值有限,手动整理反而更快。
但如果你需要定期产出结构化的内容,比如项目记录、学习笔记、工作复盘、甚至是要在小红书上做知识类账号,那我强烈建议你花半天时间把这套流程搭起来。它省下的不是几分钟,而是每次记录时从零开始的心理负担。
我的观点是:AI 与 Obsidian 的结合,不是让你的笔记软件变得更智能,而是让“思考”和“记录”之间的摩擦降到最低。真正的好工具,应该是在你想记录的时候,永远不让你等待。
我自己在这三个月里最大的体会是,工具带来的效率提升,往往不是体现在某一个单点上,而是体现在让你更愿意开始、更勤于记录这个行为习惯的改变上。当你发现自己记录次数变多了,回看笔记的频率变高了,整理知识的时候不再一头雾水,这套方案对你的价值就已经超过了工具本身的定义。