# 智能聊天Agent完整示例说明

## 📋 概述

这是一个完整的聊天智能体示例，展示了如何使用平台的核心能力构建一个功能完善的聊天助手。该示例包含了记忆管理、意图识别、多分支路由、上下文传递等核心功能。

## 🎯 功能特性

### ✅ 核心能力展示

1. **记忆管理**
   - 使用缓存节点存储对话历史
   - 支持用户画像和上下文信息
   - 自动更新记忆内容

2. **意图识别**
   - 使用LLM节点分析用户意图
   - 识别情感状态
   - 提取关键词和话题

3. **多分支路由**
   - 使用Switch节点根据意图分发
   - 支持6种不同场景的处理分支
   - 默认分支处理未知意图

4. **上下文传递**
   - 使用Transform节点合并数据
   - 保持对话历史的连贯性
   - 支持多轮对话

5. **个性化回复**
   - 根据不同意图生成针对性回复
   - 考虑用户情感状态
   - 保持对话风格一致

## 🔄 工作流结构

```
开始节点
  ↓
查询记忆（Cache节点）
  ↓
合并上下文（Transform节点）
  ↓
意图理解（LLM节点）
  ↓
意图路由（Switch节点）
  ├─→ 问候处理（greeting）
  ├─→ 问题回答（question）
  ├─→ 情感回应（emotion）
  ├─→ 请求处理（request）
  ├─→ 告别回复（goodbye）
  └─→ 通用回复（default）
  ↓
合并回复（Merge节点）
  ↓
更新记忆（Cache节点）
  ↓
格式化回复（LLM节点）
  ↓
结束节点
```

## 📊 节点详细说明

### 1. 开始节点（start-1）
- **功能**: 接收用户输入
- **输入格式**: JSON格式，包含 `query` 字段
- **输出**: 将用户输入传递给后续节点

### 2. 查询记忆节点（cache-query）
- **类型**: Cache节点
- **操作**: `get` - 获取用户记忆
- **Key**: `user_memory_{user_id}`
- **默认值**: 空记忆结构
- **功能**: 从缓存中读取用户的对话历史和画像信息

### 3. 合并上下文节点（transform-merge）
- **类型**: Transform节点
- **模式**: `merge` - 合并模式
- **功能**: 将用户输入、记忆数据、时间戳合并为完整上下文

### 4. 意图理解节点（llm-intent）
- **类型**: LLM节点
- **模型**: DeepSeek Chat
- **功能**: 
  - 分析用户输入
  - 识别意图类型（greeting/question/emotion/request/goodbye/other）
  - 识别情感状态（positive/neutral/negative）
  - 提取关键词和话题
- **输出格式**: JSON
  ```json
  {
    "intent": "意图类型",
    "emotion": "情感状态",
    "keywords": ["关键词"],
    "topic": "话题主题",
    "needs_response": true
  }
  ```

### 5. 意图路由节点（switch-intent）
- **类型**: Switch节点
- **功能**: 根据意图类型路由到不同的处理分支
- **分支**:
  - `greeting` → 问候处理
  - `question` → 问题回答
  - `emotion` → 情感回应
  - `request` → 请求处理
  - `goodbye` → 告别回复
  - `default` → 通用回复

### 6. 各分支处理节点（llm-*）
- **类型**: LLM节点
- **功能**: 根据不同意图生成针对性的回复
- **特点**:
  - 问候分支：友好、亲切
  - 问题分支：准确、详细
  - 情感分支：共情、温暖
  - 请求分支：专业、清晰
  - 告别分支：温暖、期待
  - 通用分支：自然、连贯

### 7. 合并回复节点（merge-response）
- **类型**: Merge节点
- **模式**: `merge_first` - 合并第一个结果
- **功能**: 将各分支的回复结果合并

### 8. 更新记忆节点（cache-update）
- **类型**: Cache节点
- **操作**: `set` - 设置记忆
- **功能**: 
  - 将本次对话添加到历史记录
  - 更新用户画像（如需要）
  - 保存上下文信息
- **TTL**: 86400秒（24小时）

### 9. 格式化回复节点（llm-format）
- **类型**: LLM节点
- **功能**: 对最终回复进行格式化和优化
- **输出**: 自然、流畅的文本回复

### 10. 结束节点（end-1）
- **功能**: 返回最终回复
- **输出格式**: 纯文本

## 🚀 使用方法

### 方法一：使用生成脚本（推荐）

```bash
cd backend/scripts
python3 generate_chat_agent.py
```

脚本会自动创建Agent，包含完整的工作流配置。

