跳转到内容

Huginn 项目介绍

Huginn 项目介绍

项目定位

Huginn 是一个自托管的事件驱动 Agent 自动化系统——它让你在自己的服务器上运行”个人 IFTTT”,通过有向图编排数十种 Agent,实现网络监控、数据抓取、事件告警和跨平台自动化。

核心能力

  • 网站监控与数据抓取: 基于 XPath/CSS Selector/JSONPath 的网页、API、Feed 结构化提取,支持变更检测与合并模式
  • 事件驱动自动化: Agent 通过 Event/Link 构成有向图,事件沿图自动传播,下游 Agent 实时响应
  • 75+ 内置 Agent 类型: 覆盖 Web、RSS、Twitter、Email、Slack、Telegram、Twilio、Dropbox、S3、Weather、OpenAI 等
  • 动态控制编排: CommanderAgent/SchedulerAgent 支持运行时动态启用、禁用、配置和调度 Agent
  • 自定义逻辑: JavaScriptAgent 支持运行自定义 JS 代码;Liquid 模板引擎提供强大的数据转换能力
  • 外部事件注入: Webhook 端点让外部系统可以向 Agent 网络发送事件
  • 异常检测: PeakDetectorAgent 基于滑动窗口统计分析自动检测事件流中的峰值

技术栈

维度技术选型
语言Ruby >= 3.4.0
Web 框架Ruby on Rails 8.1.3
模板引擎ERB + Liquid(Agent 配置与数据转换)
前端jQuery + Bootstrap + Ace Editor
数据库MySQL(默认)/ PostgreSQL
后台任务ActiveJob + Delayed Job(可选 Resque)
定时调度Rufus Scheduler
长连接EM-HTTP-Request(Twitter Stream 等)
构建部署Docker / Heroku / Capistrano

架构概览

核心数据流:

  1. 调度触发 (check) — Scheduler 按 Cron 周期调用 Agent 的 check 方法,主动获取数据
  2. 事件创建 (create_event) — Agent 将获取到的数据封装为 Event 存入数据库
  3. 事件传播 (receive!) — 传播器扫描新 Event,沿 Link 推送到下游 Agent
  4. 事件处理 (receive) — 下游 Agent 的 receive 方法处理接收到的 Event,可再次创建新 Event

快速体验

最简方式 — Docker:

Terminal window
docker run -it -p 3000:3000 --name huginn huginn/huginn

访问 http://localhost:3000,使用 admin / password 登录。

教程导读

本教程分为 AI 应用编程核心 两个部分:

AI 应用教程(/tutorials/huginn/ai/

从 Huginn 的源码中抽象出 AI Agent 设计的通用知识,包括事件驱动架构、插件系统、模板引擎集成、调度与反应式触发、内存与状态管理、控制流编排、Dry Run 验证、Webhook 注入、异常检测等。本章将引用以下 common 通用知识教程

编程核心教程(/tutorials/huginn/dev/

聚焦 Huginn 的 Ruby on Rails 工程实践,包括 Rails 架构设计、异步任务队列、长运行进程管理、多数据库适配、测试策略、Docker 部署、配置管理与多租户系统。