需先启用Dify时区支持并重启worker服务,再构建含时区信息的客服知识库,配置意图识别与动态槽位填充,编排多时区决策工作流,并嵌入支持时区感知的官网浮窗。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

确认Dify环境已就绪并支持多时区调度
你要让客服排班助手自动适配美东、欧洲、东南亚三地工作时间,首先得确保Dify底层能识别并处理时区逻辑——不是所有部署方式都默认开启这项能力。
登录Dify控制台后,进入【设置 → 系统配置】,检查「时区支持」开关是否为启用状态。若未开启,手动打开并保存;【该操作需重启worker服务才能生效,否则后续排班计算全按UTC时间错位】。
验证方法:在应用调试窗口输入“现在东京几点”,观察返回时间是否带+09:00偏移。若显示UTC时间或报错“无法解析时区”,说明worker未重载配置。
构建多时区客服资源知识库
排班依赖真实人力数据,不能靠模型瞎猜。你需要把客服团队的物理分布、排班规则、休假计划结构化录入知识库。
创建新知识库,命名为“客服人力排班表(含时区)”,上传三类文件:
① 客服人员清单.xlsx:必须包含字段【姓名】【所属国家】【本地工作时段(如09:00–17:00)】【时区代码(如Asia/Shanghai)】;
② 节假日日历.csv:含【日期】【国家/地区】【是否休班】三列,例如2026-12-25,US,true;
③ 轮班规则.md:用自然语言写清约束,如“美东组每日至少2人在线”“跨时区重叠时段(UTC 14:00–16:00)必须有中英双语客服”。
上传后,在知识库设置里选择「父子分段」策略,并勾选「启用元数据提取」——这能让Dify自动把Excel中的时区代码识别为可检索属性,否则排班查询会漏掉关键过滤条件。
配置排班意图识别与动态槽位填充
用户问“下周二伦敦时间下午3点有没有德语客服?”时,系统必须精准拆解出【时间点】【地点】【语种】三个维度,且时间要实时换算成对应时区的本地时刻。
方法一:使用Dify内置意图节点
在应用画布中新建意图节点,命名为“查询排班覆盖”,添加三个必填槽位:time_local(类型:datetime)、location(类型:string)、language(类型:string)。为time_local槽位启用「时区自动推断」,并绑定location字段值作为参考时区源。
方法二:用自定义工具函数做硬转换
编写Python webhook工具,接收原始提问字符串,调用pytz库将“伦敦时间下午3点”转为UTC时间戳,再反向匹配各客服的本地工作时段。此方法更准但需额外部署服务,适合已有运维能力的团队。
【注意:若跳过时区绑定直接用字符串匹配,Dify会把所有时间当作UTC处理,导致美东客服凌晨2点被错误标记为“在线”】
编排多时区排班决策工作流
这不是简单问答,而是带条件分支的调度决策。你得让Dify按真实业务逻辑走判断链:
第一步:从知识库检索匹配location和language的客服列表;
第二步:对每人执行时区转换——用其时区代码将用户请求的time_local转为其本地时间;
第三步:比对其本地时间是否落在工作时段内,且当日非节假日;
第四步:统计满足条件的人数,若≥1则返回名单+预计响应延迟(如“Frank(柏林)将在2分钟内接入”),若为0则触发兜底动作:启动跨时区调度预案(自动通知下一时区待命人员)或建议用户预约回电。
这个工作流必须用Dify v1.5+的Runtime Context机制,否则跨节点无法传递转换后的本地时间变量,每一步都会断联。
嵌入官网并启用时区感知浮窗
把排班助手挂到官网右下角时,不能只放一个静态聊天图标——访客来自不同时区,看到的提示语必须动态变化。
在发布设置中启用「客户端时区探测」,Dify会自动读取浏览器Intl.DateTimeFormat().resolvedOptions().timeZone返回值;
然后在开场白模板里插入变量:{{ $timezone }},例如配置为“您好!当前是{{ $timezone }}时间,我们的{{ $timezone | timezone_to_region }}客服正在为您服务”,这样美国用户看到的是“当前是America/New_York时间,我们的美东客服正在为您服务”;
最后复制生成的HTML代码,粘贴到官网


















