通过整合 Obsidian 笔记软件与 Claude AI 的能力,我们可以构建一套高效的内容自动生成工作流。本教程将详细讲解如何利用 Node.js 脚本,实现从输入主题到产出多风格带图文章的全程自动化。
环境准备:搭建自动化技术栈
实现全自动写作,需要组合使用 Obsidian 编辑器、其功能插件以及 Claude API,为核心流程提供支持。
第一步:安装 Obsidian 核心插件
Obsidian 的基础功能可通过社区插件大幅扩展,实现自动化需要依赖 Templater 和 QuickAdd:
- 打开 Obsidian,进入「设置」→「社区插件」。
- 关闭「安全模式」,随后搜索并安装 Templater 与 QuickAdd 插件,启用后重启 Obsidian。
| 插件名称 |
启用后位置 |
主要功能 |
| Templater |
左侧活动栏图标或命令面板 (Ctrl/Cmd + P) |
提供动态模板(如自动插入日期、文件名),需配合模板文件使用。 |
| QuickAdd |
左侧活动栏或通过快捷键唤出 |
提供“捕捉”功能,可快速创建笔记、运行脚本,通常表现为一个输入框。 |
注意:Templater 插件需在设置中开启「Enable Folder Templates」选项,否则无法正常执行自动化脚本。

第二步:配置 Node.js 开发环境
调用 Claude API 需要运行 JavaScript 脚本,因此需预先配置 Node.js 环境:
- 访问 Node.js 官网 下载并安装 LTS 版本(推荐 18.x 或更高)。
- 安装完成后,在终端输入
node -v,出现版本号即表示安装成功。

- 创建项目目录并初始化,安装必要的依赖包:
mkdir auto-writer && cd auto-writer
npm init -y
npm install @anthropic-ai/sdk axios md5 fs-extra openai
第三步:获取 Claude API 密钥
API 密钥是与 Claude 服务交互的凭证:
- 访问 Anthropic 控制台 注册并登录。
- 进入「API Keys」页面,点击「Create Key」。
- 为密钥命名(如「Obsidian-Writer」),并妥善保存生成的一次性密钥字符串。

安全提示:API 密钥需严格保密,建议通过环境变量管理,避免硬编码在脚本中。
第四步:创建环境变量配置文件
在 auto-writer 项目根目录下,新建一个名为 .env 的文件,并填入以下内容:
ANTHROPIC_API_KEY=你的Claude密钥
OPENAI_API_KEY=你的OpenAI密钥(用于生成图片)

注意:如果无需生成图片,可省略 OPENAI_API_KEY。请确保 .env 文件位于项目根目录,否则程序可能无法读取密钥。
编写核心脚本:定义AI工作流
环境就绪后,需要编写核心的智能体脚本。该脚本将定义 AI 的完整工作逻辑。
核心逻辑:从指令到成品的自动化流程
当用户输入类似 /write 人工智能发展趋势 的指令时,系统将自动执行以下序列:
- 调用 Claude 分析主题,并抓取2-3篇相关的参考文章。
- 基于资料,生成「专业报告」、「科普短文」、「自媒体文案」三种不同风格的草稿。
- 为每篇文章生成配图提示词,并调用图像生成API(如DALL-E 3)创建配图。
- 将所有内容按 Markdown 格式排版,并自动写入指定的 Obsidian 笔记文件。
完整脚本实现与解析
在 auto-writer 文件夹中创建 writer-agent.js 文件,并复制以下代码:
// 1. 导入依赖库
import Anthropic from '@anthropic-ai/sdk';
import axios from 'axios';
import fs from 'fs-extra';
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const md5 = require('md5');
require('dotenv').config(); // 加载环境变量
// 2. 初始化 Claude 客户端
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY
});
// 3. 定义网页内容抓取工具函数
async function fetchWebContent(url) {
try {
const response = await axios.get(url);
return response.data; // 返回HTML,Claude具备提取正文能力
} catch (error) {
return `抓取失败:${error.message}`;
}
}
// 4. 定义图片生成工具函数
async function generateImage(prompt, imagePath) {
const OpenAI = require("openai");
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY
});
const response = await openai.images.generate({
model: "dall-e-3",
prompt: prompt,
size: "1024x1024",
quality: "standard"
});
// 下载图片到本地
const imageResponse = await axios.get(response.data[0].url, {
responseType: 'arraybuffer'
});
await fs.writeFile(imagePath, imageResponse.data);
return imagePath;
}
// 5. 主函数:接收主题并启动写作流程
async function main(topic) {
// 创建Obsidian笔记文件路径(请替换为你的实际库路径)
const vaultPath = '/Users/你的用户名/Documents/Obsidian Vault';
const notePath = `${vaultPath}/AI写作-${topic}-${Date.now()}.md`;
// 定义Claude的系统指令(核心提示词)
const systemPrompt = `你是专业写作助手,需按以下步骤处理用户主题"${topic}":
1. 用 fetchWebContent 工具抓取3篇相关中文文章
2. 生成三种风格文章:
- 专业版:500字,引用数据,适合行业报告
- 科普版:300字,比喻拟人,适合公众号
- 小红书版:200字,emoji开头,带话题标签
3. 为每篇生成配图prompt,调用 generateImage 工具
4. 用Markdown排版后通过 appendToObsidianNote 写入笔记`;
// 调用 Claude API 执行任务
const message = await anthropic.messages.create({
model: "claude-3-5-sonnet-20241022",
max_tokens: 4096,
tools: {
fetchWebContent,
generateImage,
appendToObsidianNote: async (path, content) => {
await fs.appendFile(path, content);
return "写入成功";
}
},
system: systemPrompt,
messages: [{ role: "user", content: "开始执行" }]
});
console.log("任务完成!笔记路径:", notePath);
}
// 从命令行参数接收主题
const topic = process.argv[2];
if (!topic) {
console.error("请提供主题,例如:node writer-agent.js \"AI写作趋势\"");
process.exit(1);
}
main(topic);

