6.0 KiB
6.0 KiB
Agent A2: 医美面诊复盘与挖掘智能体 - 集成开发手册
1. 智能体简介 (Agent Overview)
Agent A2 (Consultation Reviewer) 是“销售洞察智能体系统”中的核心质检与资产挖掘引擎。它处于业务流程的“事后复盘”环节。
- 核心职责:将非结构化的面诊录音文本(ASR转写结果)转化为结构化的 JSON 数据。
- 业务价值:
- 合规风控:自动识别医疗禁忌症询问缺失和违规承诺。
- 销售洞察:分析未成交原因,还原现场博弈逻辑。
- 资产沉淀:自动挖掘金牌话术,反哺知识库。
2. 系统集成架构 (Integration Architecture)
Agent A2 位于 清洗层 与 洞察层 之间:
graph LR
A[ASR 服务] -->|raw_transcript| B(Agent A2)
B -->|JSON Report| C[业务数据库]
C -->|compliance_data| D[质检看板]
C -->|psych_insight| E[Agent B: 深度画像]
C -->|mined_scripts| F[知识库管理后台]
3. 接口规范 (Interface Specification)
该智能体通常通过 LLM API 调用实现。以下定义 Prompt 填充的数据契约。
3.1 输入参数 (Inputs)
在构建 Prompt 时,你需要将以下变量替换进提示词模板:
| 参数名 | 类型 | 必填 | 描述 | 示例值 |
|---|---|---|---|---|
transcript_text |
String | Yes | 完整的面诊录音转写文本。建议包含时间戳和说话人标识(如“发言人1”),Agent 会自动区分角色。 | "发言人1: 您好... \n 发言人2:我想做眼睛..." |
doctor_name |
String | No | 医生/咨询师姓名(若已知)。有助于 Agent 更准确地定位角色。 | "刘医师" |
consultation_date |
String | No | 面诊发生的日期。用于 JSON 中的 meta 信息填充。 | "2025-09-05" |
is_deal |
Boolean | No | 面诊后是否完成销售。用于 JSON 中的 meta 信息填充。 | "False" |
3.2 输出规范 (Outputs)
Agent A2 严格保证输出纯 JSON 格式数据。开发人员可直接进行 JSON.parse()。
3.2.1 顶层结构
{
"meta_info": { ... }, // 基础元数据
"module_1_complaint_expectations": { ... }, // 主诉与期望
"module_2_medical_history": { ... }, // 病史与禁忌症 (重点关注 safety_protocol_check)
"module_3_diagnosis": { ... }, // 诊断评估
"module_4_treatment_plan": { ... }, // 方案逻辑
"module_5_risk_disclosure": { ... }, // 风险合规 (重点关注 compliance_alert_level)
"module_6_cost_negotiation": { ... }, // 价格博弈
"module_7_psych_insight": { ... }, // 心理洞察 (流转给 Agent B)
"module_8_doctor_coaching": { ... }, // 医生教练建议
"module_9_script_mining": { ... } // 话术挖掘 (流转给 知识库)
}
3.2.2 关键业务字段解析 (用于后端逻辑处理)
后端开发需重点关注以下字段,用于触发业务逻辑或告警:
-
合规熔断/告警
- 路径:
module_5_risk_disclosure.compliance_alert_level - 值域:
"高" | "中" | "低" - Action: 若值为 "高",建议在后台标记该工单为“人工复核”,并推送消息给质检主管。
- 路径:
-
SOP 执行率统计
- 路径:
module_2_medical_history.safety_protocol_check.is_fully_compliant - 值域:
Boolean - Action: 用于计算医生的“SOP执行规范率”KPI。
- 路径:
-
违规词监控
- 路径:
module_5_risk_disclosure.prohibited_words_detected - 值域:
Array<String> - Action: 若数组非空,高亮展示违规词汇。
- 路径:
-
知识库资产入库
- 路径:
module_9_script_mining.scripts - 值域:
Array<Object> - Action: 将数组中的
refined_text和applicability_tag存入“待审核话术池”,供人工审核入库。
- 路径:
4. 异常处理建议 (Exception Handling)
由于 LLM 的非确定性,建议在代码层做以下容错:
- JSON 解析失败:
- 虽然提示词做了约束,但 LLM 偶尔可能输出 Markdown 代码块(如
```json)。建议先用正则清洗掉代码块标记,再 Parse。
- 虽然提示词做了约束,但 LLM 偶尔可能输出 Markdown 代码块(如
- 角色混淆:
- 如果录音质量极差,Agent 可能无法区分医生和患者。检查
meta_info.doctor_name是否为空或null,若无法识别,前端展示时应提示“自动分析置信度低”。
- 如果录音质量极差,Agent 可能无法区分医生和患者。检查
- 字段缺失:
- 所有字段都可能返回
null(如果对话中未提及)。前端渲染时需做空值保护(Null Safety)。
- 所有字段都可能返回
5. 开发调试 Tips
- Prompt 注入位置: 将完整的系统提示词(Core Layer 到 Operation Layer)放入 API 的
system_message或system_prompt参数中。 - Temperature 设置: 建议设置为 0.3 - 0.5。
- A2 需要一定的逻辑分析能力(不能太低),但输出格式又要严格受控(不能太高)。
- 不要设置为 0,否则生成的“话术挖掘”和“深度分析”会过于板正,缺乏灵气。
- Max Tokens: 建议预留 2000 - 4000 tokens 用于输出。一份包含深度分析和话术挖掘的完整报告通常较长。
6. 示例数据流 (Data Flow Example)
Input (ASR Text):
“医生,我想打个瘦脸针,多少钱?... 不会有副作用吧?... 好的,我今天就打。”
Agent A2 Processing...
Output (JSON Snippet):
{
"module_2_medical_history": {
"safety_protocol_check": {
"is_fully_compliant": false,
"missing_critical_items": ["重症肌无力史", "过敏史"],
"risk_assessment_analysis": "严重违规。医生在客户决定'今天就打'之前,完全未确认禁忌症。"
}
},
"module_5_risk_disclosure": {
"compliance_alert_level": "高",
"risk_disclosure_analysis": "医生对副作用问题采取了回避态度..."
},
"module_9_script_mining": {
"scripts": [] // 本次对话无亮点话术
}
}
System Action:
- 触发【高危告警】。
- SOP 评分扣除。
- 知识库无新增。