Huginn

在自有服务器上构建监测网络、处理事件并自动采取行动的代理。

源仓库
huginn/huginn
Star 数
★ 50k
最近更新
今天
License
MIT
主语言
Ruby

30 秒速览

运行形态
自托管服务网页应用
可在哪里用
通用 · 跨平台
费用
免费,无需付费服务
上手难度
高 · 需要较重的基础设施
开始前需要
Docker 或本地 Ruby 环境MySQL 或 PostgreSQL打包工具ForemanShell / 命令行网络访问本地文件系统
典型场景
自行运维服务器的个人用户,希望监测天气预报,并在次日可能下雨或下雪时收到邮件提醒。
不适合
  • 希望零运维、开箱即用的团队,需自行部署并维护数据库
  • 不愿管理服务器、密钥与升级的个人用户
  • 需要完全离线运行的团队,部分 Agent 依赖外部服务与 API 密钥

这个 Agent 能做什么,适合哪些场景?

Huginn 是一个自托管的在线任务自动化系统,定位类似可改造的 IFTTT 或 Zapier。系统中的 Agents 产生和消费事件,并沿有向图传播数据,从而把监测、条件处理和后续动作连接成工作流。它可以读取网页、RSS 和消息服务,接收 WebHooks,运行自定义 JavaScript,并通过邮件、短信或第三方服务输出通知和动作。核心 Agents 还可由通过 ADDITIONAL_GEMS 配置的外部 Huginn Agent gems 扩展。项目提供官方 Docker 镜像,也支持配合 MySQL 或 PostgreSQL 的本地安装;数据和执行环境由部署者掌控。

用户配置多个 Agents,并将其连接为有向事件图:上游 Agent 从网页、RSS、Twitter、IMAP、MQTT、位置数据或 WebHooks 等来源读取或接收信息并创建事件,下游 Agent 消费事件、执行筛选或自定义 JavaScript,再触发邮件摘要、短信、WebHooks 或第三方服务动作。已列出的连接对象包括 HipChat、FTP、IMAP、Jabber、JIRA、MQTT、nextbus、Pushbullet、Pushover、RSS、Bash、Slack、StubHub、翻译 API、Twilio、Twitter 和 Weibo。它能抓取网页并在内容变化时发邮件、统计高频事件并在峰值出现时发送短信,也能编排使用 HumanTaskAgent 的 Amazon Mechanical Turk 流程。特定或复杂功能可以封装为外部 Huginn Agent Gem,并通过 ADDITIONAL_GEMS 加入安装。

  1. 自行运维服务器的个人用户,希望监测天气预报,并在次日可能下雨或下雪时收到邮件提醒。
  2. 品牌或项目维护者需要跟踪 Twitter 上的项目名称,并在有人提及时获得更新。
  3. 研究者或分析人员希望统计 Twitter 中某个词的讨论频率,并在讨论量突然升高时收到通知。
  4. 采购者或旅行者希望持续监测购物、机票或其他出行优惠,而不必反复手动检查。
  5. 网站运营人员需要抓取页面,并在页面内容发生变化时通过邮件获知。
  6. 团队需要把 RSS、WebHooks、Slack、Twilio、邮件等来源和动作连接成自行托管的事件工作流。

如何安装或部署这个 Agent?

最快的试用方式是使用官方 Docker 镜像,具体安装过程由项目的 doc/docker/install.md 提供。本地安装时,先 fork 仓库,然后运行 git remote add upstream https://github.com/huginn/huginn.git。执行 cp .env.example .env,编辑 .env,至少更改 APP_SECRET_TOKEN;同时准备 MySQL 或 PostgreSQL,使用 PostgreSQL 时在后续命令前加 DATABASE_ADAPTER=postgresql。依次运行 bundle、bundle exec rake db:create、bundle exec rake db:migrate 和 bundle exec rake db:seed。最后执行 bundle exec foreman start,访问 http://localhost:3000/,首次可使用用户名 admin、密码 password 登录。生产部署可采用 Docker、项目列出的 Heroku 或 OpenShift 路径,或遵循手动服务器安装文档;Heroku 只能在付费订阅计划上启动 Huginn。

如何使用这个 Agent?

完成初始化并运行 bundle exec foreman start 后,打开 http://localhost:3000/,以 admin / password 登录并创建 Agents。为每个 Agent 配置数据来源、事件处理条件或输出动作,再把产生事件的 Agent 与消费事件的 Agent 连接成有向工作流。需要天气数据时,应申请 Pirate Weather 的 Weather Data API key,并在预置 WeatherAgent 中把 api_key: your-key 替换为实际密钥。开发环境默认拦截邮件,可在 http://localhost:3000/letter_opener 查看;若要通过 SMTP 真正发送邮件,在 .env 中设置 SEND_EMAIL_IN_DEVELOPMENT=true。如需安装外部 Agent gems,使用 .env.example 所述的 ADDITIONAL_GEMS 环境变量。

这个 Agent 有哪些优点和局限?

