一、初识 n8n:把“自动化”做成乐高
-
定位
n8n = 开源版 Zapier/Make,但节点完全可拖拽、可写少量 JS 做“函数节点”,数据流像管道一样从左到右。 -
核心概念
- Workflow:一条自动化流程,由 Trigger + 节点组成。
- Node:最小单元,可以是“发 HTTP 请求”“调用 OpenAI”“读写 GoogleSheet”“发邮件”等 400+ 官方节点。
- Item:数据行,每行 JSON 在节点之间流传。
- Expression:用
{{ $json.field }}在任何输入框里动态取值,支持 JS 语法。
-
安装(3 选 1)
- Docker 最快:
docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n - npm:
npm i -g n8n - 云端:Railway/Render 一键模板,5 分钟出公网域名,手机也能改流程。
- Docker 最快:
二、场景 1:图书馆预约(抢座)全流程复盘
目标:每天 6:58 自动登录图书馆系统→查余座→预约 3 楼靠窗→成功/失败都飞书提醒。
1. 抓包拿到接口
浏览器 F12 发现:
- 登录 POST
/api/login返回 JWT - 查座 GET
/api/seat?floor=3&window=true返回剩余 seatId - 预约 POST
/api/book {seatId, date}
2. 节点拆解
① Cron(6:58)
② HTTP 登录 → ③ Function 节点把 JWT 写入 headers.Authorization
④ HTTP 查座 → ⑤ IF 判断 remaining > 0
⑥ HTTP 预约 → ⑦ Google Sheet 记录 seatId、时间、状态
⑧ Feishu 推送
3. 防反爬技巧
- 加 2 秒 Sleep 节点,Rate-Limit 插件限 1 rps
- User-Agent 模拟微信内置浏览器
- 登录验证码:提前手动把 token 填进
credentials,n8n 支持 30 天刷新。
4. Prompt 模板(无 LLM 也能跑,但加 LLM 可智能选座)
LangChain 节点:
“下面是 10 个可选座位 JSON,包含楼层、是否靠窗、附近空调温度。我喜欢靠窗且空调不直吹,请返回最优 seatId。”
输出 {{ $json.bestSeatId }} 直接给预约节点用。
三、场景 2:Top100 公司 AI 投简历
目标:每天抓取牛客/拉勾/官网→LLM 去重+匹配→星标★→自动写 JD 摘要→飞书群+邮件双提醒。
1. 数据源
- 牛客网校招频道:HTML 列表,反爬弱。
- 拉勾 API:需 Cookie,用 Browserless 节点先登录。
- 大厂招聘公众号:RSSHub 转成 RSS,n8n 原生 RSS 触发器。
2. 去重策略
- 初级:Google Sheet 全量对比
company+position字符串。 - 进阶:把 JD 文本向量化(Supabase 节点调 pgvector),余弦相似度 >0.85 视为重复。
- 终极:LLM 摘要后对比,防止“同岗位不同 Title”漏网。
3. 匹配规则(Prompt 示范)
你是一位求职助手,按以下 JSON 规则过滤:
- 方向:前端、后端、AI、算法、数据平台
- 城市:北京/上海/深圳/杭州
- 学历:硕士以上可投
- 排除关键字:外包、销售、测试
输入今日抓取列表,输出符合的岗位并打星:★非常匹配 ☆一般。
输出合法 JSON,字段:company, position, star, reason, url。
4. 自动投递(可选)
- 支持 Boss 直聘:Browserless 节点模拟点击“立即沟通”,自动发送话术:
“您好,我对贵司{{position}}很感兴趣,简历已附件,期待交流!” - 支持邮件投递:HR 邮箱从官网爬取,简历 PDF 存在 Google Drive,n8n 自动附件发送。
- 风险控制:加 30 秒随机延迟,每天上限 20 封,防止被封号。
四、Workflow 设计最佳实践
- 模板化
把“登录→查数据→LLM 判断→写表→推送”做成子工作流(Execute Workflow 节点),以后新场景直接复用。 - 错误处理
每个 HTTP 节点开“On Error → Continue”,下游接 Function 节点记录error.message到 Sheet,方便复盘。 - 变量管理
用 Static Data 节点存“昨日已投列表”,比每次读 Sheet 快 10 倍。 - 版本控制
n8n 自带 Git 同步,Push 到私有仓库,回滚只需 1 秒。 - 监控告警
装 n8n-nodes-healthcheck,流程失败自动发 Telegram;关键节点加 Prometheus 指标,Grafana 大盘可视化。
五、LLM 节点进阶
-
模型选择
- GPT-3.5-turbo:便宜、速度快,适合结构化 JSON。
- GPT-4:复杂推理、长 JD 摘要,预算充足再上。
- 国内 Moonshot/通义/GLM:baseURL 一键切换,token 单价低,合规。
-
温度设置
0→最稳定;0.3→偶尔扩写;>0.7 容易输出多余废话。 -
Function Calling
让 LLM 直接返回可执行函数,n8n 用 Function 节点 parse 后调其他接口,实现“AI 自己预约”。 -
长文本分片
JD 太长时先 Split Text 节点按 2000 字切段,Map 节点并发调 LLM,最后 Merge。
六、社区插件私房清单
- n8n-nodes-browserless:免装 Chrome,云端渲染,自带 stealth。
- n8n-nodes-minio:私有云存简历模板、截图。
- n8n-nodes-qrcode:生成微信分享二维码, mobile friendly。
- n8n-nodes-schedule:更灵活的“工作日 9-11 点”触发。
- n8n-nodes-vectara/pinecone:向量检索,去重神器。
七、性能与成本
- 每天 200 次 GPT-3.5 调用 ≈ 0.3 美元,n8n 自建电费忽略不计。
- Browserless 按分钟计费,一次抓取 30 秒 ≈ 0.005 美元。
- Google Sheet 免费额度 500 次/天,超限后换 Supabase 自托管,成本 0。
八、安全合规
- 账号密码全部进 Credentials 加密库,导出流程时自动脱敏。
- 简历 PDF 存在私有 MinIO,公网链接带 1 小时过期签名。
- 遵守目标站点 robots.txt,抓取频率 <1 rps,先邮件取得授权。
- 用 LLM 生成的话术需人工抽检,避免夸大技能。
九、常见报错速查
- 401:JWT 过期,加 Refresh Token 节点。
- 422:字段类型错误,用 Function 节点
parseInt()强转。 - ECONNREFUSED:Docker 网络问题,加
--network host或外链地址。 - LLM 返回非 JSON:Prompt 里加“必须输出合法 JSON,不要解释”,Temperature 设 0。
十、学习路径 30 天
第 1-3 天:跑通官网“Hello World”邮件提醒。
第 4-7 天:复刻本文“图书馆预约”,能抢到座位。
第 8-14 天:替换“Top100 投简历”,Prompt 迭代 3 版,星标准确率 >90%。
第 15-21 天:接入向量数据库,去重召回率提升 50%。
第 22-30 天:把两个子流程合并成“一站式求职助手”,加前端 Dashboard(n8n 内置 UI 节点),公网分享给同学。
结语
n8n 让“写代码”降级为“拼乐高”,LLM 让“写规则”降级为“说话”。
当你把图书馆预约、投简历、抢课、薅羊毛全都跑通后,会发现最爽的不是省下的时间,而是“任何重复动作 30 分钟就能变成自动流水线”的掌控感。