8.1 KiB
8.1 KiB
智能聊天Agent完整示例说明
📋 概述
这是一个完整的聊天智能体示例,展示了如何使用平台的核心能力构建一个功能完善的聊天助手。该示例包含了记忆管理、意图识别、多分支路由、上下文传递等核心功能。
🎯 功能特性
✅ 核心能力展示
-
记忆管理
- 使用缓存节点存储对话历史
- 支持用户画像和上下文信息
- 自动更新记忆内容
-
意图识别
- 使用LLM节点分析用户意图
- 识别情感状态
- 提取关键词和话题
-
多分支路由
- 使用Switch节点根据意图分发
- 支持6种不同场景的处理分支
- 默认分支处理未知意图
-
上下文传递
- 使用Transform节点合并数据
- 保持对话历史的连贯性
- 支持多轮对话
-
个性化回复
- 根据不同意图生成针对性回复
- 考虑用户情感状态
- 保持对话风格一致
🔄 工作流结构
开始节点
↓
查询记忆(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
{ "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)
- 功能: 返回最终回复
- 输出格式: 纯文本
🚀 使用方法
方法一:使用生成脚本(推荐)
cd backend/scripts
python3 generate_chat_agent.py
脚本会自动创建Agent,包含完整的工作流配置。
方法二:手动创建
-
进入Agent管理页面
- 点击"创建Agent"按钮
- 填写名称和描述
-
进入工作流编辑器
- 点击"设计"按钮
- 使用节点工具箱添加节点
- 按照工作流结构连接节点
-
配置节点
- LLM节点: 配置API密钥、模型、Prompt
- Cache节点: 配置缓存Key和操作
- Switch节点: 配置路由规则
- Transform节点: 配置数据映射
-
测试Agent
- 点击"测试"按钮
- 输入测试消息
- 查看执行结果
-
发布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. 添加新的意图分支
- 在Switch节点中添加新的case
- 创建对应的LLM处理节点
- 连接Switch节点和处理节点
- 连接处理节点到Merge节点
2. 增强记忆功能
- 添加用户画像更新逻辑
- 实现长期记忆和短期记忆分离
- 添加记忆检索和总结功能
3. 添加外部工具
- 集成知识库查询
- 添加天气、新闻等外部API
- 实现文件处理功能
4. 优化回复质量
- 添加回复质量评估节点
- 实现多候选回复生成和选择
- 添加回复风格控制
🔍 测试示例
测试用例1:问候
输入: "你好"
预期: 友好的问候回复
测试用例2:问题
输入: "今天天气怎么样?"
预期: 尝试回答问题或说明无法获取天气信息
测试用例3:情感表达
输入: "我今天心情不太好"
预期: 共情、安慰的回复
测试用例4:请求
输入: "帮我写一首诗"
预期: 生成诗歌或说明能力范围
测试用例5:告别
输入: "再见"
预期: 温暖的告别回复
⚠️ 注意事项
-
API密钥配置
- 确保所有LLM节点都配置了有效的API密钥
- 检查API配额和限制
-
记忆管理
- Cache节点使用内存缓存,重启后会丢失
- 生产环境建议使用Redis等持久化缓存
-
性能优化
- 减少不必要的LLM调用
- 优化Prompt长度
- 合理设置Token限制
-
错误处理
- 添加错误处理节点
- 配置重试机制
- 提供友好的错误提示
📚 相关文档
🎯 适用场景
- ✅ 情感陪聊助手
- ✅ 客服机器人
- ✅ 智能问答系统
- ✅ 对话式AI应用
- ✅ 个性化聊天助手
💡 最佳实践
-
Prompt设计
- 明确角色定位
- 明确输出格式
- 提供示例和上下文
-
工作流设计
- 保持流程清晰
- 合理使用分支
- 避免过度复杂
-
记忆管理
- 定期清理过期记忆
- 控制记忆大小
- 保护用户隐私
-
测试验证
- 覆盖各种场景
- 测试边界情况
- 验证回复质量
创建时间: 2024年 版本: 1.0 作者: AI Agent Platform