自动化工具 活跃维护

huginn

huginn/huginn

创建能够代表你监控和行动的代理。你的代理已准备就绪!

50029
Stars 标星
4304
Forks 分支
739
Watchers 关注
705
Open Issues
Ruby
主要语言
MIT
开源协议
9.7 MB
仓库大小
3 小时前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:huginn/huginn
git clone https://github.com/huginn/huginn.git
git clone git@github.com:huginn/huginn.git
README.md master

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。


Huginn是什么?

Huginn 是一个用于构建可以为您在线执行自动任务的代理系统。它们可以读取网页、监控事件,并代表您采取行动。Huginn 的代理会创建和使用事件,并沿着有向图传播这些事件。可以把它看作是可在自己服务器上进行修改的 IFTTT 或 Zapier。您始终知道谁拥有您的数据。确实是您自己。

以下是您可以用 Huginn 做的一些事情:

  • 跟踪天气,当明天要下雨(或下雪)时通过电子邮件提醒您(“别忘了带伞!”)
  • 列出您关心的术语,并在它们在 Twitter 上的出现情况发生变化时收到电子邮件。(例如,想知道关于机器学习领域发生了什么有趣的事情吗?Huginn 会监控 Twitter 上的“machine learning”一词,并在讨论激增时通知您。)
  • 监控航空旅行或购物优惠
  • 关注您项目名称在 Twitter 上的提及,并在有人提到时获得更新
  • 抓取网站内容,并在网站变化时收到电子邮件
  • 连接到 HipChat、FTP、IMAP、Jabber、JIRA、MQTT、nextbus、Pushbullet、Pushover、RSS、Bash、Slack、StubHub、翻译 API、Twilio、Twitter 和微博,等等。
  • 在一天中特定时间发送包含您关心内容的摘要邮件
  • 追踪高频事件的计数,并在其激增时即时发送短信,例如“旧金山紧急情况”一词
  • 发送和接收 WebHooks
  • 运行自定义 JavaScript 函数
  • 随时间跟踪您所在的位置
  • 使用外部 HumanTaskAgent 创建 Amazon Mechanical Turk 工作流程。例如:“每天一次,请 5 人提供一张搞笑的猫照片;将结果发送给另外 5 人评分;将评分最高的照片发送给 5 人添加搞笑标题;发送给最后 5 人评选最搞笑标题;最后,将带有最佳标题的照片发布到我的博客。”

加入我们的 Gitter 聊天室 讨论该项目。

加入我们!

想要帮助 Huginn 吗?所有贡献都受到鼓励!您可以改进用户界面、添加新代理、编写文档和教程,或者尝试处理带有 #"help wanted" 标签的问题。请 fork、添加规范,并发送 pull 请求!

有一个很棒的想法,但还没准备好贡献吗?去我们的官方“建议代理”主题告诉我们吧!

示例

请查看 Huginn 入门演示视频!

现在,一些示例截图。 在它们下面是帮助你入门的说明。

入门指南

Docker

查看 Huginn 最快速、最简单的方法是使用官方 Docker 镜像。请查看 文档。

本地安装

如果你只是想玩玩,你可以简单地 fork 这个仓库,然后执行以下步骤:

  • 运行 git remote add upstream https://github.com/huginn/huginn.git 将主仓库添加为你的 fork 的远程仓库。
  • 复制 .env.example 到 .env(cp .env.example .env)并编辑 .env,至少要更新 APP_SECRET_TOKEN 变量。
  • 确保你已经安装了 MySQL 或 PostgreSQL。(在 Mac 上,最简单的方法是使用 Homebrew。如果你打算使用 PostgreSQL,你需要在下面的所有命令前加上 DATABASE_ADAPTER=postgresql。)
  • 运行 bundle 以安装依赖
  • 运行 bundle exec rake db:create、bundle exec rake db:migrate,然后 bundle exec rake db:seed 来创建一个带有示例 Agents 的开发数据库。
  • 运行 bundle exec foreman start,访问 http://localhost:3000/,并使用用户名 admin 和 rake db:seed 打印的密码登录(或者设置 SEED_PASSWORD 来选择一个密码)。
  • 设置一些 Agents!
  • 阅读 wiki 获取使用示例并开始创建新的 Agents。
  • 定期运行 git fetch upstream,然后 git checkout master && git merge upstream/master 来合并 Huginn 的最新版本。

