Dify中工作流异步执行需切换为异步模式并配置HTTPS回调地址,回调请求含X-Dify-Signature签名,服务端须按timestamp+body+callback_url+secret顺序验签,响应体含task_id、status及outputs或error字段。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中实现工作流的异步执行与结果回调,是为了避免长耗时任务阻塞前端响应、提升用户体验,并确保处理完成后的状态能准确通知外部系统。这需要明确区分同步调用与异步触发路径,且必须主动配置回调地址与事件监听机制。
启用工作流的异步执行模式
进入Dify控制台 → 应用管理 → 选择目标应用 → 点击「工作流」标签页 → 找到对应工作流卡片 → 点击右上角「编辑」按钮。
在工作流编辑界面左侧导航栏点击「设置」→ 向下滚动至「执行模式」区域 → 将「执行方式」从默认的「同步」切换为「异步」→ 点击右上角「保存」。
【切换后,所有通过API触发该工作流的请求将不再等待执行完成,而是立即返回task_id】。若仍需同步结果,必须改用轮询或回调机制,否则前端会收到空响应体或超时错误。
配置HTTP结果回调地址
方法一:在工作流设置中直接填写
保持在上一步的「设置」页 → 找到「回调配置」模块 → 在「回调URL」输入框中填入你已部署好的接收端点(例如 https://your-domain.com/dify-callback)→ 勾选「启用回调」→ 点击「保存」。
方法二:通过API动态指定(适用于多租户或临时回调场景)
调用工作流触发API时,在POST请求体中加入 callback_url 字段:{"inputs": {}, "response_mode": "streaming", "callback_url": "https://tenant-a.example.com/callback"}。该字段优先级高于工作流全局配置,但【必须使用HTTPS协议,且域名需提前在Dify后台「安全设置」中白名单放行】。
验证回调事件结构与签名验真
第一步:确认回调请求头含 X-Dify-Signature 字段
Dify会在每次回调请求的Header中携带该字段,值为HMAC-SHA256签名,密钥为你在「应用设置 → API密钥」页面生成的「Callback Secret」。
第二步:服务端需按顺序拼接待签名字符串
取回调请求原始body(JSON格式,不带空格)、timestamp(X-Dify-Timestamp头值)、callback_url(请求URL路径及参数全量)、secret,按 timestamp + body + callback_url + secret 拼接后计算HMAC-SHA256,再与X-Dify-Signature比对。任意字段缺失或顺序错乱都会导致验签失败。
第三步:解析回调Body中的关键字段
回调体为标准JSON,包含 task_id、workflow_id、status(success/failed/cancelled)、outputs(仅success时存在)、error(仅failed时存在)。status为success不代表业务逻辑成功,需结合outputs内容做二次判断。


















