# 实时文件保存功能 ## 功能说明 现在,AutoGen SDLC 系统支持**实时文件保存**功能。在 Agent 协作过程中,每个 Agent 生成的内容会立即保存到文件系统中,而不需要等待整个工作流完成。 ## 工作原理 ### 修改前 ``` 对话开始 → PM Agent 发言 → QA Agent 发言 → Dev Agent 发言 → ... → 对话结束 ↓ 遍历所有消息 ↓ 批量保存文件 ``` ### 修改后 ``` 对话开始 → PM Agent 发言 → 立即保存 SRS.md ↓ QA Agent 发言 → 立即保存 test_sample.py ↓ Dev Agent 发言 → 立即保存 src_sample.py (或其他文件) ↓ ... ↓ 对话结束 (所有文件已实时保存完成) ``` ## 技术实现 1. **回调机制**: 使用 AutoGen 的 `register_reply` 方法注册回调函数 2. **实时检测**: 每次 Agent 发言后立即检测内容并保存文件 3. **文件识别**: 根据 Agent 名称和内容类型自动判断文件类型 - PM_Agent → SRS.md (需求文档) - QA_Agent → test_sample.py (测试用例) - Dev_Agent → src_sample.py 或指定文件名的代码文件 ## 使用方法 ### 方法 1: 运行示例 ```bash # 设置 API Key $env:DASHSCOPE_API_KEY="your_api_key" # 运行实时文件保存示例 python usage_examples.py ``` 示例会自动演示实时文件保存功能。 ### 方法 2: 直接使用 API ```python from autogen_sdls_system import AutoGenSDLCSystem system = AutoGenSDLCSystem( api_key="your_api_key", workspace_dir="workspace" # 指定工作目录 ) result = system.run_workflow( "我需要一个电池健康状态预测 API", max_round=15 ) # 查看实时保存的文件 print("生成的文件:", result["saved_files"]) ``` ## 文件命名规则 ### PM Agent - **文件名**: `SRS.md` - **触发条件**: 内容包含"需求"、"SRS"或"软件需求规格说明书" - **内容格式**: Markdown 格式的 Software Requirements Specification ### QA Agent - **文件名**: `test_sample.py` - **触发条件**: 内容包含"test"、"测试"或"def test_" - **内容格式**: Python 测试代码(Pytest 风格) ### Dev Agent - **带文件名的代码块**: ```python # File: my_module.py def my_function(): pass ``` 会保存为 `my_module.py` - **不带文件名的代码块**: 保存为 `src_sample.py` - **触发条件**: 内容包含"def "、"class "或"import " ## 实时性保证 每个文件在以下时机立即保存: 1. Agent 生成回复内容 2. 回调函数被触发 3. 解析内容并提取代码/文档 4. 写入文件系统 5. 输出日志:`💾 [实时保存] <文件路径>` 整个过程在毫秒级完成,用户可以在控制台中实时看到文件保存的提示。 ## 优势 ✅ **即时可见**: 无需等待整个流程完成,立即可见生成的文件 ✅ **过程追踪**: 可以观察每个 Agent 的贡献和输出顺序 ✅ **错误恢复**: 如果中途中断,已生成的文件不会丢失 ✅ **调试方便**: 可以实时检查每个阶段的输出质量 ✅ **人机协同**: 人工可以在流程进行中审查已生成的文件 ## 注意事项 ⚠️ **文件覆盖**: 如果同一个 Agent 多次生成同类型文件,后生成的会覆盖先生成的 ⚠️ **工作目录**: 确保工作目录有写权限 ⚠️ **API 响应**: 某些模型响应可能包含多个代码块,只会保存第一个匹配的 ## 示例输出 ``` 🚀 开始对话... PM_Agent 正在分析需求... 💾 [实时保存] workspace\SRS.md QA_Agent 正在设计测试... 💾 [实时保存] workspace\test_sample.py Dev_Agent 正在编写代码... 💾 [实时保存] workspace\src_sample.py User_Proxy 正在执行测试... Orchestrator 正在汇总结果... ✅ 工作流完成! 📁 已保存 3 个文件: ✓ workspace\SRS.md ✓ workspace\test_sample.py ✓ workspace\src_sample.py ``` ## 相关文件 - `autogen_sdls_system.py`: 核心实现文件 - `usage_examples.py`: 使用示例(包含示例 6) - `utils/callback_handler.py`: 回调处理器