Learn
Dify/18-project-cs-workflow

项目实战:自动化客服工作流

最后一章,做一个自动化客服工作流:识别用户意图 → 知识库自助解答 → 复杂问题自动建工单 → 全程可控可审计。综合运用工作流、工具与 Agent。

1. 需求拆解

  • 用户提问进来,先判断意图:咨询 / 投诉 / 技术故障 / 其他
  • 咨询类:用知识库自助回答
  • 故障/投诉类:调用工具查订单、建工单,必要时转人工
  • 全流程记录日志,便于复盘

2. 工作流编排(第 10、11 章)

画布设计:

[Start: 用户问题 + 用户ID]
   → [LLM 意图分类]  (输出: intent)
   → [条件节点]
        intent == 咨询 → [知识检索] → [LLM 生成回答] → [End]
        intent == 故障 → [工具: 查订单] → [条件: 是否需人工]
                             是 → [工具: 创建工单] → [End: 已建单]
                             否 → [LLM 给出解决步骤] → [End]
        其他 → [End: 转人工提示]

意图分类节点(LLM):

请将用户问题分类为以下之一,只输出标签:
consult(咨询)/ complaint(投诉)/ fault(故障)/ other(其他)
问题:{{#start.query#}}

条件节点依据 {{#classify.intent#}} 分流。

3. 工具接入(第 9 章)

定义两个 API 工具:

# 查订单
name: query_order
method: GET
endpoint: https://api.internal.example.com/orders/{order_id}
# 创建工单
name: create_ticket
method: POST
endpoint: https://api.internal.example.com/tickets
body: { user_id, summary, priority }

工具的 description 写清「何时用、参数、返回」,保证 Agent/条件判断能正确驱动。

⚠️写操作工具要加保护

「创建工单」是写操作。工作流里应限制触发条件(仅在确认需人工时),并在后端做幂等与鉴权,避免重复建单。

4. 知识库自助解答(第 4、5 章)

咨询分支复用第 17 章的知识库,混合检索 TopK=4,把片段喂给 LLM 生成友好回答。

5. 混合 Agent(第 12 章,可选增强)

对「故障」分支,可把「查订单 → 判断 → 建单」封装为一个子 Agent,让它自主多步查证,外层工作流只负责调度与兜底。

6. 发布、评估与运营(第 14、15、16 章)

  • 发布为 WebApp 嵌入客服页;后端 API 供 App 调用
  • 收集日志,标注「分流错误 / 回答错误」的会话
  • 用标注集回归评估,逐步提升意图分类准确率
  • 权限:客服主管看全量日志,一线仅用不配
💡先覆盖主干再补长尾

第一版先稳住「咨询自助 + 故障建单」两条主线,长尾意图(方言、多意图混合)后续用更多标注慢慢补,别想一次到位。

小结

  • 用工作流把「意图分类 → 分流 → 检索/Agent/工具 → 输出」串成可控流程
  • 咨询走知识库自助,故障走工具建单,其他转人工
  • 写操作工具需条件触发 + 后端保护
  • 日志标注 + 回归评估驱动长期优化
  • 至此 18 章全部完成,你已具备端到端落地 Dify 的能力 🎉