MGVAIMember 项目架构 & 诊疗思维教练
正大天晴诊疗思维训练 · 产品经理技术理解手册
一、项目整体架构:把系统当成"公司"
请求流转全链路
用户发请求
{ type, planning, message }
① MemberFactory
按 type 找到 Agent 类,实例化
② @route 路由
按 planning 找到工作流方法
③ StateGraph 执行
按节点和边执行工作流
④ _ainvoke_llm
调 LLM 生成回复
⑤ 返回 AIMessage
流式/非流式返回给用户
PM 只需要关注 ①②③ 这三层——它们决定了"哪个 Agent 做什么、流程怎么走"。④⑤ 是工程实现细节。
二、Agent 清单:公司里有哪些"员工"
🏥
ai_customer
模拟客户,陪练销售话术
📚
ai_course_designer
自动生成培训课程
🧠
ai_knowledge_base
对话式搭建知识库
🩺
ai_medical_coach
诊疗思维教练(新增)
三、诊疗思维教练:训练流程详解
STEP 0
开场确认
"你好!最近工作怎么样,有没有正在重点跟进的客户或者准备推广的产品?"
画像 获取目标客户 + 关联产品,追问选择依据(潜力与接受度)
STEP 1
对疾病的认知
"在疾病认知这块,你觉得这位医生的关注点是什么?"
画像 了解医生对该疾病的整体认知和关注点(行为、观念、动机)
STEP 2
筛查与诊断
"这位医生在诊断时通常怎么看?最看重哪个检查结果?"
画像 了解医生在诊断时的习惯和判断逻辑
STEP 3
治疗方案
"这位医生目前主要用什么治疗方案?"
画像 对比 了解现状方案 + 对比分析(我们的方案切入机会在哪)
STEP 4
品牌选择
"这位医生通常会选哪些厂家的品牌?"
画像 对比 了解品牌偏好 + 我们的竞争优势
STEP 5
剂量与疗程
"这位医生在用药剂量和疗程上有什么习惯?"
画像 对比 了解用药习惯 + 产品在剂量疗程上的优势
STEP 6
依从性
"这位医生对患者长期用药管理关注到什么程度?"
画像 对比 了解患者管理关注 + 我们的支持优势
STEP 7
机会点识别
"有差距的地方就是机会点——你觉得重点应该从哪一步切入?"
决策 汇总六步差距,引导学员选择重点切入点
STEP 8
关键增长点
"推动这位医生在这个环节的观念转变,你觉得能获益吗?"
决策 三问校准:获益性 → 资源匹配 → 可行性
STEP 9
行动计划
"切入点确定了,接下来你打算怎么做?"
行动 产品策略(FABE) + 具体行动 + 挑战预判 + 预期结果
前2步(疾病认知、筛查诊断)只做画像梳理;后4步(治疗方案至依从性)画像 + 对比分析找差距;最后3步是决策和行动。
四、阶段推进机制:教练怎么知道"该下一步了"
核心设计:隐藏阶段标记
LLM 每次回复末尾带一个用户看不到的标记,代码解析后更新训练进度。
我最近在跟进肿瘤科的张医生,推福可维
好的,张医生我记下了。我们开始梳理他的诊疗画像,准备好了吗?
<!--STAGE:对疾病的认知-->
他好像比较关注靶向治疗
靶向治疗是重点,你觉得他最看重哪个靶向药的疗效数据?
<!--STAGE:对疾病的认知-->
他主要看EGFR突变的患者,比较关注一线治疗
了解了。小结一下:张医生关注EGFR突变的靶向治疗,尤其是一线方案。接下来看看他在诊断这块怎么看。
<!--STAGE:筛查与诊断-->
用户看到的:标记前的自然对话内容
代码读到的:标记中的阶段名 → 更新 state["data"]["coach_stage"]
五、数据流:训练进度存在哪里
state["data"] — 教练的"笔记本"
coach_stage: "对疾病的认知"
coach_target_doctor: "张医生/肿瘤科"
coach_target_product: "福可维"
coach_stage_summaries: {...}
coach_validation_passed: [...]
每次对话时,教练看到的"备忘录"
【当前阶段:对疾病的认知】
本阶段目标:了解医生对该疾病的整体认知和关注点
引导问题:在疾病认知这块,你觉得这位医生的关注点是什么?
推进条件:学员描述了该阶段画像,或追问2轮后进入阶段反馈
⚠️ 本阶段需要引导对比分析(现状 vs 我们的产品机会)
目标客户:张医生/肿瘤科
关联产品:福可维
已梳理阶段:
- 开场:确认目标客户张医生,产品福可维
六、产品功能 → Agent 映射(全局)
用户能感知到的功能
| 产品功能 |
Agent |
路由 (planning) |
说明 |
| 练习(AI客户对话) |
ai_customer |
ai_chat |
模拟客户陪练销售话术 |
| 问一问 |
ai_genius |
ai_assistant_chat |
通用问答 + 可选知识库 RAG |
| C端建课 |
ai_course_designer |
conversational_course_tailor |
学员自助创建AI客户课程 |
| B端建课 |
ai_course_designer |
conversational_course_designer |
管理员对话式设计课程 |
| 创建知识库 |
ai_knowledge_builder |
conversational_kb_builder |
对话式搭建/编辑知识库 |
| 闪卡(评分) |
ai_coacher |
flashcard_score |
问答题/选择题/朗读背诵实时评分 |
| 考官(出题) |
ai_examiner |
get_question |
随机出题,支持多种题型 |
| 演讲评分 |
ai_evaluator |
ai_speech_scorer |
演讲完整评估框架 |
| 朗读/背诵 |
ai_scorer |
ai_read_and_recite_scorer |
朗读背诵评分 |
| 数字人/课程图片 |
ai_multimodal |
customized_avatar_gen |
数字人头像/视频/课程图片生成 |
| 练习后报告对话 |
ai_report_assistant |
report_chat |
练习结束后的AI报告追问 |
| 练习中实时提示 |
ai_chat_practice_assistant |
real_time_assistant |
练习进行中的实时辅助 |
| 诊疗思维训练 |
ai_medical_coach |
practice |
引导医药代表梳理医生诊疗画像(新增) |
评分调度链
后端统一调 ai_scorer,由它按 planning 名分发到具体评分 Agent:
AI教练页面的模式切换
前端一个页面,通过 switch_agent 切换后端 Agent:
| 前端入口 | switch_agent 值 | 实际 Agent + 路由 |
| 问一问 | "qa" | ai_genius + ai_assistant_chat |
| C端建课 | "create_ai_customer_course" | ai_course_designer + conversational_course_tailor |
| B端建课 | "ai_course_designer" | ai_course_designer + conversational_course_designer |
| 创建知识库 | — | ai_knowledge_builder + conversational_kb_builder |
七、开发进度
| 步骤 |
内容 |
状态 |
| 第1步 |
搭骨架 — 新建 Agent + 最简流程(注册、路由、单节点 StateGraph) |
已完成 |
| 第2步 |
完善流程 — 完整 System Prompt + 9步训练流程 + 阶段推进标记 |
已完成 |
| 第3步 |
加记忆 — 对话持久化 + 画像积累(接 Memory 系统) |
待做 |
| 第4步 |
接知识库 — RAG 检索医学资料,对比分析环节自动检索 |
待做 |
当前文件:agents/member/ai_medical_coach.py
分支:feat/medical_coach