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 的流程)
- 试用托管服务 – 访问
cloud.hatchet.run注册,查看一个完全部署的实例。 - 本地运行 – 安装 Hatchet CLI(支持 macOS、Linux、WSL),它会自动拉取 Docker,然后启动服务器:
curl -fsSL https://install.hatchet.run/install.sh | bash hatchet --version hatchet server start - 编写任务 – 使用任一支持的 SDK 定义函数并注册到 Hatchet。
- 提交工作 – 通过 SDK 或 Webhook/事件将任务入队。
- 监控 – 打开本地服务器提供的实时 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。
相关
- 项目
- 项目
- 项目
- 项目
- 项目