微信公众号文章保存工作流。当用户发送以 https://mp.weixin.qq.com 开头的微信文章链接时,自动执行:抓取正文 → 保存为 Markdown 到知识库 →(可选)推送到飞书多维表格 →(可选)生成独立发芽笔记。触发词:微信文章链接、公众号文章、mp.weixin.qq.com。
收到微信文章链接后,按以下步骤执行。
变量名说明示例{{OBSIDIAN_ROOT}}Obsidian 根目录(末尾无斜杠)/Users/xxx/Documents/notes``{{WECHAT_ARTICLE_SUBPATH}}公众号文章保存子目录09_知识库/02_公众号文章``{{SPROUT_PROMPT_PATH}}发芽笔记提示词路径(默认已设,无需修改){{OBSIDIAN_ROOT}}/06_提示词库/文章内容处理/🌱发芽笔记.md``{{FEISHU_APP_TOKEN}}飞书多维表格 app_token(不使用则留空)Y98wbR6wAa86JgsXYoScqGLXnOf``{{FEISHU_TABLE_ID}}飞书 table_id(不使用则留空)tbljrD0L57sMwcP0``{{FEISHU_FIELDS}}飞书字段名映射(不使用则留空)见下方{{BAOYU_SCRIPT_PATH}}baoyu 脚本路径(可选,不填则用默认方式抓取)~/.openclaw/sandboxes/xxx/skills/baoyu-url-to-markdown/scripts/main.ts
飞书字段名映射格式( {{FEISHU_FIELDS}},JSON 格式):
json
{
"article_link": "文章链接",
"title": "标题",
"full_text": "全文",
"processing_status": "处理状态",
"publish_status": "发布状态",
"failure_reason": "失败原因",
"retry_count": "重试次数",
"notes": "附注"
}
触发条件:URL 以 https://mp.weixin.qq.com/ 开头
首选抓取方式:使用 baoyu-url-to-markdown(Chrome CDP 模式) bash
npx -y bun {{BAOYU_SCRIPT_PATH}} <url> -o /tmp/wechat-article.md --timeout 60000
fallback 链:
https://r.jina.ai/<url>browser 打开页面并抓取正文从 front matter 和正文中提取: title(标题)、 author(作者)、 published(发布日期,若无则用当天日期)
可额外提取: source(来源/公众号名),若无则回退为"微信公众号"
目录: {{OBSIDIAN_ROOT}}/{{WECHAT_ARTICLE_SUBPATH}}/
命名格式: {日期}_{作者}_{标题}.md
YYYYMMDD/ \ : * ? " < > |),过长截断至 100 字符以内-文件内容:使用抓取到的 Markdown(保留 front matter),文件开头必须保留原文链接。
冲突处理:若同名文件已存在,文件名末尾加 -1 -2 递增。
条件: {{FEISHU_APP_TOKEN}} 和 {{FEISHU_TABLE_ID}} 均已填写。
写入方式:
用 feishu_bitable_create_record 创建一条新记录
写入字段(字段名以 {{FEISHU_FIELDS}} 中配置为准):
文章链接:填入原始微信文章 URL(格式 https://mp.weixin.qq.com/s/xxx)标题:填入提取的文章标题全文:留空(可由后续 pipeline 回填)处理状态 = new发布状态 = draft失败原因 = 空重试次数 = 0非公众号链接复用:如果不是公众号链接,但用户明确要求"按公众号版本处理",同样写入此表,并在 附注 字段注明"按公众号版本处理"。
条件: {{SPROUT_PROMPT_PATH}} 文件存在。
路径: {{SPROUT_PROMPT_PATH}}
提示词核心框架为"材料发芽器"结构,包含:
读取提示词:从上述路径读取完整的发芽提示词内容
组织输入:将已保存的文章 Markdown 内容(不含发芽笔记部分)作为"材料"输入给模型
调用模型:使用默认模型生成发芽报告,使用以下格式组织 prompt: text
# 角色
[从提示词库读取的完整角色定义]
# 任务
[从提示词库读取的任务定义]
# 输入材料
[文章标题]
[文章正文内容]
# 输出要求
[从提示词库读取的输出要求]
保存发芽笔记文件:
{{OBSIDIAN_ROOT}}/{{WECHAT_ARTICLE_SUBPATH}}/{文章标题}__🌱发芽笔记.md
-__🌱发芽笔记 后缀-1 -2 递增回复用户,格式:
✅ 已保存
标题:《{文章标题}》
作者:{作者}
文章路径:
{{WECHAT_ARTICLE_SUBPATH}}/{文章文件名}.md发芽笔记:
{{WECHAT_ARTICLE_SUBPATH}}/{发芽文件名}.md(若已生成)飞书:已推送/未配置(按实际情况)
发芽:已生成/已跳过(按用户要求)
如有错误,清楚说明哪一步失败、原因是什么。
触发条件:用户明确要求删除某条记录。
执行步骤:
定位记录:用 feishu_bitable_list_records 查询多维表格,找出 record_id 和对应标题
{{FEISHU_APP_TOKEN}}{{FEISHU_TABLE_ID}}确认删除:告知用户找到的记录,请用户确认是否删除
执行删除: bash
lark-cli base +record-delete \
--base-token {{FEISHU_APP_TOKEN}} \
--table-id {{FEISHU_TABLE_ID}} \
--record-id <record_id> \
--yes
完成回复:告知用户删除结果
✅ 已删除:《{文章标题}》
-1 -2 后缀递增,避免覆盖。