注意:默认情况下,电子邮件消息会被拦截在 development Rails 环境中,这就是你刚设置的环境。你可以在 http://localhost:3000/letter_opener 查看它们。如果你希望在本地使用 Huginn 时通过 SMTP 发送真实邮件,将 SEND_EMAIL_IN_DEVELOPMENT 在你的 .env 文件中设置为 true。

如果你需要更详细的说明,请参阅 新手设置指南。

开发

所有 agents 都有规格(specs)!并且还有模拟在无头浏览器中运行 Huginn 的验收测试。

  • 安装 Google Chrome 和 ChromeDriver 以运行本地功能测试规格
  • 或者使用 docker/test/README.md 中基于 Docker 的测试环境
  • 运行所有规格使用 bundle exec rspec
  • 使用 bundle exec rspec path/to/specific/test_spec.rb 运行特定的规范。
  • 在这里阅读有关 Rails 的 rspec 的更多信息 这里。

使用 Huginn Agent 宝石

Huginn Agents 现在可以作为外部 gems 编写,并可以通过 ADDITIONAL_GEMS 环境变量添加到您的 Huginn 安装中。有关更多信息,请参见 .env.example 的 Additional Agent gems 部分。

如果您想编写自己的 Huginn Agent Gem,请参见 huginn_agent。

我们的一般意图是鼓励将复杂且特定的 Agents 编写为 Gems,同时继续向核心 Huginn 仓库添加新的通用 Agents。

部署

请参阅 Huginn Wiki 以获取不同提供商的详细部署策略。

Heroku

在 Heroku 上尝试 Huginn:(设置需要几分钟。在等待时阅读 文档,启动后务必点击 'View it'!)Huginn 仅在 Heroku 的付费订阅计划上启动。对于非实验性用途,我们强烈推荐 Heroku 的 1GB 付费计划或我们的 Docker 容器。

OpenShift

OpenShift 在线

在 OpenShift Online 上尝试 Huginn

使用 mysql 或 postgres 创建一个新应用:

oc new-app -f https://raw.githubusercontent.com/huginn/huginn/master/openshift/templates/huginn-mysql.json

或

oc new-app -f https://raw.githubusercontent.com/huginn/huginn/master/openshift/templates/huginn-postgresql.json

注意:您也可以使用网页控制台导入任意 json 文件,方法是进入“添加到项目” -> “导入 YAML/JSON”。

如果您使用的是入门计划,请确保按照指南删除任何现有应用程序。

模板应适用于 v3 安装或当前 v4 在线版本。

在任何服务器上手动安装

请查看安装指南。

可选设置

用于私有开发的设置

请参阅 wiki 上的私有开发说明。

Enable WeatherAgent

为了使用 WeatherAgent,您需要一个来自 Pirate Weather 的天气数据 API 密钥。注册一个,然后在您初始化的 WeatherAgent 中更改 api_key: your-key 的值。

限制共享实例上的出站请求

如果不完全信任的人可以在您的实例上创建 Agent,请通过出口代理路由出站请求,以便 Agent 无法访问内部服务。请参阅 doc/manual/outbound-requests.md。

Disable SSL

我们假设您的部署将通过 SSL 运行。这是非常好的做法!但是,如果您希望关闭此功能,您可能需要编辑 config/initializers/devise.rb 并修改包含 config.rememberable_options = { :secure => true } 的行。同时,您还需要编辑 config/environments/production.rb 并修改 config.force_ssl 的值。

许可证

Huginn 在 MIT 许可证下提供。

Huginn 最初由 @cantino 于 2013 年创建。从那时起,许多人的奉献使其发展成为今天的样子。

本站来源与版权声明
  • 本文标题:huginn - 创建能够代表你监控和行动的代理
  • 本文链接:https://www.cn121.com/automation/huginn-huginn.html
  • 原项目:huginn/huginn 版权归原作者 huginn 及贡献者所有
  • 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 huginn/huginn。
  • 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。