客服聊天代理

基于Cloudflare构建的客服聊天代理,提供订单查询、知识库搜索、工单创建与处理、任务调度等功能,并支持MCP协议。

  • by lauragift21
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 lauragift21/support-agent

使用说明

支持代理

工作坊幻灯片

基于Cloudflare构建的客户支持聊天代理,由 代理SDK它查找订单,搜索知识库,创建具有人工在环审批的工单,通过多步骤工作流处理工单,并公开其作为MCP服务器的功能。

特性

  • AI聊天 --通过Workers AI流式响应(AIChatAgent +websocket)
  • 订单查询 --从D1支持的API中按订单号获取订单详细信息
  • 知识库搜索 --搜索支持文章以回答客户问题
  • 票创建 --在执行之前创建支持票,并获得人工在环审批
  • 票务处理工作流程 --多步工作流程,使用人工智能对票证进行分类,尝试自动解决,上报未解决的问题,并将高优先级票证提交给经理审批
  • 调度 --延迟、一次性和基于cron的任务调度(例如后续提醒)
  • MCP服务器 --将订单查找、知识搜索和工单创建作为MCP兼容客户端(Claude Desktop、Cursor、VS Code等)的工具公开在 /mcp
  • 调试模式 --在标题中切换以检查原始消息JSON
  • 暗/亮模式 --通过Cloudflare的Kumo设计系统进行主题切换

项目结构

src/
  server.ts            # Chat agent with tools, scheduling, and workflow orchestration
  mcp.ts               # MCP server exposing support tools
  workflows/ticket.ts  # Multi-step ticket processing workflow
  app.tsx              # Chat UI built with Kumo components
  client.tsx           # React entry point
  styles.css           # Tailwind + Kumo styles

快速开始

npm install
npm run dev

打开 http://localhost:5173 看看代理人在行动。

尝试以下提示:

  • “ORD-1234订单的状态如何?” --通过支持API查找订单
  • “你们的退货政策是什么?” --搜索知识库
  • “为我损坏的键盘创建工单” --创建工单(先请求批准)
  • “5分钟后提醒我跟进” --安排延迟的任务

运作原理

聊天代理(server.ts)

这 ChatAgent 类扩展 AIChatAgent 并定义了AI模型可以调用的工具:

工具 类型 描述
lookupOrder 自动执行 从支持API获取订单详细信息
searchKnowledge 自动执行 搜索知识库
createTicket 审批 用户审批后创建工单
scheduleTask 自动执行 安排提醒或定期任务
runTicketWorkflow 自动执行 启动工单处理工作流程
approveWorkflowTool 自动执行 批准等待经理签字的工作流
rejectWorkflowTool 自动执行 拒绝等待经理签字的工作流

票务工作流程(workflows/ticket.ts)

一个持久的、多步骤的工作流程,由 AgentWorkflow:

  1. 分类 --使用Workers AI(Llama 3)对机票进行分类(计费、技术、运输、一般)。最多可进行3次指数回退。
  2. 解决 --在知识库中搜索匹配的文章。如果找到,自动解析。
  3. 升级 --如果未解决,则上报给支持团队。
  4. 审批门 --高优先级升级的工单暂停并等待经理批准(最多7天)。已批准的门票将获得退款;被拒绝的票将被关闭。

每个步骤都有检查点——如果工作流崩溃,它将从最后一个完成的步骤恢复。

MCP服务器(mcp.ts)

这 SupportMCP 类通过模型上下文协议公开了三个工具 /mcp:

  • lookup-order --查找客户订单
  • search-knowledge --搜索知识库
  • create-ticket --创建支持票

将任何兼容MCP的客户端连接到 <your-worker-url>/mcp 使用这些工具。

部署

npm run deploy

了解更多

许可证

麻省理工学院