代码关键点说明:
tools 对象:向 Claude 声明了可调用的外部工具函数。
systemPrompt:严格规定了 AI 的任务步骤与输出格式,确保结果符合预期。
appendToObsidianNote:自定义工具函数,用于将生成的内容追加写入 Obsidian 笔记文件。
配置 Obsidian 快捷命令:创建触发入口
脚本完成后,需在 Obsidian 中配置便捷的触发方式。
方法一:使用 QuickAdd 宏命令(推荐)
- 打开 Obsidian 设置,进入「QuickAdd」设置项,点击「Manage Macros」。
- 新建一个宏,命名为「AI 全自动写作」。
- 点击「Add Action」→ 选择「User Script」→ 指向之前创建的
writer-agent.js 文件。
- 点击「Add Argument」→ 选择「Prompt User」→ 输入提示文字如「请输入写作主题」。
- 返回 QuickAdd 主界面,点击「Add Choice」添加刚创建的宏,并可为其设置快捷键(如
Ctrl+Shift+W)。

方法二:使用 Templater 模板(备用方案)
若 QuickAdd 配置遇到问题,可使用 Templater 作为备用方案:
- 在 Obsidian 中新建笔记,输入以下内容,并将其保存为
AI写作模板.md(存放于 .obsidian/templates 目录):
<%*
const topic = await tp.system.prompt("请输入写作主题");
const command = `node /path/to/auto-writer/writer-agent.js "${topic}"`;
require('child_process').exec(command, (error, stdout, stderr) => {
if (error) {
new Notice("执行失败:" + error.message);
return;
}
new Notice("写作任务已启动,完成后将自动创建笔记");
});
%>
- 进入 Templater 插件设置,在「Template Hotkeys」中为该模板绑定一个快捷键。

注意:请将 /path/to/auto-writer 替换为你电脑上的实际项目绝对路径。
效果测试:一键生成多风格内容
完成所有配置后,即可进行测试。以「量子计算的未来」为主题:
- 按下
Ctrl+Shift+W 调出 QuickAdd 输入框,输入主题。
- 系统将在后台运行脚本,终端会显示抓取、生成、配图等日志。
- 约5-8分钟后,Obsidian 库中会自动生成一篇新的笔记,内含:
- 专业报告版:引用行业数据与研究报告。
- 科普短文版:运用比喻手法解释复杂概念,并配有风格轻松的插图。
- 自媒体文案版:以吸引眼球的 emoji 和话题标签开头,适合社交媒体传播。

常见问题排查
问题 1:Claude API 调用失败
问题 2:Obsidian 笔记未生成
- 排查步骤:
- 检查终端错误输出,确认文件写入权限。
- 核对脚本中
vaultPath 设置的 Obsidian 库路径是否为绝对路径且正确无误。
问题 3:图片生成失败
- 解决方案:
- 若无 OpenAI API 密钥,可暂时注释掉
generateImage 相关调用。
- 可替换为国内可访问的图像生成 API,例如百度文心一言,这需要对
generateImage 函数进行相应改造,涉及网络请求和 API 调用。
拓展应用与思维提升
本方案不仅是一个写作工具,更展示了一种通过 自动化 流程连接不同技术组件来解决复杂任务的方法论。这种思路可以迁移至多种场景:
- 学术研究:自动抓取最新文献并生成研究综述。
- 内容运营:批量生产适配不同平台调性的宣传素材。
- 知识管理:快速整理会议纪要或学习笔记,并形成结构化文档。
掌握流程设计与工具整合的能力,将使你在人机协同的创作模式中占据主动。