Huginn · 自己服务器上的事件驱动自动化
周一早上,你又在手动翻六个网页
你一个人管内容和渠道。每周一要交一份东西:竞品官网这周改了哪几页、有没有动价格;行业里那三个源出了什么值得转的文章;邮箱里供应商发来的报价单要摘出来归档。
这三件事都不难,但你每次都是手动做。你也试过自动化:在 IFTTT 和 Zapier 上挂过几个 Applet 和 Zap,免费额度只够跑最要紧的那两三条,再多就要按月、按条付费。更要紧的是,网页变化的内容、邮箱里那些报价,全都要经过别人家的服务器。
那就自己写。cron 定时抓页面,存一份快照算 diff,变了就发通知。第一个周末写了小两百行,第三天竞品改版,选择器全废;加上重试、去重、留档、再加一个站点就要改一次代码——第四个站点之后,你就没再碰过它了。
一堆小 Agent,一条能自己往下走的事件线
Huginn 是一台装在自己服务器上的事件管道:每个 Agent 只盯一件事,它产生的事件顺着一条有向图流到下一个 Agent,由下一个 Agent 判断、加工或者通知出去。
网页、RSS、邮箱、Webhook、MQTT 都能作为入口;中间的 Agent 负责去重、判断、聚合、加工;末端的 Agent 负责发邮件、发消息、写文件,或者把事件再发布成一个自己的 RSS / JSON。
边界也说清楚:
- 它做:网页抓取与变化监控、各种来源的事件读取、条件判断与聚合、通知发送、文本加工(JavaScript、Liquid、jq,或接 OpenAI 兼容接口做摘要分类翻译)、把收集到的事件再发布成 Feed
- 它不做:不替你想规则,一切都要你自己连;没有预置的业务模板,图长什么样由你决定
- 用之前要知道:界面是英文的;不自带邮件服务器,不配 SMTP 的话邮件类 Agent 和"忘记密码"用不了;Agent 默认可以访问内网地址,需要收窄时用
ENABLE_SMOKESCREEN打开出站限制
通过阿里云计算巢部署,约 2 分钟开箱可用,不用自己装 Ruby、初始化 MySQL、再手动拉起一个常驻的后台 worker。

它解决了什么问题
| 你原来怎么干 | 代价 | 用它之后 |
|---|---|---|
| 在 IFTTT、Zapier 上按条堆规则 | 免费额度只够最要紧的几条,超出就按任务计费;内容要过第三方 | 一台 ECS 上挂多少条都一样,抓到的内容只进你自己的库 |
| 自己写 cron + 抓取脚本算 diff | 站点改版一次就要改一次代码,重试、去重、留档都得自己补 | 填选择器就能盯一个页面,事件自动入库;改规则在网页上点几下 |
| 用工作流工具硬画分支 | 稍微复杂一点的判断就得塞脚本节点,图和代码两头维护 | 判断和加工直接写 JS / Liquid / jq,图还是那张图 |
| 因为"加一条太麻烦"而放弃自动化 | 该自动的事一直在手动,每周一固定要花掉半天 | 新建一个 Agent + 拉一条线,一条规则几分钟 |
回到那个周一:三条线搭完——竞品定价页变化 → 摘要 → 推到钉钉;行业 RSS → 关键词过滤 → 每天九点汇总一封;邮箱里的报价单 → 抽出金额和期限 → 周五汇总一封。"这周竞品改了哪几页"从翻网页变成看一份事件列表。
而更深一层的变化是:自动化不再是一件需要立项的事。以前每加一条,你都要先掂量"值不值得为它付费、值不值得写一段代码";现在你想到就插一个节点,跑几天,不行就删掉。被自动化的东西会越来越多,不是因为你会写更多脚本,而是因为每加一条的成本低到可以忽略——它从"攒够量再干"变成了"随手就能加"。
核心能力

先把信息接进来
要盯的东西散在各种入口:页面、RSS、邮箱、别人推给你的 Webhook。
- Website Agent —— 盯页面上指定的元素,变了才产生事件,不用自己算 diff、不用处理抓取失败
- RSS / IMAP / Webhook / MQTT —— 订阅源、邮箱、别的系统推过来的消息都能当入口,谁进来都能触发后面的动作
- 凭据集中保管 —— 需要登录才能抓的站点、第三方服务的 Key 存在 Credentials 里,Agent 引用它,不散落在配置里
在事件之间做判断
真实规则从来不是"有变化就通知"这么简单。
- 条件判断 —— 按字段、正则、JSONPath 决定放行还是丢掉,比图形化的规则开关自由得多
- 峰谷检测与聚合 —— 一段时间里的数量突变、事件流里的空档都能识别,先汇总成一条再发出去
- 脚本加工 —— 格式不对就在中间写几行 JS / Liquid / jq 改掉,不用为了一个字段换工具
让人只收到该收到的
通知太密,人就不看了。
- 通知渠道 —— 邮件、Slack、Telegram、微博、Pushover、Twilio 短信与电话等,按事的轻重选渠道
- 定时汇总 —— 攒着的事按你定的时间一次发出,而不是一条一条打断你
- 再发布成 Feed / JSON —— 收来的事件变成自己的 RSS 或接口,给别的系统接着用
谁最该用
| 用户类型 | 典型场景 | 用它拿到什么 |
|---|---|---|
| 一个人管内容和渠道的人 | 要盯竞品、行业源和渠道数据,但买不起也管不动几套 SaaS | 一台服务器上想加几条加几条 |
| 独立开发者 | "网页变了就通知我""这个词出现在 RSS 里就推给我"这类小需求不断 | 不写代码就能搭,需要逻辑的地方再写几行 |
| 小团队的后端与运维 | 内部要接几个信息源,但不想再引入一个 SaaS 和一家供应商 | 数据在自己库,出口是自己的 IM 和邮箱 |
| 有合规要求的技术负责人 | 抓取到的内容和邮件不能出境 | 全部跑在自己账号下的 ECS 上 |
技术支持
- 官方仓库:https://github.com/huginn/huginn
- 官方文档:https://github.com/huginn/huginn/wiki
- 问题反馈:GitHub Issues
🚀 立即体验
→ 一键部署 Huginn
打开实例公网地址登录后,第一件事是去 Credentials 建一条凭据,然后新建一个 Website Agent 盯一个页面——它的输出会直接出现在 Events 里。