> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 流式获取工作流事件

> 在工作流运行暂停或原始 SSE 连接断开后恢复 Server-Sent Events 流。对于已结束的运行，流仅发送单个 `workflow_finished` 事件后关闭。



## OpenAPI

````yaml /zh/api-reference/openapi_chatflow.json get /workflow/{task_id}/events
openapi: 3.0.1
info:
  title: 工作流编排对话型应用 API (对话流 API)
  description: >-
    对话流应用支持会话持久化，允许将之前的聊天记录作为响应的上下文。对话流应用使用 `advanced-chat`
    模式，提供工作流级别的流式事件，用于详细的执行追踪，包括节点开始、完成、迭代和工作流生命周期。
  version: 1.0.0
servers:
  - url: https://{api_base_url}
    description: 工作流编排对话型应用 API 的基础 URL。自部署时，替换为你的 API 基础 URL。
    variables:
      api_base_url:
        default: api.dify.ai/v1
        description: API 基础 URL 的主机与路径，不含 `https://` 前缀。
security:
  - ApiKeyAuth: []
tags:
  - name: 对话流
    description: 对话流应用的操作，包括对话消息、工作流执行详情和事件流。
  - name: 文件操作
    description: 文件上传和预览操作。
  - name: 终端用户
    description: 终端用户信息相关操作。
  - name: 消息反馈
    description: 用户反馈操作。
  - name: 会话管理
    description: 与管理会话相关的操作。
  - name: 语音与文字转换
    description: 文字转语音和语音转文字操作。
  - name: 应用配置
    description: 获取应用设置和信息的操作。
  - name: 标注管理
    description: 与管理标注直接回复相关的操作。
  - name: 人工介入
    description: 暂停等待人工输入的工作流恢复操作。
paths:
  /workflow/{task_id}/events:
    get:
      tags:
        - 对话流
      summary: 流式获取工作流事件
      description: >-
        在工作流运行暂停或原始 SSE 连接断开后恢复 Server-Sent Events 流。对于已结束的运行，流仅发送单个
        `workflow_finished` 事件后关闭。
      operationId: streamChatflowEvents
      parameters:
        - name: task_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: 原始 [发送对话消息](/api-reference/对话流/发送对话消息) 请求返回的工作流运行 ID。
        - name: user
          in: query
          required: true
          schema:
            type: string
          description: 发送该对话消息的终端用户标识。必须与工作流运行的创建者一致。
        - name: include_state_snapshot
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: 为 `true` 时，从持久化状态快照重放，在流式发送新事件前附带已执行节点的状态摘要。
        - name: continue_on_pause
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: >-
            设为 `true` 时，流会在多次 `workflow_paused`
            事件之间保持打开（适用于工作流包含多个连续人工介入节点的场景）。默认在首次暂停时关闭流。
      responses:
        '200':
          description: 'Server-Sent Events 流。每个事件以 `data: {JSON}\n\n` 形式送达。事件载荷结构与原始流式响应一致。'
          content:
            text/event-stream:
              schema:
                type: string
                description: >-
                  已恢复工作流运行的事件 SSE 流，格式与 [发送对话消息](/api-reference/对话流/发送对话消息)
                  相同。当恢复部分运行设置 `reasoning_format: separated` 的 LLM 节点时，本流还会携带
                  `reasoning_chunk` 事件。
              examples:
                resumedRun:
                  summary: 响应示例 - 恢复运行
                  value: >-
                    data: {"event": "human_input_form_filled", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "message_id":
                    "2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b", "conversation_id":
                    "9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7", "created_at":
                    1705407705, "workflow_run_id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "data": {"node_id":
                    "approval_node", "node_title": "Approval",
                    "rendered_content": "Please review the draft.", "action_id":
                    "approve", "action_text": "Approve"}} data: {"event":
                    "node_started", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "message_id":
                    "2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b", "conversation_id":
                    "9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7", "created_at":
                    1705407705, "workflow_run_id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "data": {"id":
                    "ne_002", "node_id": "node_llm_1", "node_type": "llm",
                    "title": "LLM", "index": 2, "created_at": 1705407705}} data:
                    {"event": "reasoning_chunk", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "message_id":
                    "2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b", "conversation_id":
                    "9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7", "created_at":
                    1705407705, "data": {"message_id":
                    "2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b", "reasoning": "The
                    reviewer approved the draft.", "node_id": "node_llm_1",
                    "is_final": false}} data: {"event": "reasoning_chunk",
                    "task_id": "c3800678-a077-43df-a102-53f23ed20b88",
                    "message_id": "2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b",
                    "conversation_id": "9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7",
                    "created_at": 1705407705, "data": {"message_id":
                    "2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b", "reasoning": "",
                    "node_id": "node_llm_1", "is_final": true}} data: {"event":
                    "message", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "message_id":
                    "2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b", "conversation_id":
                    "9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7", "answer":
                    "Approved", "created_at": 1705407706} data: {"event":
                    "node_finished", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "message_id":
                    "2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b", "conversation_id":
                    "9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7", "created_at":
                    1705407706, "workflow_run_id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "data": {"id":
                    "ne_002", "node_id": "node_llm_1", "node_type": "llm",
                    "title": "LLM", "index": 2, "status": "succeeded",
                    "elapsed_time": 1.2, "created_at": 1705407705,
                    "finished_at": 1705407706}} data: {"event": "message_end",
                    "task_id": "c3800678-a077-43df-a102-53f23ed20b88",
                    "message_id": "2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b",
                    "conversation_id": "9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7",
                    "created_at": 1705407706, "metadata": {"usage":
                    {"total_tokens": 42, "latency": 1.3}}} data: {"event":
                    "workflow_finished", "task_id":
                    "c3800678-a077-43df-a102-53f23ed20b88", "message_id":
                    "2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b", "conversation_id":
                    "9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7", "created_at":
                    1705407706, "workflow_run_id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "data": {"id":
                    "fb47b2e6-5e43-4f90-be01-d5c5a088d156", "workflow_id":
                    "7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345", "status":
                    "succeeded", "elapsed_time": 2.1, "total_tokens": 42,
                    "total_steps": 2, "created_at": 1705407629, "finished_at":
                    1705407706}}
        '400':
          description: >-
            `not_workflow_app` : Please check if your app mode matches the right
            API route.
          content:
            application/json:
              examples:
                not_workflow_app:
                  summary: not_workflow_app
                  value:
                    status: 400
                    code: not_workflow_app
                    message: Please check if your app mode matches the right API route.
        '404':
          description: '`not_found` : Workflow run not found.'
          content:
            application/json:
              examples:
                not_found:
                  summary: not_found
                  value:
                    status: 404
                    code: not_found
                    message: Workflow run not found
components:
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: API_KEY
      description: >-
        API Key 认证。对于所有 API 请求，请在 `Authorization` HTTP 头中包含您的 API Key，并加上
        `Bearer ` 前缀。示例：`Authorization: Bearer {API_KEY}`。**强烈建议将 API Key
        存储在服务端，不要在客户端共享或存储，以避免 API Key 泄漏导致严重后果。**

````