优点
  • 工作流由产生和消费事件的 Agents 组成有向图,可把多个监测、转换和动作步骤组合起来。
  • 支持自托管,部署者能够控制数据所在的服务器,而不是必须交给单一自动化 SaaS。
  • 输入和输出范围广,明确覆盖网页抓取、RSS、WebHooks、邮件、短信、Slack、Twilio、MQTT 等服务。
  • 既能运行自定义 JavaScript,也能通过 Huginn Agent gems 扩展复杂或专用 Agent。
  • 提供官方 Docker 镜像,并支持 MySQL 或 PostgreSQL 两种数据库路径。
局限
  • 采用方需要自行部署、保护、升级和维护应用及 MySQL 或 PostgreSQL 数据库。
  • 部分 Agent 依赖外部服务和凭据,例如 WeatherAgent 需要 Pirate Weather API key,相关服务也可能有各自的可用性或费用约束。
  • 本地初始化包含环境文件、密钥、数据库迁移和进程启动等多个步骤,不是免运维的托管服务。
  • 示例开发数据库提供 admin / password 登录信息,部署者必须妥善处理默认凭据和生产安全配置。
  • Heroku 部署不能使用免费计划;说明要求付费订阅,并建议非实验用途采用 1GB 付费计划或 Docker。

这个 Agent 与同类方案有什么区别?

项目将 Huginn 描述为可在自有服务器上运行、可改造的 IFTTT 或 Zapier。核心差异是 Huginn 让部署者掌控数据和运行环境,并允许通过自定义 JavaScript及外部 Agent gems 扩展;相应代价是部署者需要承担数据库、应用进程、升级和安全维护。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Huginn 当前 61 · 存在缺口 自托管服务免费 ★ 50k 今天 Ruby —
Sim AI 工作区 71 · 存在缺口 命令行工具免费版 + 付费版 ★ 30k 1 天前 TypeScript OpenAI API · Claude API
ODS 私有 AI 服务器 71 · 存在缺口 命令行工具免费 ★ 7.6k 今天 Python OpenAI API · Claude API
Auto Company 自主 AI 公司 70 · 存在缺口 命令行工具免费 + 模型费 ★ 3.1k 1 天前 Python Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
61/ 100 五分制 3.1 / 5
本评测基于 2026年8月23日 的源码;此后该项目发布了 7 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 11/29
可靠稳定 8/14
适用触发 14/18
规范维护 13/18
有效结果 10/13
证据核验 5/8
查看各维度的扣分理由
信任安全11 / 29 · 1.9/5

README 清楚说明事件沿有向图流动、系统可自托管,并列出邮件、Webhook、Bash、JavaScript、第三方 API 等外部作用;开发环境默认拦截邮件也是有用的安全防护。CI 使用显式最小权限,SSL、APP_SECRET_TOKEN 和 API 密钥也有提示。但没有证据表明代理执行前会逐次征求确认、按代理实施细粒度权限或提供统一撤销机制;敏感数据的存储、日志、加密和清除规则未说明,广泛连接器及任意脚本能力也缺少配套隔离说明。依赖更新有 Renovate 专用工作流,但未展示漏洞扫描或风险处置,且数据库服务使用 latest 标签。MIT 文件和原始作者归属明确,但当前发布者身份与治理主体没有得到完整确认。

可靠稳定8 / 14 · 2.9/5

README、安装步骤、测试说明和 CI 在 Rails、两种数据库及 Docker 路径上基本一致;CI 覆盖 MySQL/PostgreSQL、原生 JSON 开关和多架构镜像构建,依赖获取也有 Bundler、npm 和容器路径支持。扣分在于静态材料没有展示运行时重试、队列恢复、连接器降级或系统化故障诊断;失败消息仅能从少量 CI 的文件缺失检查和健康检查间接看出,面向用户的错误说明不足。

适用触发14 / 18 · 3.9/5

材料为普通用户、部署者和代理开发者提供了大量具体场景,包括监控、抓取、通知、Webhook、脚本及人工工作流;支持 Docker、本地安装、Heroku、OpenShift、手动服务器、MySQL/PostgreSQL 和外部 Agent gems,环境适配证据充分。能力边界通过“事件生产/消费、有向图、在线自动化”得到基本界定,但 Bash、自定义 JavaScript 和第三方连接器的安全或资源边界不明确;触发器虽提到定时、峰值、网页变化和 Webhook,却没有给出足够的匹配精度、去重或误触发控制细节。

规范维护13 / 18 · 3.6/5

README 结构清楚,覆盖概念、示例、安装、开发、扩展、部署和许可;本地安装步骤具体,示例、截图、视频及 wiki 路径丰富,因此安装说明和示例项得分较高。Huginn、Agent 和事件图等核心命名较稳定,但外部服务示例可能随时间变化。已说明 Heroku 付费要求、开发邮件拦截和 SSL 关闭注意事项,却没有集中列出已知限制。MIT 许可正文完整。版本发布策略、正式 changelog 和兼容性承诺证据很薄;维护入口和贡献流程存在,但当前维护责任主体及明确更新支持政策不完整。

