# 意图驱动话术流程 - 功能定界

## 1. 功能边界（Scope）

### 1.1 核心目标
将现有的"固定话术"流程升级为"意图驱动"模式，使 AI 能够根据步骤意图和上下文灵活生成话术，而不是机械地返回预设文本。

### 1.2 覆盖范围（In Scope）

#### 后端改造
- **数据模型扩展**：在 `ScriptFlow.steps` 中增加意图驱动字段（intent, script_mode, constraints 等）
- **话术生成引擎**：在 FlowEngine 中实现三种模式的话术生成逻辑
  - `fixed`：固定话术（向后兼容）
  - `flexible`：意图驱动，AI 根据意图和约束实时生成
  - `template`：模板填充，AI 填充变量部分
- **上下文传递**：将对话历史、会话上下文传递给话术生成器
- **向后兼容**：确保现有固定话术流程不受影响

#### 前端改造
- **配置界面升级**：在话术流程配置页面增加模式选择和意图配置
- **模式切换**：支持三种模式的动态切换和对应配置项显示
- **约束条件管理**：支持添加/删除话术约束标签
- **预览增强**：在流程预览中显示意图信息

#### API 变更
- **数据结构扩展**：ScriptFlow API 的 steps 字段增加新字段（向后兼容）
- **无需新增接口**：复用现有的 CRUD 接口

### 1.3 不覆盖范围（Out of Scope）

- **意图识别**：不涉及用户输入的意图识别（已有 IntentRule 模块负责）
- **多轮对话管理**：不改变现有的流程状态机逻辑
- **LLM 模型选择**：使用现有的 LLM 调用机制，不涉及模型切换
- **性能优化**：不涉及话术生成的缓存、预生成等优化（可后续迭代）
- **A/B 测试**：不涉及多版本话术的效果对比

---

## 2. 外部接口清单

### 2.1 需要修改的接口

| 接口路径 | 方法 | 变更类型 | 说明 |
|---------|------|---------|------|
| `/admin/script-flows` | POST | 扩展请求体 | steps 字段增加意图驱动字段 |
| `/admin/script-flows/{id}` | PUT | 扩展请求体 | 同上 |
| `/admin/script-flows/{id}` | GET | 扩展响应体 | 返回新增字段 |

### 2.2 内部依赖

| 模块 | 依赖关系 | 说明 |
|------|---------|------|
| FlowEngine | 修改 | 增加话术生成逻辑 |
| Orchestrator | 调用 | 调用 LLM 生成话术 |
| ChatMessage | 读取 | 获取对话历史作为上下文 |

---

## 3. 文档清单

### 3.1 必须产出的文档

- [x] `scope.md` - 功能定界（本文档）
- [ ] `requirements.md` - 需求规范（用户故事 + 验收标准）
- [ ] `design.md` - 设计文档（数据结构 + 流程图）
- [ ] `openapi.admin.yaml` - 接口契约（扩展现有契约）
- [ ] `tasks.md` - 任务分解（Phase 划分）

### 3.2 可选文档

- [ ] `migration.md` - 数据迁移方案（如需数据库变更）
- [ ] `testing.md` - 测试用例（重点场景）

---

## 4. 风险与依赖

### 4.1 技术风险

| 风险 | 影响 | 缓解措施 |
|------|------|---------|
| LLM 生成话术不稳定 | 用户体验差 | 提供 fallback 到固定话术 |
| 生成延迟过高 | 影响对话流畅度 | 设置超时，超时返回默认话术 |
| 向后兼容性问题 | 现有流程失效 | 默认 script_mode=fixed |

### 4.2 依赖项

- **LLM 服务可用性**：依赖 Orchestrator 的 LLM 调用能力
- **数据库迁移**：需要 Alembic 迁移脚本（如果修改表结构）
- **前端组件库**：依赖 Element Plus 的表单组件

---

## 5. 验收标准概览

### 5.1 核心验收点

- [ ] 后端支持三种话术模式（fixed/flexible/template）
- [ ] 前端配置界面支持模式切换和意图配置
- [ ] 现有固定话术流程不受影响（向后兼容）
- [ ] flexible 模式能根据上下文生成不同话术
- [ ] 生成失败时有明确的 fallback 机制

### 5.2 非功能性要求

- [ ] 话术生成延迟 < 2 秒（P95）
- [ ] API 响应时间不增加 > 10%
- [ ] 数据库迁移无数据丢失

---

## 6. 下一步

确认功能边界后，请执行：

```
生成 spec/intent-driven-script/requirements.md 需求文档
```
