feat: initial project setup with planning docs

Smart Support - AI customer service action layer framework.
Includes design doc, CEO plan, eng review, test plan, and README.
This commit is contained in:
Yaojia Wang
2026-03-29 21:11:36 +02:00
commit f93e8baef1
8 changed files with 762 additions and 0 deletions

160
README.md Normal file
View File

@@ -0,0 +1,160 @@
# Smart Support
AI 客服行动层框架。粘贴你的 API获得一个能执行真实操作的智能客服。
## 问题
现有客服工具Zendesk、Intercom、Ada擅长回答 FAQ但自动化率卡在 20-30%。剩下 70% 的工单需要人工登录内部系统,手动查订单、取消订单、发优惠券。
Smart Support 是补全这个缺口的「行动层」。它不替代现有客服平台,而是让 AI 能直接调用内部系统完成操作。
## 工作原理
```
客户消息 → Chat UI → FastAPI WebSocket → LangGraph Supervisor → 专业 Agent → MCP Tools → 你的内部系统
↑ ↑
Agent 注册表 interrupt()
(YAML 配置) (人工确认)
PostgresSaver
(会话状态持久化)
```
1. 客户在聊天界面发送消息
2. LangGraph Supervisor 分析意图,路由到对应的专业 Agent
3. Agent 通过 MCP 协议调用你的内部系统(查订单、取消订单、发折扣...
4. 涉及写操作时,自动触发人工确认流程
5. 所有操作全程记录,支持回放和分析
## 核心特性
- **多 Agent 协作** - 不同操作由不同 Agent 处理,各自拥有独立的权限边界和工具集
- **即插即用** - 粘贴 OpenAPI 规范 URL自动生成 MCP 工具和 Agent 配置
- **人工确认** - 所有写操作(取消、退款、修改)需要人工审批,读操作直接执行
- **会话上下文** - 支持多轮对话Agent 能理解「取消那个订单」这样的指代
- **实时流式输出** - WebSocket 双向通信,逐 token 流式返回
- **对话回放** - 逐步查看 Agent 决策过程、工具调用和返回结果
- **数据分析** - 解决率、Agent 使用率、升级率、每次对话成本
- **YAML 驱动配置** - Agent 定义、人设、垂直模板全部通过 YAML 配置
## 技术栈
| 组件 | 技术选型 |
|------|---------|
| 后端 | Python 3.11+, FastAPI |
| Agent 编排 | LangGraph v1.1, langgraph-supervisor |
| 工具集成 | langchain-mcp-adapters, @tool |
| 状态持久化 | PostgreSQL + langgraph-checkpoint-postgres |
| LLM | Claude Sonnet 4.6(可切换 OpenAI、Google 等) |
| 前端 | React |
| 部署 | Docker Compose |
## 项目结构
```
smart-support/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI + WebSocket 入口
│ │ ├── graph.py # LangGraph Supervisor 配置
│ │ ├── agents/ # Agent 定义 + 工具
│ │ ├── registry.py # YAML Agent 注册表加载器
│ │ ├── openapi/ # OpenAPI 解析 + MCP 服务器生成
│ │ ├── replay/ # 对话回放 API
│ │ ├── analytics/ # 数据分析查询 + API
│ │ └── callbacks.py # Token 用量统计
│ ├── agents.yaml # Agent 注册表配置
│ ├── templates/ # 垂直行业模板
│ └── tests/
├── frontend/ # React 聊天 UI + 回放 + 仪表盘
├── docker-compose.yml # PostgreSQL + 应用
└── pyproject.toml
```
## 快速开始
```bash
# 启动 PostgreSQL 和应用
docker compose up
# 访问聊天界面
open http://localhost:8000
```
## Agent 配置示例
```yaml
# agents.yaml
agents:
- name: order_lookup
description: 查询订单状态、物流信息
permission: read
personality:
tone: professional
greeting: "您好,我来帮您查询订单信息。"
tools:
- get_order_status
- get_tracking_info
- name: order_actions
description: 取消订单、修改订单
permission: write # 触发人工确认
personality:
tone: careful
greeting: "我可以帮您处理订单变更,所有操作都会先经过您的确认。"
tools:
- cancel_order
- modify_order
- name: discount
description: 发放优惠券、折扣码
permission: write
tools:
- apply_discount
- generate_coupon
```
## OpenAPI 自动接入
不需要手动写 MCP 连接器。粘贴你的 API 规范 URL
1. 框架解析 OpenAPI 3.0 规范
2. LLM 自动分类每个端点(读/写、客户参数、Agent 分组)
3. 运维人员审核分类结果
4. 自动生成 MCP 服务器 + Agent YAML 配置
5. 新工具立即可用
## 安全设计
- **人工确认** - 所有写操作需要客户或运维人员批准
- **SSRF 防护** - OpenAPI URL 导入时屏蔽内网地址和 DNS 重绑定攻击
- **操作审计** - 每个操作记录 Agent、参数、结果、时间戳
- **权限隔离** - 每个 Agent 只能访问其配置的工具集
- **中断超时** - 30 分钟未确认的操作自动取消,防止过期审批
## 开发阶段
| 阶段 | 周期 | 内容 |
|------|------|------|
| Phase 1 | 第 1-3 周 | 核心框架Chat UI + Supervisor + Agent 注册表 + 中断流程 |
| Phase 2 | 第 3-4 周 | 多 Agent 路由 + Webhook 升级 + 垂直模板 |
| Phase 3 | 第 4-6 周 | OpenAPI 自动发现 + MCP 服务器生成 + SSRF 防护 |
| Phase 4 | 第 6-7 周 | 对话回放 + 数据分析仪表盘 |
## 目标用户
中型电商公司(日均 500-5000 订单5-20 名客服)的客户体验负责人。
他们的痛点:客服需要在 Zendesk 和 Shopify 后台之间反复切换手动执行查询和操作。Smart Support 让 AI 直接完成这些操作,人工只需审批关键步骤。
## 相关文档
- [设计文档](design-doc.md) - 问题定义、约束、方案选择
- [CEO 计划](ceo-plan.md) - 产品愿景、范围决策
- [工程评审计划](eng-review-plan.md) - 架构决策、测试策略、失败模式
- [测试计划](eng-review-test-plan.md) - 测试路径、边界情况、E2E 流程
- [待办事项](TODOS.md) - 延迟到后续阶段的工作
## License
MIT