Skip to content

23 电商小二 — Agent 对话系统

学习理念:这是整门课程中和 Agent 开发最直接相关的一个项目。前面 Ch19 掌柜智库是知识图谱RAG、Ch20 掌柜问数是 Text2SQL,而电商小二是一个完整的 LLM 驱动对话系统——它有对话管理(DialogueState)、规划调度(TurnPlanner)、任务执行(Flow+Action)、知识检索(KnowledgeHandler)、闲聊(ChitChatHandler)。这套架构几乎可以直接复用到任何需要"AI 客服/助手"的场景。

海外对标:Rasa(开源对话框架)、LangGraph Agent(规划+工具调用)、Amazon Lex(对话引擎)

本节 AI 替代率:~55% | 人工干预率:~45%

角色能力范围
🤖 AI 擅长生成 Flow YAML 配置、Action 代码骨架、Jinja2 提示词模板
👤 人类需理解TurnPlanner 的规划思路、DialogueState 的状态流转、Handler 三路分流的逻辑

零、项目全景


一、资源索引

所有学习材料的关系及位置,详见 5.设计文档/README.md。此处仅列出 study 文档的学习路线:

文档对应模块优先级
📄 01_项目概述与架构.md功能概览、环境搭建、DialogueEngine、分层架构🔥
📄 02_对话状态管理.mdDialogueState、Session/Turn、序列化持久化🔥
📄 03_TurnPlanner与Handler体系.mdLLM规划、三路分流、Clarify澄清🔥
📄 04_TaskHandler:Flow+Command+Action.md流程编排、命令处理、动作系统🔥
📄 05_KnowledgeHandler与ChitChatHandler.md知识检索Proider体系、闲聊处理🟡
📄 06_API层与完整集成.mdFastAPI路由、依赖注入、Engine组装、前后端联调🟡

二、学习路径

优先级时间文档说明
🔥10 min📄 01_项目概述与架构.md必读——搞懂整个系统长什么样
🔥15 min📄 02_对话状态管理.md核心数据模型——读代码前先理解状态设计
🔥20 min📄 03_TurnPlanner与Handler体系.md核心创新——LLM 怎么决定"下一步干啥"
🔥25 min📄 04_TaskHandler:Flow+Command+Action.md最长一篇——任务流程的完整实现
🟡15 min📄 05_KnowledgeHandler与ChitChatHandler.md知识检索+闲聊兜底
🟡10 min📄 06_API层与完整集成.md看完这篇就可以自己跑起来了

三、知识重复标记

知识点首次出现本项目的角色第几次学建议
FastAPI 路由/依赖注入Ch16→Ch17API 层🔵 第 3 次关注差异点
LLM 客户端封装Ch16基础设施🟢 第 2 次了解即可
Jinja2 模板Ch17Prompt 模板🟢 第 2 次了解即可
SQLAlchemy ORMCh20对话状态持久化🟢 第 2 次了解即可
Pydantic Settings配置管理🟢 第 2 次了解即可
DialogueEngine(对话引擎)🔥 全新核心调度🔴 第 1 次重点学
DialogueState 对话状态🔥 全新状态管理🔴 第 1 次重点学
TurnPlanner LLM 规划🔥 全新规划决策🔴 第 1 次重点学
Flow + Action 系统🔥 全新任务执行🔴 第 1 次重点学
Handler 三路分流🔥 全新处理路由🔴 第 1 次重点学
KnowledgeProvider 体系🔥 全新知识检索🔴 第 1 次了解即可
Clarify 澄清🔥 全新追问机制🔴 第 1 次了解即可

四、技术栈健康度

技术健康度说明
FastAPI🔥 巅峰异步 Web 框架事实标准
LangChain⚠️ 衰退已被 LiteLLM/PydanticAI 等追赶,但仍有大量存量项目
SQLAlchemy🔥 巅峰Python ORM 事实标准
Pydantic🔥 巅峰Python 数据验证标准
Jinja2🟢 稳定模板引擎,Prompt 模板仍广泛使用
PyYAML🟢 稳定YAML 解析
Vue3 + Vite🔥 巅峰前端标准
Docker Compose🔥 巅峰本地开发环境标准

五、AI 协作指南

本文档看完后,以下问题直接问 AI:

Q: "帮我设计一个对话状态(DialogueState)的数据结构,支持多轮任务流程"
Q: "DialogueEngine 的消息处理和 Handler 分发的伪代码怎么写?"
Q: "用 YAML 定义一个电商客服的'退货申请'流程,包含 collect 和 action 步骤"
Q: "TurnPlanner 的 prompt 该怎么写,才能让 LLM 准确判断走哪条轨道?"
Q: "自定义 Action 的代码结构是怎样的?帮我写一个查天气预报的 Action"

AI 能做的:
  - 生成完整的 Flow YAML 配置
  - 生成自定义 Action 代码骨架
  - 生成 TurnPlanner 的 prompt 模板
  - 对比不同对话管理方案的优缺点

OPC 超级个体实战指南