knowledge-vault/work/client-projects/医美/正式/A1聊天记录清洗1.0集成手册.md

143 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Agent A1 集成手册 (Integration Manual)
**版本**: 2.0
**最后更新**: 2025-12-27
**适用对象**: 后端工程师、系统架构师
## 1. 智能体概览 (Agent Overview)
**Agent A1** 是整个销售洞察系统的“前哨站”。它负责处理非结构化的微信聊天记录,将其转化为结构化的客户画像数据和标准化的知识库条目。
* **输入**: 原始微信聊天记录 (Raw Text/CSV)。
* **输出**: 严格的 JSON 对象,包含客户画像 (`client_profile`)、知识挖掘 (`knowledge_mining`) 和面诊建议 (`reception_tip`)。
* **核心依赖**: LLM (推荐 GPT-4o 或同级推理能力模型),内置 `Med-3C` 心理推理框架。
* **延迟敏感度**: 异步处理(建议任务耗时 30s - 60s
## 2. 接口定义 (Interface Definition)
建议将 Agent A1 封装为一个独立的服务或 API 接口。
### 2.1 请求格式 (Request)
```json
POST /api/v1/agents/a1/process
Content-Type: application/json
{
"trace_id": "uuid-v4-string", // 用于全链路追踪
"input_data": {
"raw_chat_text": "string", // 必需。完整的聊天记录文本。建议包含时间戳和发送人ID。
"consultant_name": "string", // 可选。咨询师的微信昵称辅助LLM区分角色。
"client_name": "string", // 可选。客户的微信昵称。
"current_date": "YYYY-MM-DD" // 可选。用于推断相对时间(如“上周”)。
}
}
```
### 2.2 响应格式 (Response)
成功响应 (HTTP 200) 将返回一个标准的 JSON 包体。详细 Schema 请见下文“3. 输出数据结构详情”。
```json
{
"code": 200,
"data": {
"client_profile": { ... },
"knowledge_mining": [ ... ],
"consultation_insights": { ... },
"sales_audit": { ... },
"reception_tip": "..."
},
"usage": {
"prompt_tokens": 1200,
"completion_tokens": 800
}
}
```
## 3. 输出数据结构详情 (Output Schema)
后端系统需按照此 Schema 进行解析和入库。
### 3.1 `client_profile` (客户画像表)
* **用途**: 更新 CRM 客户档案,作为 Agent B (深度画像) 的输入源。
| 字段名 | 类型 | 说明 | 示例值 |
| :--- | :--- | :--- | :--- |
| `facts.medical_history` | String | 已确认的病史/过往项目 | "玻尿酸填充史;青霉素过敏" |
| `facts.pain_sensitivity` | String | 疼痛敏感度 | "高(曾抱怨打针疼)" |
| `facts.location_context` | String | 地理位置特征 | "异地-天津(需坐高铁)" |
| `facts.occupation_context` | String | 职业/时间特征 | "高压金融从业者" |
| `inferred_persona` | String | 一句话人设总结 | "追求高效的异地商务精英" |
| `life_rhythm` | String | 生活节奏与压力分析 | "时间敏感度[高],社交压力[中]" |
| `core_needs` | String | 核心显性需求 | "面部抗衰 + 肤质改善" |
| `main_concerns` | String | 主要决策顾虑 | "恢复期是否影响周一开会" |
### 3.2 `knowledge_mining` (知识挖掘表) - *核心资产*
* **用途**: **直接存入知识库 (Vector DB / KB SQL)**,供 Agent C 检索。
* **ETL 逻辑**: 该数组中的每一项应作为一条独立的 Record 插入知识库。
| 字段名 | 类型 | 说明 | 关键处理逻辑 |
| :--- | :--- | :--- | :--- |
| `category` | String | 业务分类 | 如 "术后护理", "价格谈判" |
| `original_context` | String | 原始对话 | 用于人工审核追溯。 |
| `refined_text` | String | **金牌话术 (SOP)** | **知识库的 `content` 字段。** |
| `why_it_works` | String | 策略分析 | 知识库的 `reasoning` 字段。 |
| `applicability_tags` | List<String> | **3C 标签** | **知识库的 `tags` 索引字段。** 严格匹配 Agent B 的输出标签。 |
**入库示例 (Pseudo-Code):**
```python
for item in response.data.knowledge_mining:
KnowledgeBase.insert({
"content": item.refined_text,
"tags": item.applicability_tags, # e.g. ["Mem:社交败露恐惧"]
"metadata": {
"source": "A1_Chat_Mining",
"reasoning": item.why_it_works
}
})
```
### 3.3 其他字段
* `reception_tip` (String): 直接展示在医生/前台接待 iPad 端。
* `sales_audit` (Object): 包含 `strategy_mismatch_alert`。若非 null应在 CRM 中对该销售主管发送“预警通知”。
## 4. 业务逻辑与处理流程 (Workflow)
1. **预处理 (Pre-processing)**:
* **清洗格式**: 将导出的微信记录(通常是混乱的文本)处理为 `[Time] [Speaker]: [Content]` 的标准格式,减少 Token 消耗。
* **截断策略**: 建议仅截取最近 3-6 个月的聊天记录,或限制 Token 数在 10k-20k 之间,避免上下文溢出。
2. **Prompt 组装**:
* 加载 `System Prompt` (即上文提供的 Agent A1 V2.0 提示词)。
* 将预处理后的聊天记录注入 Prompt 的 `User Message` 部分。
3. **LLM 调用**:
* Temperature 建议设置在 `0.2 - 0.4`,保证输出格式的稳定性。
* **强制 JSON 模式**: 务必开启 Model 的 `JSON Mode` (如 OpenAI 的 `response_format: { "type": "json_object" }`)。
4. **后处理与验证 (Post-processing)**:
* **JSON Parse**: 解析返回字符串。
* **标签白名单校验**: 检查 `applicability_tags` 是否都在允许的 3C 标签列表中。如果出现未知标签,建议在入库前清洗掉或标记为“待人工审核”。
## 5. 异常处理机制 (Exception Handling)
| 异常情况 | 现象 | 建议处理方案 |
| :--- | :--- | :--- |
| **聊天记录为空/过短** | 输入文本 < 50 字符 | 直接返回默认空对象不调用 LLM节省成本 |
| **JSON 解析失败** | LLM 输出非标准 JSON | 记录 Error Log触发一次 Retry (Temperature 设为 0)。 |
| **无挖掘价值** | `knowledge_mining` 为空数组 | 正常入库 `client_profile`忽略知识库插入步骤 |
| **敏感信息残留** | 输出包含人名/手机号 | 在后端增加一层 Regex 过滤器再次清洗 PII 信息 |
## 6. 开发与测试 Checklists
### 开发阶段
- [ ] 确认后端可以接收并存储大文本聊天记录可能很长)。
- [ ] 实现了 3C 标签的 Enum 定义确保数据库能正确存储 Tag
- [ ] 实现了将 `knowledge_mining` 数组拆解并批量写入知识库的逻辑
### 测试阶段 (验收标准)
- [ ] **格式测试**: 输入一段混乱的聊天记录必须返回合法的 JSON
- [ ] **标签一致性**: `applicability_tags` 必须包含如 `[Mem: 社交败露恐惧]` 格式的标签
- [ ] **润色效果**: 对比 `original_context` `refined_text`后者必须去除口语化词汇”、“”)。
- [ ] **隐私合规**: 输出结果中不应包含具体的真实姓名