MGVAIMember 项目架构 & 诊疗思维教练

正大天晴诊疗思维训练 · 产品经理技术理解手册

一、项目整体架构:把系统当成"公司"

🏢 MGVAIMember = 一家 AI 员工外包公司
公司组织架构agents/member/ 目录 — 有哪些"员工"(Agent),每个负责什么业务
员工简历每个 Agent 文件顶部的 @register@route — 这个员工会哪些"技能"
工作流程LangGraph StateGraph — 员工接到任务后,按什么步骤执行
工作记忆memory/chat_record.py — 员工的"短期记忆"和"长期记忆"
工具箱tools/ 目录 — 员工能调用哪些外部工具(搜索、RAG、OCR 等)
话术模板prompts/ 目录 — 员工的"话术本",决定输出风格和质量
前台接待httpapp/routes/ — 外部请求怎么进来,响应怎么出去

请求流转全链路

用户发请求
{ type, planning, message }
HTTP 路由
/api/chat
① MemberFactory
按 type 找到 Agent 类,实例化
② @route 路由
按 planning 找到工作流方法
③ StateGraph 执行
按节点和边执行工作流
④ _ainvoke_llm
调 LLM 生成回复
⑤ 返回 AIMessage
流式/非流式返回给用户
PM 只需要关注 ①②③ 这三层——它们决定了"哪个 Agent 做什么、流程怎么走"。④⑤ 是工程实现细节。

二、Agent 清单:公司里有哪些"员工"

🏥
ai_customer
模拟客户,陪练销售话术
🎓
ai_coach
AI 教练,评估打分给反馈
📚
ai_course_designer
自动生成培训课程
🧠
ai_knowledge_base
对话式搭建知识库
📝
ai_examiner
AI 考官,出题监考
ai_scorer
多维度统一评分
🎤
ai_speecher
语音训练和评估
🩺
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_scorer
评分总调度
ai_evaluator
对话/演讲评分
ai_coacher
闪卡实时/总分
自身处理
朗读背诵评分

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