跳至主要內容

Workers

有關使用模式及部署拓撲,請參閱 Workers

環境變數
環境變數 的直接連結

MASTRA_WORKERS
mastra_workers 的直接連結

控制在目前程序中啟動哪些 Workers。

行為
(未設定)根據設定自動建立預設 Workers
"false"停用 Worker 事件處理。程序會繼續處理 HTTP 請求,亦可將事件發佈至 PubSub(例如啟動 Workflow),但不會取用這些事件。
"orchestration"只啟動編排 Worker
"scheduler"只啟動排程 Worker
"backgroundTasks"只啟動背景任務 Worker
"orchestration,scheduler"多個 Workers(以逗號分隔)

使用此變數,即可透過同一個建置產物,在不同容器中執行不同類型的 Worker。

MASTRA_STEP_EXECUTION_URL
mastra_step_execution_url 的直接連結

API 伺服器的基礎 URL,供編排 Worker 遙距執行 Workflow 步驟。當編排 Worker 與 API 在不同程序中執行時,必須設定此變數。

MASTRA_STEP_EXECUTION_URL=http://api:4111/api

在生產環境中請使用 HTTPS URL。請參閱安全建議

編排 Worker 會將步驟執行請求傳送至:

${MASTRA_STEP_EXECUTION_URL}/workflows/:workflowId/runs/:runId/steps/execute

MASTRA_WORKER_AUTH_TOKEN
mastra_worker_auth_token 的直接連結

編排 Worker 呼叫 API 的步驟執行端點時所傳送的 bearer token。API 設定的身份驗證 Provider 必須能識別此 token。請參閱 Worker 身份驗證

MASTRA_WORKER_AUTH_TOKEN=sk-worker-secret-token

Worker 類型
Worker 類型 的直接連結

OrchestrationWorker
OrchestrationWorker 的直接連結

處理來自 PubSub workflows topic 的 Workflow 事件。必須配置支援 pull subscription 的 PubSub,例如 @mastra/redis-streams@mastra/google-cloud-pubsub

  • 名稱orchestration
  • PubSub topicworkflows
  • Consumer groupmastra-orchestration

SchedulerWorker
SchedulerWorker 的直接連結

輪詢儲存空間中已到期的 cron 排程,並發佈 workflow.start 事件。

  • 名稱scheduler
  • 只限單一執行個體:只執行一個執行個體,以免重複觸發

BackgroundTaskWorker
BackgroundTaskWorker 的直接連結

執行由 Agent 分派的背景 Tool 呼叫。

  • 名稱backgroundTasks
  • PubSub topicbackground-tasks
  • Consumer groupbackground-task-workers
  • 支援多個副本:各執行個體共用同一個 Consumer group

支援的儲存後端
支援的儲存後端 的直接連結

如要在部署中執行所有 Worker 類型,儲存後端必須實作 workflowsbackgroundTasksschedules domain。SchedulerWorker 尤其需要 schedules domain。如果你不使用排程 Workflow,沒有實作此 domain 的後端仍可支援編排及背景任務。以下後端支援全部三個 domain:

後端依賴套件
PostgreSQL@mastra/pg
LibSQL@mastra/libsql
MySQL@mastra/mysql
MongoDB@mastra/mongodb
Spanner@mastra/spanner
Convex@mastra/convex

其他儲存後端(Upstash、DynamoDB、Cloudflare D1、ClickHouse、Redis)支援 Workflow 及部分 Worker 功能,但並未實作 schedules domain。如果不部署排程器,仍可將它們用於編排及背景任務 Worker。