# AutoGen SDLC 多智能体协同系统 基于 **Microsoft AutoGen** + **阿里云 Qwen3.5-flash** 的端到端软件交付协同网络。 ## 🎯 项目概述 本系统实现了多智能体协同的完整 SDLC(软件开发生命周期)流程: 1. **PM Agent** - 产品经理:需求分析与 SRS 生成 2. **QA Agent** - 测试工程师:测试用例设计与 TDD 实践 3. **Dev Agent** - 开发工程师:代码实现与修复 4. **Orchestrator Agent** - 协调器:流程调度与最终验证 ## 🚀 快速启动 ### 1. 环境准备 ```bash # Python 版本要求 Python >= 3.9 # 安装依赖 pip install -r requirements.txt ``` ### 2. 配置 API Key ```bash # Windows (PowerShell) $env:DASHSCOPE_API_KEY="your_api_key_here" # Linux/Mac export DASHSCOPE_API_KEY="your_api_key_here" ``` 获取 API Key: [阿里云 DashScope 控制台](https://dashscope.console.aliyun.com/) ### 3. 运行演示 #### 方式 1: 命令行模式 ```bash python autogen_sdls_system.py ``` #### 方式 2: Streamlit 前端界面 ```bash streamlit run frontend/streamlit_app.py ``` #### 方式 3: 自愈功能演示 ```bash python autogen_self_healing_demo.py ``` ## 📁 项目结构 ``` project/ ├── agents/ # Agent 模块 │ ├── pm_agent.py # 产品经理 Agent │ ├── qa_agent.py # 测试工程师 Agent │ ├── dev_agent.py # 开发工程师 Agent │ └── orchestrator.py # 协调器 Agent ├── config/ # 配置文件 │ └── llm_config.py # LLM 配置与提示词模板 ├── frontend/ # 前端界面 │ └── streamlit_app.py # Streamlit 实时聊天界面 ├── utils/ # 工具类 │ ├── logger.py # 日志记录 │ └── callback_handler.py # 回调处理 ├── tests/ # 单元测试 │ └── test_agents.py ├── workspace/ # 工作目录(Agent 输出文件) ├── logs/ # 日志目录 ├── autogen_sdls_system.py # 主程序入口 ├── autogen_self_healing_demo.py # 自愈演示 ├── usage_examples.py # 使用示例 └── requirements.txt # 依赖包列表 ``` ## 💡 核心功能 ### 1. 端到端自动化流程 ``` 用户需求 → PM 分析 → QA 设计测试 → Dev 编码 → 自动测试 → 验证输出 ``` ### 2. TDD(测试驱动开发) - QA Agent 先于代码生成测试用例 - Dev Agent 编写代码确保测试通过 - 测试失败时触发自动修复循环 ### 3. 自愈能力 系统检测到测试失败时,自动: 1. 分析错误日志 2. 定位 bug 原因 3. 生成修复代码 4. 重新验证测试 ### 4. 人机协同 关键节点支持人工确认: - SRS 文档审核 - 测试用例评审 - 最终代码验收 ### 5. 实时可视化 Streamlit 前端提供: - 实时对话展示 - Agent 状态监控 - 工作流进度跟踪 - 对话历史导出 ## 🔧 配置说明 ### 模型配置 在 `config/llm_config.py` 中配置: ```python DASHSCOPE_API_KEY = "your_api_key" DASHSCOPE_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1" ``` ### 支持的模型 - `qwen3.5-flash` (推荐,速度快) - `qwen-max` (最强性能) - `qwen-plus` (平衡性能和成本) - `qwen-turbo` (最快速度) ### Agent 系统提示词 每个 Agent 都有专属的系统提示词,定义在 `config/llm_config.py` 中: - `PM_PROMPT` - 产品经理提示词 - `QA_PROMPT` - 测试工程师提示词 - `DEV_PROMPT` - 开发工程师提示词 - `ORCH_PROMPT` - 协调器提示词 ## 📖 使用示例 ### 示例 1: 使用命令行 ```python from autogen_sdls_system import AutoGenSDLCSystem system = AutoGenSDLCSystem(api_key="your_key") requirement = "开发一个电池健康状态预测 API" result = system.run_workflow(requirement, max_round=15) print(result["summary"]) ``` ### 示例 2: 单独调用 Agent ```python from agents import ProductManagerAgent pm = ProductManagerAgent(api_key="your_key") srs = pm.generate_srs("我需要一个车载蓝牙管理模块") print(srs) ``` ### 示例 3: 自定义配置 ```python from config.llm_config import get_llm_config llm_config = get_llm_config( model="qwen-max", temperature=0.5, max_tokens=4096 ) ``` ## 🎬 Workshop 演示脚本 ### 场景:电池健康状态 (SOH) 预测 API 1. **输入模糊需求** ``` "我需要一个电池健康预测功能" ``` 2. **PM Agent 输出** - 完整 SRS 文档 - 功能性需求 - 非功能性需求 - 验收标准 3. **QA Agent 输出** - Pytest 测试脚本 - 测试函数 - BDD 场景描述 4. **Dev Agent 输出** - 可运行的 API 代码 - 核心业务逻辑 - 错误处理 5. **自动测试** - 展示测试执行和修复循环 6. **最终输出** - 可部署的代码包 + 测试报告 ## ✅ 演示亮点 - ✅ 实时展示 Agent 协作对话 - ✅ 人机协同确认节点 - ✅ 测试失败→自动修复→通过的闭环 - ✅ 符合汽车行业标准(MISRA-C、ISO 26262) ## 🐛 常见问题 ### Q1: API Key 无效 **解决**: 检查环境变量是否正确设置 ```bash # 验证环境变量 echo $DASHSCOPE_API_KEY # Linux/Mac echo %DASHSCOPE_API_KEY% # Windows CMD ``` ### Q2: 模型响应超时 **解决**: 增加超时时间或降低 `max_tokens` ```python llm_config = get_llm_config(timeout=180) ``` ### Q3: 测试执行失败 **解决**: 检查工作目录权限和 pytest 安装 ```bash pip install pytest chmod +x workspace/ ``` ## 📊 日志与导出 ### 对话日志 所有对话自动保存在 `logs/` 目录: - JSONL 格式:`session_YYYYMMDD_HHMMSS.jsonl` - JSON 导出:`conversation_*.json` - Markdown 导出:`conversation_*.md` ### 导出方法 ```python system.export_conversation("my_conversation.json") system.export_report("my_report.md") ``` ## 🔐 安全建议 1. **不要硬编码 API Key** - 使用环境变量 2. **审查生成的代码** - AI 可能产生不安全代码 3. **限制执行权限** - 禁用 Docker 或使用沙箱 4. **定期清理 workspace** - 避免敏感数据积累 ## 📝 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📧 联系方式 如有问题请提交 Issue 或联系开发团队。 --- **🤖 Generated with AutoGen SDLC System**