### 方法二：手动创建

1. **进入Agent管理页面**
   - 点击"创建Agent"按钮
   - 填写名称和描述

2. **进入工作流编辑器**
   - 点击"设计"按钮
   - 使用节点工具箱添加节点
   - 按照工作流结构连接节点

3. **配置节点**
   - **LLM节点**: 配置API密钥、模型、Prompt
   - **Cache节点**: 配置缓存Key和操作
   - **Switch节点**: 配置路由规则
   - **Transform节点**: 配置数据映射

4. **测试Agent**
   - 点击"测试"按钮
   - 输入测试消息
   - 查看执行结果

5. **发布Agent**
   - 点击"发布"按钮
   - Agent状态变为"已发布"
   - 可以开始使用

## 📝 配置要点

### 1. LLM节点配置

- **Provider**: 选择AI模型提供商（如DeepSeek、OpenAI）
- **Model**: 选择具体模型（如deepseek-chat、gpt-3.5-turbo）
- **Temperature**: 
  - 意图识别：0.3（需要准确性）
  - 情感回应：0.8（需要创造性）
  - 问题回答：0.5（平衡准确性和灵活性）
- **Max Tokens**: 根据回复长度需求设置
- **Prompt**: 明确角色、任务、输出格式要求

### 2. Cache节点配置

- **Operation**: 
  - `get`: 查询记忆
  - `set`: 更新记忆
- **Key**: 使用用户ID确保记忆隔离
- **TTL**: 设置合适的过期时间（如24小时）

### 3. Switch节点配置

- **Field**: 指定用于路由的字段（如`intent`）
- **Cases**: 配置各分支的路由规则
- **Default**: 配置默认分支

### 4. Transform节点配置

- **Mode**: 选择合并模式（`merge`）
- **Mapping**: 配置数据映射规则
- **变量引用**: 使用`{{variable}}`引用上游数据

## 🎨 自定义扩展

### 1. 添加新的意图分支

1. 在Switch节点中添加新的case
2. 创建对应的LLM处理节点
3. 连接Switch节点和处理节点
4. 连接处理节点到Merge节点

### 2. 增强记忆功能

- 添加用户画像更新逻辑
- 实现长期记忆和短期记忆分离
- 添加记忆检索和总结功能

### 3. 添加外部工具

- 集成知识库查询
- 添加天气、新闻等外部API
- 实现文件处理功能

### 4. 优化回复质量

- 添加回复质量评估节点
- 实现多候选回复生成和选择
- 添加回复风格控制

## 🔍 测试示例

### 测试用例1：问候
```
输入: "你好"
预期: 友好的问候回复
```

### 测试用例2：问题
```
输入: "今天天气怎么样？"
预期: 尝试回答问题或说明无法获取天气信息
```

### 测试用例3：情感表达
```
输入: "我今天心情不太好"
预期: 共情、安慰的回复
```

### 测试用例4：请求
```
输入: "帮我写一首诗"
预期: 生成诗歌或说明能力范围
```

### 测试用例5：告别
```
输入: "再见"
预期: 温暖的告别回复
```

## ⚠️ 注意事项

1. **API密钥配置**
   - 确保所有LLM节点都配置了有效的API密钥
   - 检查API配额和限制

2. **记忆管理**
   - Cache节点使用内存缓存，重启后会丢失
   - 生产环境建议使用Redis等持久化缓存

3. **性能优化**
   - 减少不必要的LLM调用
   - 优化Prompt长度
   - 合理设置Token限制

4. **错误处理**
   - 添加错误处理节点
   - 配置重试机制
   - 提供友好的错误提示

## 📚 相关文档

- [创建Agent经验总结](./创建Agent经验.md)
- [工作流节点类型说明](./可新增节点类型建议.md)
- [Agent使用说明](./Agent使用说明.md)

## 🎯 适用场景

- ✅ 情感陪聊助手
- ✅ 客服机器人
- ✅ 智能问答系统
- ✅ 对话式AI应用
- ✅ 个性化聊天助手

## 💡 最佳实践

1. **Prompt设计**
   - 明确角色定位
   - 明确输出格式
   - 提供示例和上下文

2. **工作流设计**
   - 保持流程清晰
   - 合理使用分支
   - 避免过度复杂

3. **记忆管理**
   - 定期清理过期记忆
   - 控制记忆大小
   - 保护用户隐私

4. **测试验证**
   - 覆盖各种场景
   - 测试边界情况
   - 验证回复质量

---

**创建时间**: 2024年
**版本**: 1.0
**作者**: AI Agent Platform
