hatchet-dev/hatchet

🪓 An orchestration engine for background tasks, AI agents, and durable workflows

Hatchet – 背景任务、AI代理和持久工作流的编排引擎

是什么 – Hatchet 是一个开源平台,可让您大规模运行、调度和监控异步工作。它被定位为一种 持久性 任务队列 / 工作流引擎,可支持从简单的“发送即忘”任务到复杂的、长时间运行的 AI 代理流水线等各种场景。

为何重要 – 许多 AI 应用需要可靠的后台处理(例如,模型推理工作者、数据预处理流水线、多步骤 LLM 代理编排)。传统的队列(如 Celery 或 BullMQ)为了速度牺牲了持久性,而工作流系统(如 Temporal)虽然提供了持久性但可能过于笨重。Hatchet 的目标是结合两者:基于 PostgreSQL 的持久性层,同时具备丰富的调度、路由和可观测性功能,且足够轻量,可轻松自托管。


核心功能(如 README 所述)

领域 功能
后台任务 一次性函数、发送即忘或发送后等待、cron 与定时运行、指数退避重试、工作器标签路由、事件/Webhook 触发
工作流 / 编排 可在崩溃后恢复的持久任务、支持 DAG 的数据流水线、通过持久睡眠或事件等待实现内置暂停/恢复
扩展与控制 优先级队列、动态速率限制、并发策略(公平调度)、工作器槽位以限制单个工作器负载
可观测性 实时 Web UI、告警、日志、OpenTelemetry 集成、Prometheus 指标、支持角色的多租户视图
部署选项 可自动扩展、多区域、SSO 的托管 SaaS(Hatchet Cloud),或通过 Docker/CLI 自托管,使用 PostgreSQL 作为持久化层
语言 SDK 官方客户端库:Python, TypeScript, Go, Ruby(README 包含 Go 参考徽章和 NPM 包链接)

典型用例

  • AI 代理流水线 – 链接 LLM 调用、工具调用和外部 API 请求,同时保证每一步在崩溃后可重试或恢复。
  • 数据处理任务 – 定期调度夜间 ETL,运行转换原始数据的 DAG,并保留完整的执行历史以供调试。
  • Web 应用后台工作 – 将邮件发送、图像处理或 Webhook 处理卸载到一个可靠的队列中,可通过 UI 监控。
  • 受速率限制的集成 – 在调用第三方 API 时,使用 Hatchet 的动态速率限制功能,强制执行用户或服务级别的速率限制。

快速入门(来自 README 的流程)

  1. 试用托管服务 – 访问 cloud.hatchet.run 注册,查看一个完全部署的实例。
  2. 本地运行 – 安装 Hatchet CLI(支持 macOS、Linux、WSL),它会自动拉取 Docker,然后启动服务器:
    curl -fsSL https://install.hatchet.run/install.sh | bash
    hatchet --version
    hatchet server start
    
  3. 编写任务 – 使用任一支持的 SDK 定义函数并注册到 Hatchet。
  4. 提交工作 – 通过 SDK 或 Webhook/事件将任务入队。
  5. 监控 – 打开本地服务器提供的实时 UI,观察执行、日志和指标。

完整的自托管文档和更深入的示例请参见 官方文档


社区与支持

  • Discord – 实时帮助和讨论的主要场所。
  • GitHub Issues & Discussions – 用于报告 bug 和进行长期技术讨论。
  • 邮件 – 用于云相关支持(账单、数据删除等)。

与相关工具的差异(README 比较摘要)

  • 与 Temporal/DBOS 对比 – Hatchet 提供类似的持久工作流语义,但开箱即用集成了可观测性、速率限制和多租户 UI。
  • 与 Celery/BullMQ 对比 – 增加了持久性(完整执行历史)和更丰富的路由/优先级功能,但资源消耗更高。
  • 与 Airflow/Prefect/Dagster 对比 – 专注于高吞吐量应用工作负载,而非数据工程师导向的 ETL;支持自定义集成和更低延迟。

TL;DR

Hatchet 是一个开源、基于 PostgreSQL 的编排平台,用于可靠的后台处理和 AI 代理工作流。它提供持久任务执行、DAG 风格流水线、高级路由、内置可观测性,以及 SaaS 和自托管部署选项,并支持 Python、TypeScript、Go 和 Ruby 的 SDK。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目