主题
第一个自动化工作流实战
前面两篇讲了"为什么"和"选哪个"。这一篇动手:搭一个你可以立即使用的流程——每日情报工作流:每天定时抓取你关注的信息源,让 AI 浓缩成几条要点,自动推送到飞书/微信/邮箱。结论先行:第一个流程的目标不是完美,是"真的每天替你跑";先跑通一个粗糙版,再迭代。
本文以 n8n 为主示例(自托管免费、节点透明、调试友好),关键思路同样适用于 Dify,文末给出 Dify 版本的对应关系。
1. 我们要搭的流程长什么样
先锁定输入输出,避免边搭边改:
每日情报工作流 · n8n 节点流程
- 1定时器:每天 08:00自动触发
- 2抓取 RSS / 网页自动触发读取你关注的 3~5 个信息源
- 3AI 总结节点AI 执行把原始内容压缩成 5 条要点 + 一句话点评
- 4条件分支检查点若含“重大 / 融资 / 发布”等关键词 → 标红优先推送
- 5通知节点自动触发发到飞书(或微信 / 邮箱)
| 要素 | 你先想好的值(示例) |
|---|---|
| 信息源 | 3 个行业博客 RSS + 1 个 GitHub Release |
| 推送时间 | 每个工作日 08:00 |
| 推送渠道 | 飞书群机器人 Webhook |
| 产出格式 | 5 条要点,每条≤40 字,加一句话总评 |
2. 准备工作
2.1 起一个 n8n 实例
本地用 Docker 最省事:
bash
docker run -it --rm -p 5678:5678 \
-e N8N_SECURE_COOKIE=false \
n8nio/n8n打开 http://localhost:5678 即可进入画布。生产环境建议用 docker-compose 并配反向代理与密钥管理,安全细节见《AI 使用安全清单》。
2.2 准备三样凭证
- [ ] 模型 API Key:用于 AI 总结节点(放 n8n 的 Credentials,别硬编码进节点)。
- [ ] 信息源地址:RSS 链接或网页 URL,先手动打开确认能访问。
- [ ] 推送 Webhook:飞书群"自定义机器人"的 Webhook 地址(微信需企业号/ Server 酱等中转,邮箱用 SMTP)。
所有密钥都走 n8n 的 Credentials 面板,不要写进节点配置或提交到代码仓库。这是自动化的第一条安全纪律。
3. 逐节点配置
下面按画布顺序,逐个节点给出配置要点与可复制的示例。
3.1 节点一:定时器(Schedule Trigger)
这是流程的"起点"。设置 Trigger Times 为每天 08:00,勾选仅工作日(Mon–Fri)。
json
{
"rule": {
"interval": [
{ "field": "days", "triggerAtHour": 8, "triggerAtMinute": 0 }
]
},
"weekdays": [1, 2, 3, 4, 5]
}3.2 节点二:抓取信息源(HTTP Request / RSS Read)
若信息源是 RSS,用 RSS Read 节点填 URL 即可;若是普通网页,用 HTTP Request 节点 GET。多个源就并行放多个抓取节点,再用 Merge 节点汇总。
json
{
"method": "GET",
"url": "https://example.com/feed.xml",
"options": { "response": { "response": { "responseFormat": "text" } } }
}调试技巧:先单独点这个节点"Execute Step",看输出 JSON 里有没有 title、link、content 字段,确认字段名后再接下游。
3.3 节点三:AI 总结(LLM Chain / AI Agent 节点)
把抓取到的多条内容拼成一个提示词,交给模型总结。核心是"提示词模板"——这是《提示词入门》的用武之地。
text
你是一个行业情报编辑。以下是今日抓取的 {{ count }} 条内容:
{{ items }}
请输出:
1. 5 条最值得关注的要点,每条不超过 40 字;
2. 一句话总评(当日这个领域发生了什么)。
只输出要点和总评,不要寒暄。n8n 里用 Set 节点把抓取结果拼成 items 变量,再接 LangChain LLM Chain 节点(选你配置的模型 Credential)。若想让 AI 自己决定调哪些工具,改用 AI Agent 节点——2026 版 n8n 的 AI Agent Tool Node 已支持多 Agent 协同。
3.4 节点四:条件分支(IF)
判断是否"重大"。例如原文或摘要里出现了关键词就走"重要"分支,标红推送;否则走普通分支。
json
{
"conditions": {
"string": [
{
"value1": "={{ $json.summary }}",
"operation": "contains",
"value2": "融资"
},
{
"value1": "={{ $json.summary }}",
"operation": "contains",
"value2": "发布"
}
],
"combinator": "or"
}
}分支不要太多。第一个流程建议只有"重要/普通"两路,复杂化留到第二版。
3.5 节点五:通知(飞书 Webhook)
飞书群机器人接受 JSON POST。用 HTTP Request 节点 POST 到 Webhook,body 用"富文本"或"markdown"格式。
json
{
"msg_type": "markdown",
"content": {
"markdown": "**📡 每日情报({{ $json.date }})**\n\n{{ $json.summary }}\n\n> {{ $json.comment }}"
}
}微信可走 Server 酱 / 企业微信 Webhook,邮箱用 Send Email(SMTP) 节点。多个渠道就并联多个通知节点。
4. 把节点连起来并手动跑通
按第 1 节的图把五个节点连线,然后先不要开定时器,点画布右上角"Execute Workflow"手动跑一次:
- 看定时器之后每个节点的输出(点节点 → 看
OUTPUT)。 - 确认抓取到了数据、AI 产出非空、分支判断符合预期、通知返回 2xx。
- 去飞书群确认收到了消息。
手动跑通三次没报错,再开放定时器。这一步能避免"定时器一开,半夜悄悄失败"的尴尬。
5. 调试技巧
| 现象 | 排查方向 | 操作 |
|---|---|---|
| 某节点无输出 | 上游字段名对不上 | 点上游节点看 OUTPUT 的实际字段名 |
| AI 产出空/乱码 | 提示词变量未注入 | 在 LLM 节点前加 Set 节点打印变量 |
| 通知 401/403 | Webhook 或 Key 错 | 检查 Credential,重新生成机器人 |
| 中文乱码 | 编码未声明 UTF-8 | HTTP 节点 Options 设 Content-Type: application/json; charset=utf-8 |
| 重复推送 | 定时器重复触发 | 确认只有一个激活的定时器工作流 |
通用心法:从最后一个能正常工作的节点往前推,二分定位最快。n8n 支持单节点"Execute Step",善用它在中间插桩看数据。
6. 定时运行与运维
- 时区:n8n 默认 UTC,记得在设置里改成
Asia/Shanghai,否则 08:00 实际是北京时间 16:00。 - 失败告警:给工作流加一个 Error Trigger 节点,失败时发消息给你自己,而不是静默失败。
- 去重:若信息源可能重复,抓到后先用 Set + 哈希 记录已推送链接,避免天天推同一条。
- 限流:低频任务用 Schedule,别常驻进程;模型调用加并发上限,控制成本(见《效率与省钱技巧》)。
json
{
"errorWorkflow": "alert-me-on-failure",
"settings": { "timezone": "Asia/Shanghai" }
}7. 常见报错排查(实战清单)
- [ ]
Cannot read properties of undefined:上游 JSON 字段名拼错,先打印上游 OUTPUT。 - [ ]
401 Unauthorized:模型 Key 或 Webhook 失效,重配 Credential。 - [ ]
rate limit exceeded:模型调用太频繁,加Wait节点或降频。 - [ ]
ETIMEDOUT:信息源或 Webhook 网络不通,检查代理/白名单。 - [ ] 输出中文乱码:声明 UTF-8,见第 5 节。
- [ ] 定时器不触发:确认工作流已
Active且时区正确。
8. Dify 版本怎么搭(对应关系)
如果你选了 Dify,思路一致,只是形态不同:
| n8n 节点 | Dify 对应 | 说明 |
|---|---|---|
| Schedule Trigger | 工作流的"定时触发" | Dify 工作流支持定时 |
| HTTP Request | HTTP 请求节点 | 同样 GET 信息源 |
| LLM Chain | LLM 节点 + 提示词 | Dify 的 Prompt IDE 更顺手 |
| IF | 条件分支节点 | 逻辑相同 |
| 飞书 Webhook | 工具/Webhook 节点 | 或用 Dify 已接的渠道 |
Dify 的优势是内置 RAG 与知识库:如果你想"基于历史情报做对比总结",直接接知识库即可,省去自己管向量库。需要多 Agent 协作时用 Supervisor 模式。选型理由见《四大平台横评与选型》。
9. 三个进阶练习
跑通基础版后,挑一个练手,难度递增:
9.1 练习一:RSS 多维摘要
把单一信息源扩成 10 个 RSS,让 AI 按"产品/技术/资本"三个维度分栏总结。练的是多源汇聚与分类提示词。
9.2 练习二:竞品监控
监控 3 个竞品官网/GitHub 的更新,一旦发布新 Release 或价格变动就立刻推告警(把定时改成"每 30 分钟"或 Webhook 触发)。练的是事件驱动而非纯定时。
9.3 练习三:客服自动回复
把"抓取→总结→推送"改成"收到邮件/工单→RAG 查知识库→AI 草拟回复→人工点确认后发送"。练的是人工确认节点 + RAG,对应《Agent 工程》里的"给检查点"心法。
10. 交付检查清单
- [ ] 定时器设对时区,且仅工作日(如需)。
- [ ] 信息源、模型 Key、Webhook 都走 Credentials,无硬编码。
- [ ] 手动跑通至少三次,输出符合预期。
- [ ] 已加 Error Trigger,失败会通知你。
- [ ] 已做去重,避免重复推送。
- [ ] 推送格式在手机端可读(markdown 渲染正常)。
11. 下一步
- 想让 AI 连更多真实系统(读库、点网页、提 PR)→ 《MCP 实战指南》。
- 想把这类流程编进一人公司 → 《AI 员工编队与工具栈》。
- 想理解 Agent 工具调用的底层 → 《Agent 与 MCP》《工具设计与 MCP》。
- 想看更大的产业背景 → 《2026 技术雷达与大事记》。
12. 术语对照
| 术语 | 一句话解释 |
|---|---|
| 定时器 Schedule Trigger | 按时间启动流程的节点,如"每天 08:00" |
| 节点 Node | 流程里的一个处理单元,n8n 画布上的每个方块 |
| Credentials | n8n 里集中存放的密钥/令牌,避免硬编码 |
| Webhook | 一个 URL,POST 数据给它就能触发动作或发消息 |
| 去重 | 记录已处理过的条目,避免重复推送 |
| Error Trigger | 流程出错时触发另一个告警流程的节点 |
13. 本篇小结
- 第一个流程选"每日情报":监控信息源 → AI 总结 → 推送,成就感强且立刻有用。
- 五类节点是通用骨架:触发器 → 抓取 → AI 处理 → 条件分支 → 通知,换平台也只是换名字。
- 调试铁律:先手动跑通三次再开定时器;从最后一个正常节点往前二分定位。
- 安全铁律:所有密钥走 Credentials,不硬编码、不入库。
- 进阶方向:多源摘要、事件驱动监控、带人工确认的 RAG 客服。
把今晚这个情报流跑起来,你就已经跨过了"会聊天"到"会干活"的门槛。剩下的,是把它复制到你生活的更多角落。