# Streamlit v3 - Agent 对话流可视化版本 ## 🎯 核心特性 这个全新版本**专门突出显示**: 1. ✅ **每个 Agent 当前在做什么** (任务标签实时显示) 2. ✅ **Agent 之间的对话流** (类似微信/QQ 聊天界面) 3. ✅ **当前发言的 Agent** (绿色高亮 + 脉冲动画) 4. ✅ **对话传递关系** (箭头指示下一个 Agent) ## 🚀 启动方法 ```bash streamlit run frontend/streamlit_app_v3.py ``` ## 🎨 界面说明 ### 1. Agent 状态行 (顶部) ``` ┌─────────────┬─────────────┬─────────────┬─────────────┬─────────────┐ │ 📋 产品经理 │ ✅ 测试工程 │ 💻 开发工程 │ 🎯 协调器 │ 👤 用户代理 │ │ ⚪ 待命 │ ⚪ 待命 │ ⚪ 待命 │ ⚪ 待命 │ ⚪ 待命 │ │ 📝 需求分析 │ 📝 测试设计 │ 📝 代码实现 │ 📝 流程协调 │ 📝 提出需求 │ │ 💬 0 条消息 │ 💬 0 条消息 │ 💬 0 条消息 │ 💬 0 条消息 │ 💬 0 条消息 │ └─────────────┴─────────────┴─────────────┴─────────────┴─────────────┘ ``` **特点**: - 🔵 **绿色边框 + 脉冲动画** = 当前正在发言的 Agent - ⚪ **灰色** = 等待中的 Agent - 📝 **任务标签** = 实时显示该 Agent 在做什么 ### 2. 当前发言横幅 ``` 🟢 当前发言:产品经理 - 需求分析 ``` 绿色横幅,明确告诉您现在哪个 Agent 在说话! ### 3. Agent 对话流 (核心区域) ``` ┌─────────────────────────────────────────────────┐ │ 📋 产品经理 [需求分析] 11:09:30 │ │ │ │ 收到!开始分析需求... │ │ 功能性需求: │ │ 1. 接收电压/电流/温度数据 │ │ 2. 计算 SOH 百分比 │ │ 3. 异常检测 │ └─────────────────────────────────────────────────┘ ⬇️ 传递给 测试工程师 ⬇️ ┌─────────────────────────────────────────────────┐ │ ✅ 测试工程师 [测试设计] 11:09:45 │ │ │ │ 基于 SRS 设计测试用例... │ │ test_normal_operation() │ │ test_zero_voltage() │ └─────────────────────────────────────────────────┘ ``` **特点**: - 💬 **彩色气泡** = 不同 Agent 有不同颜色 - 📝 **任务徽章** = 每个消息都显示当前任务 - ⬇️ **传递箭头** = 显示工作流转向下一个 Agent - 🕐 **时间戳** = 精确到秒的发言时间 ## 🎭 Agent 颜色方案 | Agent | 颜色 | 气泡样式 | |-------|------|---------| | 📋 PM Agent | 🔵 蓝色 | 蓝色渐变 | | ✅ QA Agent | 🟢 绿色 | 绿色渐变 | | 💻 Dev Agent | 🟠 橙色 | 橙色渐变 | | 🎯 Orchestrator | 🟣 紫色 | 紫色渐变 | | 👤 User Proxy | 🟤 棕色 | 棕色渐变 | ## 📊 实时任务标签 每个 Agent 的任务会动态更新: ### PM Agent 任务流 1. `待命` → 初始状态 2. `启动流程` → 收到 Orchestrator 指令 3. `需求分析` → 分析用户需求 4. `生成 SRS` → 编写需求文档 5. `待命` → 完成任务 ### QA Agent 任务流 1. `待命` → 初始状态 2. `测试设计` → 阅读 SRS 3. `编写测试` → 创建 test_*.py 4. `TDD 实践` → 确保测试先行 5. `待命` → 完成任务 ### Dev Agent 任务流 1. `待命` → 初始状态 2. `代码实现` → 阅读 SRS 和测试 3. `编写代码` → 创建 src_*.py 4. `修复 bug` → 测试失败时 5. `待命` → 完成任务 ## 🔍 对话流示例 完整的 SDLC 对话流会是这样: ``` 👤 用户代理 [提出需求] "我需要一个电池健康状态预测 API" ⬇️ 传递给 协调器 🎯 协调器 [启动流程] "🚀 启动 SDLC 工作流!开始协作..." ⬇️ 传递给 产品经理 📋 产品经理 [需求分析] "收到!分析需求中... 功能性需求: 1. 接收电压/电流/温度数据 2. 计算 SOH 百分比 3. 异常检测..." ⬇️ 传递给 测试工程师 ✅ 测试工程师 [测试设计] "基于 SRS 设计测试用例... test_normal_operation() test_zero_voltage()..." ⬇️ 传递给 开发工程师 💻 开发工程师 [代码实现] "开始编写代码... 实现 calculate_soh() 函数... 符合 PEP8 规范..." ⬇️ 传递给 用户代理 👤 用户代理 [测试执行] "执行测试... ✅ test_normal_operation PASSED ✅ test_zero_voltage PASSED..." ⬇️ 传递给 协调器 🎯 协调器 [总结完成] "✅ SDLC 流程完成! 生成文件:SRS.md, test_battery_health.py..." ``` ## 💡 使用技巧 ### 1. 实时追踪特定 Agent - 看**顶部状态行** → 哪个 Agent 绿色高亮就是在发言 - 看**任务标签** → 了解该 Agent 具体在做什么 - 看**消息数量** → 知道哪个 Agent 最活跃 ### 2. 理解对话流 - 看**气泡颜色** → 快速识别是哪个 Agent - 看**传递箭头** → 理解工作流方向 - 看**时间戳** → 了解执行顺序 ### 3. 调试问题 - 如果某个 Agent **一直不说话** → 可能是模型配置问题 - 如果**对话卡住** → 检查 API Key 和网络 - 如果**任务标签不更新** → 刷新页面重试 ## 🆚 与 v2 的区别 | 特性 | v2 | v3 (新版) | |------|----|-----------| | Agent 状态 | 静态卡片 | 动态高亮 + 任务标签 | | 对话展示 | 普通列表 | 聊天气泡流 | | 任务追踪 | ❌ 无 | ✅ 实时显示 | | 传递关系 | ❌ 无 | ✅ 箭头指示 | | 当前发言 | ⚪ 小圆点 | 🟢 绿色高亮 + 横幅 | ## 🎬 演示场景 ### 场景 1: 电池健康预测 API 1. 输入需求:"我需要一个电池健康状态预测 API" 2. 点击"启动对话流" 3. 观察 5 个 Agent 的协作过程 4. 查看每个 Agent 的任务变化 5. 最终生成 3 个文件 ### 场景 2: 车牌识别系统 1. 输入需求:"开发一个车牌识别系统" 2. 启动对话流 3. 看 PM 如何分析需求 4. 看 QA 如何设计测试 5. 看 Dev 如何实现代码 ## 📥 导出功能 点击侧边栏的"📥 导出对话",可以保存完整的对话历史为 JSON 格式,包含: - 每个 Agent 的发言内容 - 发言时间戳 - 当时的任务状态 - 对话顺序 ## 🐛 注意事项 1. **确保安装依赖**: `pip install streamlit pyautogen dashscope` 2. **设置 API Key**: `$env:DASHSCOPE_API_KEY="your_key"` 3. **网络稳定**: 需要稳定的网络连接访问阿里云 API 4. **耐心等待**: 大模型生成需要时间,每轮约 10-30 秒 --- **🎉 享受全新的 Agent 对话流可视化体验!**