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 – 用於報告錯誤與長篇技術討論。
- 電子郵件 – 用於雲端相關支援(帳單、資料刪除等)。
與相關工具的差異(README 比較摘要)
- 與 Temporal/DBOS 比較 – Hatchet 提供類似的持久工作流程語意,但開箱即用整合了可觀察性、速率限制與多租戶 UI。
- 與 Celery/BullMQ 比較 – 增加了持久性(完整執行歷史)與更豐富的路由/優先權功能,但資源消耗較高。
- 與 Airflow/Prefect/Dagster 比較 – 專注於高吞吐量應用工作負載,而非資料工程導向的 ETL;支援自訂整合與更低延遲。
TL;DR
Hatchet 是一個開源、基於 PostgreSQL 的編排平台,用於可靠的背景處理與 AI 代理工作流程。它提供持久任務執行、DAG 風格流程、高階路由、內建可觀察性,以及 SaaS 與自架設部署選項,並支援 Python、TypeScript、Go 與 Ruby 的 SDK。
相關
- 專案
- 專案
- 專案
- 專案
- 專案