基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
编程提效2026-10-22 22:39

用n8n搭建带异常告警的资讯筛选流

dev.to · AI#工作流#自动化#n8n
Editor brief · 编辑速览

教程串联RSS触发、Claude摘要、JSON校验、相关性筛选与Slack推送,并配置独立错误告警流程。还说明了去重、首次启动批量触发等细节,以及无需引入LLM的简单场景。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

把 RSS 新文章交给 AI 摘要,再发进 Slack,搭起来并不难。难的是它能否持续运行:模型输出不合规怎么办,接口限流怎么办,执行到一半失败后,文章还会不会再处理?

作者给出的 n8n 方案,把校验、重试和告警放进了主流程。它最有用的提醒是:收到失败通知,不等于失败任务已经得到补偿。对于想搭技术资讯流的开发者,这个区别比选哪个模型更值得先弄清。

什么时候值得在 RSS 后面接 AI

作者先划了一条边界:如果需求只是把每条新文章转发到 Slack,用 RSS Feed Trigger 加 Slack 两个节点就够了。原文称这种做法没有成本,但没有交代 n8n 的部署和运行成本,不能理解成整套服务免费。

需要摘要、相关性评分、实体提取,或者面向特定读者改写时,再接入 LLM。

完整链路是 RSS Feed Trigger → Basic LLM Chain(Claude)→ Code(校验 JSON)→ IF(相关性过滤)→ Slack,另建一条 Error Workflow 负责告警。

RSS Feed Trigger 每 30 分钟轮询一次。作者解释,RSS 没有 webhook,因此通过定时检查发现更新。n8n 会记住已输出的条目,提供去重;但首次激活可能一次吐出多条历史内容,建议先拿更新较少的订阅源测试。

模型部分使用 Basic LLM Chain,挂接 Anthropic Chat Model 子节点并配置凭据。原文没有指定模型版本,要求从下拉菜单选择,并核对 Anthropic 文档中的当前名称。

下面这段输入限制了每条文章送给模型的内容长度:

Title: {{ $json.title }}

Content: {{ ($json.contentSnippet || $json.content || '').slice(0, 6000) }}

要看的是 .slice(0, 6000):它截取的是字符串长度,并非精确限制 6000 个 token。它能约束输入规模,但订阅源如果返回完整 HTML,截断后的内容仍可能夹杂大量标签。

系统消息要求只输出 JSON,字段为 summary、relevance 和 tags:摘要最多 2 句,相关性为 1-10 分,标签为字符串数组,不带 Markdown 和开场说明。IF 节点再判断 {{ $json.relevance }} 是否大于等于 6,只让通过的条目进入 Slack。

AI 是否值得花钱,取决于这道筛选能不能减少读者需要处理的信息。

能发出消息,还不算能持续运行

作者在模型节点的 Settings 中开启 Retry On Fail,设置 3 次尝试,间隔几秒,用来应对限流和临时 API 错误。但网络请求成功,模型返回的内容也可能不能用。

因此,Code 节点使用 JavaScript,并选择 Run Once for Each Item。校验逻辑先解析 JSON,再检查 summary 是否为字符串、relevance 是否为数字、tags 是否为数组;不符合就抛错,让异常进入可见的失败流程。

这里有个缺口:这段校验没有完整执行提示词约束。它没检查分数是否在 1-10 之间,也没检查标签数组里的每一项是否都是字符串,更没有验证摘要最多 2 句。原文还提到可以使用 Structured Output Parser,通过 schema 约束输出;Code 节点的优势则是能自行控制错误信息。

通过筛选后,Slack 的 Send Message 使用以下模板:

*<{{ $json.link }}|{{ $json.title }}>* ({{ $json.relevance }}/10)
{{ $json.summary }}
_{{ $json.tags.join(', ') }}_

最后一行依赖 tags.join(', ')。前面的类型校验能避免对普通字符串或空值调用数组方法,但标签内容是否合适,还需要额外约束。

告警需要另建名为「Alert on failure」的工作流,以 Error Trigger 开始,再接 Slack 或邮件节点,发送 {{ $json.workflow.name }} 和 {{ $json.execution.error.message }}。随后在主工作流的 Settings 中,将 Error Workflow 指向它。

订阅源不可用、模型输出坏 JSON、Slack 发送失败,都应变成可见的告警;限流先交给重试,尝试耗尽后再告警。首次历史条目过多,则可以在触发器后加 Limit,例如限制为 20 条,控制回填成本。

不过,作者特别提醒:条目一旦被触发器输出,即使后续节点失败,下次轮询也不会自动重新处理它。关键任务需要保存失败条目,或从 Executions 页面手动重新运行失败执行。

告警解决的是发现问题,补偿解决的是把事情做完。

我的判断

这套方案说得对的地方,是把「输出是否合法」和「失败后如何处理」当作流程的一部分。相比直接把模型回答发进群,它至少能把部分异常拦在发布之前。

但作者没有提供持续运行时长、失败率、费用或相关性筛选准确率,也没有给出不同模型、不同阈值的对照数据。所谓适合持续运行,目前更接近工程经验,不能当作可靠性实测结论。

6 分也只是一个起点。不同模型、提示词和订阅源可能给出不同的评分分布,需要拿实际文章检查误删和误放。Structured Output Parser 能帮助约束数据结构,内容是否准确、是否相关,仍需另行验证。

失败条目存进 Google Sheet 或数据库的建议有价值,但原文没有讲清保存位置、重放方式和重复发送控制。Limit 限制之外的历史条目是否还能被后续处理,也没有说明。把它用于重要资讯流之前,这些行为都要验证。

能拿来做什么

  • 搭建前端或全栈技术订阅流时,先验证 RSS Feed Trigger 到 Slack 的基本转发,再按需求增加摘要和筛选,确认 AI 确实减少了阅读负担。
  • 使用 Code 校验模型输出时,补齐 1-10 分范围和标签元素类型检查,并把输入截断长度纳入成本控制。
  • 上线前分别测试坏 JSON、模型接口失败和 Slack 发送失败,确认重试次数、告警内容及 Executions 中的手动重跑路径。
  • 如果后续让模型起草社交内容,可以按原文建议加入 Wait 和人工审批步骤,再进入发布环节。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
Flint发布400亿参数本地编程模型
下一篇
用会话时间线找出编程Agent耗时瓶颈

资讯速览

dev.to · AI · 2026-10-22 22:39

AI 评分 8.0 / 10

相关标签

#工作流#自动化#n8n

继续阅读

  • 排查智能体故障,别只修改提示词
  • Flint发布400亿参数本地编程模型
  • 用会话时间线找出编程Agent耗时瓶颈
  • AI 应用免费额度防滥用的分层方案
  • 让 Claude Code 使用登录态浏览器的设计经验