← 返回项目列表
全栈

电商客服 Agent MVP

基于 DeepSeek Tool Calling 构建智能电商客服 MVP,使用 JSON Mock 数据跑通 React 聊天页、Express API、业务 Tool、安全策略与自动化测试。

周期
个人项目|持续迭代
角色
AI 辅助独立开发
类型
全栈

01

我的工作

  • 围绕电商客服 MVP 拆分商品查询、商品推荐、订单查询、物流查询、优惠券、FAQ、售后规则和人工转接 8 个业务 Tool。
  • 抽离统一 Tool Catalog,用 Zod 校验工具参数,并约束所有商品、订单、物流、优惠券和售后事实只能来自 `data/*.json`。
  • 新增基于 `@modelcontextprotocol/sdk` 的 MCP Tool Layer,将同一组电商业务 Tool 注册为可通过 MCP 调用的工具,并提供 stdio server 与内存执行器。
  • 封装 DeepSeek OpenAI 兼容调用层,将模型、base URL、thinking 配置和 Tool Calling 协议集中在 `llmService` 管理。
  • 实现标准 Tool Calling 循环:模型决策、工具执行、结果回传、最终客服回复,并保留内存多轮上下文和工具失败处理。
  • 将提示词攻击、API Key、隐私查询、越权订单操作等风险请求前置到安全策略中,在调用模型前直接拒答或进入转人工边界。
  • 构建 React + Vite + TailwindCSS 聊天页,提供由后端从 Mock 数据动态生成的演示快捷入口。
  • 补充 README、架构图、流程图、典型场景、Tool 清单、AI 分工说明、MIT License、Security、CI 和 Issue/PR 模板。
  • 建立后端、Tool、安全策略、路由、数据完整性、MCP 执行器和前端组件测试;latest main 分支 GitHub CI 已通过。

02

技术流程

  1. 用户在 React 聊天界面输入客服问题
  2. Express /chat 接口先执行 safetyPolicy 风险检查
  3. 允许进入模型流程后,chatService 组合 system prompt、历史消息和 tools schema
  4. DeepSeek 返回 tool_calls,Tool Catalog / Tool Registry 校验工具名和参数
  5. 业务 Tool 从 data/*.json 读取结构化 Mock 数据
  6. 模型结合 Tool 结果生成最终客服回复
  7. 投诉、赔偿、法律、账号异常、愤怒用户或连续失败确定性转人工
  8. 同一组 Tool 也可通过 MCP server 暴露给 MCP 客户端或内存执行器调用

03

问题与约束

Agent 项目容易只停留在聊天界面演示,真正影响可信度的是业务事实来源、Tool 边界、异常处理和安全策略。该项目重点验证一条可运行链路:React 页面、Express 聊天接口、DeepSeek Tool Calling、JSON 业务 Tool、最终客服回复,并明确不把 MVP 包装成生产系统。

04

关键技术决策

用 Tool Catalog 管理能力边界

将商品、推荐、订单、物流、优惠券、FAQ、售后规则和人工转接注册为统一 Tool Spec,再同时供 Tool Registry 与 MCP server 复用。

MCP 层不复制业务逻辑

MCP server 只负责协议适配和结构化返回,实际业务仍调用同一组 Tool,避免 Function Calling 与 MCP 两套实现分叉。

安全策略前置

提示词泄露、API Key、隐私查询、越权改订单等请求不交给模型自由判断,而是在调用模型前确定性拦截。

演示入口动态生成

MVP 没有登录系统,因此通过 `/demo/examples` 从 JSON 数据动态生成可点击案例,避免演示者手动记 Mock 订单号和物流单号。

MVP 保持可运行但不伪装生产化

当前使用 JSON Mock 数据和内存会话,重点验证 Agent 核心链路;仓库明确不包含数据库、登录、JWT、RAG、后台管理、Docker、消息队列或多 Agent。

05

结果与复盘

完成一个可运行的智能电商客服 Agent MVP,并将仓库整理为可展示作品:README 包含界面预览、架构图、Tool Calling 时序、典型场景、Tool 清单和验证结果;最新 main 分支已合入 MCP Tool Layer,GitHub Actions 覆盖类型检查、Lint、测试和构建且通过。live intent 测试需真实 DeepSeek API Key 手动运行。

06

项目边界

公开个人项目。当前为 MVP,不连接真实电商平台,不处理真实订单;不包含数据库、登录、JWT、RAG、后台管理、Docker、消息队列或多 Agent。AI 参与了较多编码和文档生成,本人主要负责方向定义、阶段边界、功能验收、验证和迭代。