---
{
  "id": "platform.delivery.workflow-delivery-steps",
  "topic": "delivery",
  "title": "Workflow Delivery steps",
  "locale": "zh-TW",
  "version": "2026-08-09",
  "summary": "Workflow Delivery step 會 enqueue 計費且 owner-scoped 的 envelope，要求 authoring Agent 的 endpoint write grant，並刻意不在 run detail 保留 rendered content。",
  "content": "Workflow `delivery` step 必填 `id`、`type: delivery`、`endpointId` 與非空 templated `content`；`event`、`next` 選填。Event 名稱接受 1–100 個允許的 ASCII 字元，預設 `workflow.step`。執行時 outbound JSON envelope 恰為 `{workflowId, runId, stepName, content}`。Enqueue 回 `queued` 時 step 就完成，不會等待 Push receiver 接受或 Pull consumer ack。\n\nAgent 建立或更新含此 step 的 graph 時，graph validation 要求同一 Agent 的 endpoint `write` grant；`read` 不足，owner 自行寫 graph 則不需 Agent grant。Grant 之後改變時，activation 不會反向重驗已保存的 graph。Runtime dispatch 維持 owner scope、扣 owner credit，並與其他 Delivery 共用 endpoint 每分鐘 60 次及 owner 每 UTC 日 1,000 次配額。\n\nDelivery 失敗會使 Workflow run 失敗；若位於 loop，每次 visit 都獨立送出與扣款。Enqueue commit 後、step completion 寫入前 crash，可能留下一筆已扣款 delivery 與 failed run；重試前應查 Delivery history。Durable step input 只存 `endpointId`、`event`、rendered `contentBytes`，Delivery history 也不存 payload，因此任何 UI 都無法救回送出內容。只有需要 owner 內部 Notification Center 訊息時才用 `notify` step；它不會送外部 endpoint，持久化或 push 失敗也不會使 run 失敗。\n",
  "aliases": [
    "workflow delivery step",
    "把 workflow output 送到外部",
    "workflow.step",
    "delivery contentBytes",
    "workflow endpoint grant",
    "工作流程對外傳送"
  ],
  "tags": [
    "delivery",
    "workflow",
    "billing",
    "permissions"
  ],
  "relatedActions": [
    "arinova.workflow.create_workflow",
    "arinova.workflow.update_workflow",
    "arinova.workflow.run_workflow",
    "arinova.workflow.get_run",
    "arinova.delivery.list_endpoints",
    "arinova.delivery.send"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/zh-tw/kb/delivery/workflow-delivery-steps/"
}
---

Workflow `delivery` step 必填 `id`、`type: delivery`、`endpointId` 與非空 templated `content`；`event`、`next` 選填。Event 名稱接受 1–100 個允許的 ASCII 字元，預設 `workflow.step`。執行時 outbound JSON envelope 恰為 `{workflowId, runId, stepName, content}`。Enqueue 回 `queued` 時 step 就完成，不會等待 Push receiver 接受或 Pull consumer ack。

Agent 建立或更新含此 step 的 graph 時，graph validation 要求同一 Agent 的 endpoint `write` grant；`read` 不足，owner 自行寫 graph 則不需 Agent grant。Grant 之後改變時，activation 不會反向重驗已保存的 graph。Runtime dispatch 維持 owner scope、扣 owner credit，並與其他 Delivery 共用 endpoint 每分鐘 60 次及 owner 每 UTC 日 1,000 次配額。

Delivery 失敗會使 Workflow run 失敗；若位於 loop，每次 visit 都獨立送出與扣款。Enqueue commit 後、step completion 寫入前 crash，可能留下一筆已扣款 delivery 與 failed run；重試前應查 Delivery history。Durable step input 只存 `endpointId`、`event`、rendered `contentBytes`，Delivery history 也不存 payload，因此任何 UI 都無法救回送出內容。只有需要 owner 內部 Notification Center 訊息時才用 `notify` step；它不會送外部 endpoint，持久化或 push 失敗也不會使 run 失敗。
