Huginn 实用指南:让你的网络生活自动化起来

9 months ago

Huginn 到底是个啥?

简单说,Huginn 就是你的私人 IFTTT(If This Then That),一个可以在你自己服务器上运行的自动化工具。 不过相比 IFTTT,它更强大、更自由,当然也稍微有点技术门槛。

这个名字来自北欧神话,奥丁有两只乌鸦,其中一只叫 Huginn(代表"思想"),每天飞出去收集信息向主人汇报。

https://appstore.lazycat.cloud/#/shop/detail/lazycat.app.huginn

核心概念很简单

Huginn 的运作原理就像工厂流水线:每个 Agent(代理)就像流水线上的工人,负责一个特定任务。把多个 Agent 串联起来,就组成了一条完整的自动化流水线。

  • Agent:执行具体任务的单元,比如"监控网页"、"发送邮件"
  • Event:Agent 之间传递的数据
  • Scenario:一组相关 Agent 的集合,就是你的自动化方案

手把手实战:监控技术博客并生成自己的 RSS 源

让我们来个完整的实战案例:监控多个技术博客,汇总后生成一个新的 RSS 源,你可以用任何 RSS 阅读器订阅。

应用打开后,默认账号密码是 admin/password

image.png

Step 1:创建 RSS Agent 监控博客

  1. 登录 Huginn 后,点击 "Agents" → "New Agent"

  2. 选择 Agent 类型

    • Type 选择:Rss Agent
    • Name:监控猫哥的博客
    • Schedule:every_2h(每 2 小时检查一次)
    • Keep events:20(保留最近 20 条记录)

image.png 3. 配置 Options

{
  "expected_update_period_in_days": "5",
  "clean": "false",
  "url": "https://manateelazycat.github.io/feed.xml"
}

image.png 4. 点击 "Dry Run" 测试

  • 应该能看到博客的文章列表
  • 每篇文章包含 title、url、description 等字段

image.png

Step 2:创建文章处理 Agent(添加标签)

使用 Event Formatting Agent 为文章添加来源标签。

  1. 新建 Agent
    • Type:Event Formatting Agent

image.png

  • Name:格式化文章数据
  • Sources:选择上面的 RSS Agent

image.png 2. 配置 Options

{
  "instructions": {
    "title": "【猫哥博客】{{title}}",
    "url": "{{url}}",
    "description": "{{description}}",
    "author": "{{author | default: 'ManateeLazyCat'}}",
    "source": "ManateeLazyCat Blog",
    "pubDate": "{{pubDate}}"
  },
  "mode": "clean",
  "matchers": [],
  "skip_created_at": "false"
}

image.png

Step 3:监控更多 RSS 源(可选)

创建更多 RSS Agent 监控其他博客:

监控阮一峰的博客:

{
  "expected_update_period_in_days": "7",
  "clean": "false",
  "url": "http://www.ruanyifeng.com/blog/atom.xml"
}

image.png 监控 Hacker News:

{
  "expected_update_period_in_days": "1",
  "clean": "false",
  "url": "https://news.ycombinator.com/rss"
}

为每个源创建对应的 Event Formatting Agent,添加不同的标签。

Step 4:汇总所有文章

  1. 新建 Agent
    • Type:Digest Agent
    • Name:汇总所有文章
    • Sources:选择所有的 Event Formatting Agent

image.png

image.png 2. 配置 Options

{
  "expected_update_period_in_days": "1",
  "message": "{% for event in events %}\n<item>\n  <title>{{ event.title | xml_escape }}</title>\n  <link>{{ event.url | xml_escape }}</link>\n  <description>{{ event.description | xml_escape }}</description>\n  <pubDate>{{ event.pubDate }}</pubDate>\n  <source>{{ event.source }}</source>\n</item>\n{% endfor %}",
  "retained_events": "100"
}

Step 5:生成 RSS 输出

  1. 新建 Agent
    • Type:Data Output Agent
    • Name:输出RSS源
    • Sources:选择汇总 Agent

image.png 2. 配置 Options

{
  "secrets": ["my_secret_token"],
  "expected_receive_period_in_days": "2",
  "template": {
    "title": "我的技术资讯聚合",
    "description": "聚合多个技术博客的 RSS",
    "link": "https://huginn.懒猫.heiyu.space/",
    "item": {
      "title": "{{title}}",
      "description": "{{description}}",
      "link": "{{url}}",
      "pubDate": "{{pubDate}}",
      "guid": "{{url}}"
    }
  },
  "events_to_show": "50",
  "response_headers": {
    "Content-Type": "application/rss+xml; charset=utf-8"
  }
}
  1. 获取你的 RSS 地址
    • 保存后,在 Agent 详情页会显示一个链接
    • 格式类似:http://你的域名/users/1/web_requests/xxx/my_secret_token.xml
    • 用任何 RSS 阅读器订阅这个地址即可!

image.png

完整的工作流程图

监控博客RSS (Rss Agent) → 格式化数据 (Event Formatting Agent) → 
监控其他RSS (Rss Agent) → 格式化数据 (Event Formatting Agent) → 

汇总 (Digest Agent)
输出RSS (Data Output Agent)
你的RSS阅读器订阅

配置完成后:

  1. Huginn 自动监控多个博客
  2. 汇总生成一个新的 RSS 源
  3. 你用 RSS 阅读器订阅这个源
  4. 所有博客更新都在一个地方查看

这样你就有了一个完全由自己控制的技术资讯聚合器。

写在最后

Huginn 确实需要一点技术基础,刚开始可能会觉得有点复杂,但当你成功设置第一个自动化任务,看到它默默为你工作时,那种成就感真的很棒。而且一旦上手,你会发现越来越多的使用场景,生活和工作效率都会大大提升。

祝你玩得开心,让 Huginn 成为你的数字生活小助手!


相关资源:

作者
天天