可重连需先确认响应头含Content-Type: text/event-stream;若为application/json或空值则无法断点续传,重连只能重新发起请求。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

确认流式中断是否可重连
先检查响应头中是否包含 【Content-Type: text/event-stream】,若为 application/json 或空值,则说明服务端未启用 SSE 流式协议,此时无法断点续传,重连后只能重新发起请求。
用 curl -v 命令抓包验证:curl -v "https://your-dify/api/workflow?stream=true" -H "Accept: text/event-stream" -H "Authorization: Bearer xxx"。看到 Server: Dify 且 Transfer-Encoding: chunked 才具备重连基础。
客户端实现带断点标识的重连逻辑
第一步:在首次连接时记录服务端返回的最后一个 event id(如 id: 127),该值必须从 data 行前的 id: 字段提取,不能从 message 内容里解析。
第二步:中断后发起重连请求,必须在请求头中添加 Last-Event-ID: 127。Dify 服务端仅当识别到该字段且后端启用了 SSE 断点续传(v1.0.3+ 版本默认开启)时,才会从指定 id 后续位置恢复推送。
第三步:重连成功后,逐条校验新收到消息的 id 是否严格递增、无跳号。若发现 id=130 后直接收到 id=135,说明中间 4 条已被服务端丢弃,需触发本地补偿——向 Dify 的 /workflow/{task_id}/resume 接口补查缺失片段,该接口需携带原始 task_id 和 missing_ids=[131,132,133,134] 参数。
服务端强制启用断点续传
方法一:修改 Dify 配置文件,在 config.yaml 中添加或修正以下项:
大模型 Token 成本节约工具。在请求到达大模型之前自动压缩 prompt 和上下文,减少 60-95% 的 token 消耗,直接降低 API 成本。支持 Claude/OpenAI/Gemini 等主流模型,提供代理模式、CLI 包装、Python SDK 和 MCP Server 四种接入方式。内置一键安...
【streaming:
enable_sse_resume: true
resume_cache_ttl: 300 # 单位秒,必须 ≥ 客户端最长重连间隔】
方法二:若使用 Docker 部署,启动时注入环境变量 DIFY_STREAMING_ENABLE_SSE_RESUME=true,该变量优先级高于配置文件。
注意:未重启 Dify 服务前,所有新连接仍走旧逻辑,旧连接即使已建立也无法动态切换为可续传模式。
工作流节点级兜底补齐策略
进入工作流编辑器 → 选中关键 LLM 节点 → 点击「设置」→ 在「错误处理」中启用「启用错误出口」→ 将 error 端口拖出,连接至「HTTP 请求」节点。
该 HTTP 请求节点目标地址设为:【/api/v1/workflow/{task_id}/output?from_id={last_received_id}】,请求方法 GET,Header 带上 Authorization 和 Accept: application/json。
这一步能绕过流式通道,直接从服务端数据库拉取已生成但未送达的中间结果,适用于 WebSocket 彻底断开且 SSE 重连失败的场景。