有效结果10 / 13 · 3.8/5

事件图、自托管控制和大量现成自动化场景显示出明显的组合价值,能够把监控结果转成邮件、短信、Webhook 或其他动作;截图和示例使预期输出较易理解。扣分在于没有提供结构化输出契约、运维结果质量指标或实际成效数据。自托管与扩展性带来较高边际价值,但需要数据库、Ruby/Node 依赖、部署维护和第三方凭据,Heroku 还需要付费方案,因此成本收益并非无条件优秀。

证据核验5 / 8 · 3.1/5

主要能力、安装要求、测试命令和部署矩阵都能追溯到提供的 README、工作流及配置文件;README 的双数据库和 Docker 测试说法也被 CI 与 develop.yml 部分交叉印证。扣分在于未提供代理实现代码、测试结果、发行记录或安全审计材料,许多连接器能力只能依赖 README 陈述。“你始终知道谁拥有你的数据”等宣传性结论没有在材料中被充分限定;不过大多数事实陈述与建议性措辞仍能区分。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 代理可执行 Bash 和自定义 JavaScript,并能发送邮件、短信、Webhook 或调用第三方服务;启用前应逐个审查权限、凭据范围和触发条件。
  • 不要在生产环境保留示例中的 admin/password、数据库 password 或占位 API 密钥;应轮换密钥、限制网络访问并核实日志是否包含事件载荷或凭据。
  • 数据库测试和容器配置使用 latest 镜像标签,且材料未展示依赖漏洞扫描;部署时应固定镜像摘要或版本并建立漏洞更新流程。
  • 资料未证明外部动作具有确认、幂等、撤销或恢复机制;对发信、发帖、脚本及写入型 Webhook 应先在隔离环境测试并设置速率限制。
证据充分度:低 评估于 2026年8月23日 审查版本 9faad4aeee0d 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v2026.10.14
    发布说明摘录
    v2026.10.14 Changes - Show maps of location Events with OpenStreetMap and Leaflet when UserLocationAgent has no Google Maps api_key, instead of showing no map. [#3791](https://github.com/huginn/huginn/pull/3791) - Upgrade the PostgreSQL Docker Compose example from PostgreSQL 9.5 to 18. [#3789](https://github.com/huginn/huginn/pull/3789) - Move the Heroku setup to the heroku-24 stack and Heroku's native multi-buildpack support. [#3788](https://github.com/huginn/huginn/pull/3788) …
    在 GitHub 查看 ↗
  2. v2026.10.04
    发布说明摘录
    v2026.10.04 Changes - Upgrade to json 3.0.2, which rejects duplicate object keys and JavaScript-style comments by default. - Deduplicate automatic Agent checks from schedules and controller Agents while a check is queued, running, or awaiting retry. [#3767](https://github.com/huginn/huginn/pull/3767) - Move navigation labels to translation keys while preserving the English text. [#3763](https://github.com/huginn/huginn/pull/3763) …
    在 GitHub 查看 ↗
  3. v2026.09.22
    发布说明摘录
    v2026.09.22 JSONPath safety and compatibility - Restrict legacy JSONPath method calls to an allowlist for JSON value types. The guard also covers filters, computed indexes, and direct uses of the jsonpath gem. See [GHSA-9x7r-mpvj-vj8v](https://github.com/huginn/huginn/security/advisories/GHSA-9x7r-mpvj-vj8v). - Use RFC 9535 JSONPath evaluation by default. Agents requiring legacy behavior can use use_legacy_jsonpath: true; legacy evaluation remains subject to the method allowlist. - Normalize examples and defaults to JSONPath expressions with an explicit $ root. Upgrading …
    在 GitHub 查看 ↗

常见问题

Huginn 必须使用付费云服务吗?
不必须。它可通过官方 Docker 镜像或手动方式部署在自己的服务器上;但若选择 Heroku,项目说明只能使用付费订阅计划。外部 API 或消息服务也可能另有费用。
它会把数据交给某个固定的 AI 或自动化平台吗?
资料没有记录任何 ChatGPT、Claude 或模型 API 依赖。Huginn 的核心边界是自托管应用、事件图和用户选择的外部服务,部署者掌控自己的服务器和数据。
运行前需要哪些凭据?
本地配置至少要在 .env 中更改 APP_SECRET_TOKEN。具体 Agents 可能还需要服务凭据,例如 WeatherAgent 需要 Pirate Weather API key;SMTP 和其他第三方集成也需要相应配置。
开发环境为什么没有真正发出邮件?
开发 Rails 环境默认拦截邮件,可在 /letter_opener 查看。若确实需要通过 SMTP 发送,应在 .env 中设置 SEND_EMAIL_IN_DEVELOPMENT=true。
可以添加仓库核心之外的 Agent 吗?
可以。Agent 可编写为外部 Huginn Agent Gem,并通过 ADDITIONAL_GEMS 环境变量加入现有安装。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents