X + n8n自动化工作流:从热点采集到微信公众号草稿

如果你关注 AI、开发工具或行业热点,X(原 Twitter)往往是信息最早出现的地方,但直接刷时间线会遇到三个问题:内容太碎、重复太多、重要讨论容易被淹没。把 X、Horizon 和 n8n 组合起来,可以建立一条从“监控账号”到“生成文章、生成封面、格式检查、推送微信公众号草稿”的自动化内容流水线。

本文参考 IDE/n8n 项目的真实工作流和其中的 Horizon 采集模块整理。现有项目已经具备文章生产、封面生成、格式检查和微信草稿推送流程;Twitter/X 属于 Horizon 支持的可选信息源,需要按本文配置后接入。

一、最终工作流能做什么

  1. 定时监控指定 X 账号的新推文;
  2. 采集推文正文、作者、发布时间、点赞、转发、回复和浏览数据;
  3. 可选抓取高质量回复,让 AI 同时理解社区观点;
  4. 与 Hacker News、RSS、GitHub 等信息源合并并去重;
  5. 使用 AI 对信息进行评分、筛选和中文摘要;
  6. 由 n8n 读取当天摘要,改写为 1500 至 2500 字文章;
  7. 生成对应封面图并执行格式稳定性检查;
  8. 把文章与封面匹配后推送到微信公众号草稿箱。

二、整体架构

X 账号
  │
  ▼
Apify Twitter Actor
  │ 推文、互动数据、可选回复
  ▼
Horizon
  ├── 多源采集
  ├── 去重与 AI 评分
  ├── 中文摘要
  └── data/summaries/archive/当天摘要.md
  │
  ▼
n8n
  ├── 生产文章
  ├── 生图
  ├── 格式稳定性自检
  └── 推送微信草稿

这套方案把“信息采集”和“内容生产”拆成两层。Horizon 负责接触外部信息源并输出稳定的归档文件,n8n 负责可视化编排、AI 改写、文件流转和平台发布。两者通过固定的摘要路径衔接,任何一层失败都能单独排查。

三、Horizon 如何采集 X

项目中的 TwitterScraper 通过 Apify 的 Twitter Actor 获取内容,避免把 X 的复杂页面抓取逻辑直接塞进 n8n。你需要准备 Apify Token,并把要监控的用户名写入 Horizon 配置。

1. 配置环境变量

APIFY_TOKEN=your-apify-token
DEEPSEEK_API_KEY=your-deepseek-api-key

密钥应写入 horizon/.env 或部署平台的密钥管理器,不要写进工作流代码、配置示例或公开仓库。

2. 添加 Twitter/X 信息源

{
  "sources": {
    "twitter": {
      "enabled": true,
      "users": ["openai", "karpathy", "ylecun"],
      "fetch_limit": 100,
      "fetch_reply_text": true,
      "max_replies_per_tweet": 3,
      "max_tweets_to_expand": 10,
      "reply_min_likes": 5
    }
  }
}
  • users:需要监控的用户名,不带 @。
  • fetch_limit:每轮最多拉取的推文数量。
  • fetch_reply_text:是否继续获取重要推文的回复正文。
  • max_replies_per_tweet:每条推文最多补充多少条高质量回复。
  • max_tweets_to_expand:每轮最多扩展多少条推文,用于控制 Apify 消耗。
  • reply_min_likes:只保留达到最低点赞数的回复。

Horizon 会将推文标准化为统一内容对象,并保存推文 ID、会话 ID、点赞、转发和回复数量。AI 评分时不仅能看到正文,还可以参考互动数据。启用回复扩展后,重要推文的讨论会追加到内容中,再进行一次针对性的 AI 分析。

四、Horizon 的筛选与归档

单纯抓取推文并不能解决信息过载。Horizon 会将 X 与 GitHub、Hacker News、RSS、OSSInsight 等来源放进同一条处理管线,执行时间窗口过滤、AI 评分、相似内容去重和中文摘要。

本项目已经将最终中文摘要固定在:

horizon/data/summaries/archive/horizon-YYYY-MM-DD-zh.md

固定归档目录非常重要。生产者和读取者必须使用同一个来源,不能让一份摘要同时出现在 archive 和上级目录,否则 n8n 可能读到旧文件或错误版本。

五、n8n 的“生产文章”工作流

项目中的“生产文章”工作流当前处于启用状态,默认每天 9:20 触发。它由以下节点组成:

1. Schedule Trigger

定时启动内容生产。建议把 Horizon 的采集与摘要任务安排在它之前,并预留足够时间,确保当天归档文件已经生成。

2. 读取 Horizon 摘要

Execute Command 节点根据当天日期定位归档文件。如果文件不存在会直接报错并停止,而不是悄悄回退到旧摘要。这个行为可以避免把昨天的热点再次发布。

3. 解析 Horizon

Code 节点按二级标题拆分摘要,只保留正文长度足够的内容,然后随机打乱并选取两条。你可以把随机选择改成按评分排序,或按来源、关键词和账号白名单进行筛选。

4. AI Agent + DeepSeek Chat Model

AI Agent 接收标题、评分和摘要内容,将其扩展为适合微信公众号的完整文章。现有提示词要求生成吸引人的标题、清晰的小标题、1500 至 2500 字正文、背景补充和配图位置建议。

生产环境建议再加入事实约束:不得编造原摘要没有的数字、版本和人物发言;涉及发布日期、价格和安全事件时必须保留来源核验步骤。

5. 转成文件并存储文章

Convert to File 节点把 AI 输出转换成 UTF-8 Markdown 文件,Read/Write Files 节点按时间和序号保存到 articles/。文件化中间结果方便人工审核,也能在发布失败时重新执行后续流程,而不必再次消耗模型额度。

六、自动生成封面图

“生图”工作流会读取 articles/ 中的文章,提取标题,调用图像模型生成封面,再转换为 JPG 并写入 lmg/。文章和封面通过相同的基础文件名配对。

为了提高稳定性,建议统一:

  • 封面尺寸和横纵比;
  • 文件名清洗规则;
  • 品牌配色与字体区域;
  • 图片生成失败时的默认封面;
  • 文章与图片一一对应的断言。

七、格式稳定性自检

项目中还有单独的“格式稳定性自检”工作流。它会读取生成文章、检查输出格式,并通过 IF 节点判断是否全部合格。推送前至少应检查:

  • 标题是否存在且长度合理;
  • 正文是否为空;
  • 是否包含小标题;
  • 是否残留“排版提示”“配图建议”等内部提示语;
  • 文章和封面数量是否一致;
  • HTML 是否包含微信公众号需要的内联样式。

八、推送微信公众号草稿

“推送微信草稿”工作流当前默认每天 10:20 触发,也支持手动执行。主要步骤是:

  1. 读取 articles/*.md
  2. 把 Markdown 段落、小标题、列表和代码块转换为微信兼容 HTML;
  3. 读取 lmg/*.jpg
  4. 把封面上传到微信素材库并取得 media_id;
  5. 按基础文件名匹配文章和封面;
  6. 追加可点击的文末图片;
  7. 调用微信草稿接口创建草稿。

文章或封面缺失时,流程会明确抛出错误,不会创建半成品草稿。微信公众号的 AppID、Secret 和其他凭据应放进 n8n Credential 或服务器环境变量,不能直接写在 Code 节点里。

九、Docker 网络与路径配置

当 n8n 与 Horizon 分别运行在 Docker 容器中时,127.0.0.1 只代表当前容器。项目通过 host.docker.internalhost-gateway 处理容器访问宿主服务的问题。

文章、封面和 Horizon 归档目录必须挂载到 n8n 实际可读写的位置。上线前应在 n8n 容器内执行文件检查,而不是只在宿主机确认文件存在。

十、建议的执行时间线

  • 08:30:Horizon 开始抓取 X、GitHub、RSS 等来源。
  • 09:00:完成去重、评分和中文摘要,写入 archive。
  • 09:20:n8n 生产文章。
  • 09:40:生成封面并执行格式检查。
  • 10:20:推送微信公众号草稿。
  • 发布前:人工核对事实、标题、图片版权和敏感内容。

十一、常见故障

X 没有抓到内容

检查 Twitter 配置是否启用、用户名是否正确、APIFY_TOKEN 是否存在,以及 Apify Actor 是否返回数据。还要检查时间窗口,过旧推文会被过滤。

Horizon 摘要数量太少

先看每个来源的抓取数量、HTTP 错误和被过滤数量,再调整 AI 阈值。来源失效时,仅降低评分阈值通常不能解决问题。

n8n 找不到当天摘要

确认文件是否真实写入 horizon/data/summaries/archive/,日期和时区是否一致,以及该目录是否正确挂载进 n8n 容器。

文章与封面无法匹配

检查两个工作流的文件名清洗规则是否一致。标题中的斜杠、冒号、问号和特殊符号应在生成文件名时统一移除。

微信草稿创建失败

依次检查 access token、IP 白名单、封面 media_id、文章数量限制、HTML 内容和接口返回的 errcode。不要只重试整个流程,应保留失败节点的输入输出。

十二、成本与安全建议

  • 只监控真正有价值的 X 账号,不要无限扩大 users 列表。
  • 限制推文回复扩展数量,避免 Apify 费用失控。
  • 对 AI 输出增加事实核验和人工发布门槛。
  • 将所有平台密钥放入环境变量或 n8n Credential。
  • 定期备份 n8n 数据库、工作流和中间文件。
  • 为失败节点增加通知,但不要在通知中发送密钥或完整凭据。

十三、总结

X + Horizon + n8n 的核心价值,是把碎片化热点变成可追踪、可筛选、可审核的内容资产。Horizon 负责从 X 和其他来源发现信息,n8n 负责把摘要转成文章、封面和平台草稿。通过固定归档路径、明确的节点断言和发布前人工复核,这套流程既能提高内容生产效率,也能避免“全自动发布”带来的事实和质量风险。

THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容