# AutoGen 软件开发团队协作案例 本目录包含第六章 AutoGen 框架的完整实战案例,展示了如何使用 AutoGen 构建多智能体协作的软件开发团队。 ## 📁 文件说明 - `autogen_software_team.py` - 主要案例代码(基于 OpenAI 客户端) - `llm_client.py` - HelloAgentsLLM 客户端实现 - `requirements.txt` - 依赖包列表 - `output.py` - 团队协作生成的比特币价格应用示例 - `README.md` - 本说明文档 ## 🚀 案例特点 - **多智能体协作**:演示产品经理、工程师、代码审查员、用户代理的完整协作流程 - **真实开发场景**:从需求分析到代码实现的完整软件开发生命周期 - **自动化流程**:智能体间自动传递任务,无需人工干预 - **代码生成与审查**:自动生成可运行的代码并进行质量审查 ## 🛠️ 环境准备 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置环境变量 创建 `.env` 文件并配置以下参数: ```bash # LLM 配置 LLM_API_KEY=your-api-key-here LLM_BASE_URL=https://api.openai.com/v1 LLM_MODEL_ID=gpt-4 ``` ### 3. 验证环境 确保可以正常调用 LLM API: ```python import os from dotenv import load_dotenv load_dotenv() print(f"API Key: {os.getenv('LLM_API_KEY')[:10]}...") print(f"Base URL: {os.getenv('LLM_BASE_URL')}") print(f"Model: {os.getenv('LLM_MODEL_ID')}") ``` ## 🎯 运行案例 ### 启动软件开发团队协作 ```bash python autogen_software_team.py ``` ### 预期输出流程 1. **🔧 模型客户端初始化** 2. **👥 智能体团队创建** 3. **🚀 团队协作启动** 4. **💬 智能体对话过程**: - ProductManager:需求分析和技术规划 - Engineer:代码实现 - CodeReviewer:代码审查和优化建议 - UserProxy:用户测试和反馈 5. **✅ 协作完成** ## 👥 智能体角色说明 ### 🎯 ProductManager(产品经理) - **职责**:需求分析、技术规划、风险评估 - **输出**:功能模块划分、技术选型建议、验收标准 - **特点**:注重用户体验和产品可行性 ### 💻 Engineer(软件工程师) - **职责**:代码实现、技术方案设计 - **输出**:完整的可运行代码 - **特点**:精通 Python、Streamlit、API 集成 ### 🔍 CodeReviewer(代码审查员) - **职责**:代码质量检查、安全性审查 - **输出**:代码审查报告、优化建议 - **特点**:关注代码规范、性能和安全性 ### 👤 UserProxy(用户代理) - **职责**:代表用户需求、执行测试、提供反馈 - **输出**:测试结果、用户反馈 - **特点**:从用户角度验证功能 ## 📊 案例演示:比特币价格应用 ### 应用功能 - ✅ 实时显示比特币当前价格(USD) - ✅ 显示24小时价格变化趋势 - ✅ 提供价格刷新功能 - ✅ 错误处理和加载状态 - ✅ 简洁美观的 Streamlit 界面 ### 技术栈 - **前端框架**:Streamlit - **数据源**:CoinGecko API - **编程语言**:Python - **HTTP 请求**:requests ### 运行生成的应用 ```bash streamlit run output.py ``` ## 🔧 自定义配置 ### 修改智能体角色 可以通过修改 `system_message` 来自定义智能体的行为: ```python def create_product_manager(model_client): system_message = """ 你是一位经验丰富的产品经理... # 在这里自定义角色描述 """ return AssistantAgent( name="ProductManager", model_client=model_client, system_message=system_message, ) ``` ### 调整协作流程 可以修改参与者列表和终止条件: ```python team_chat = RoundRobinGroupChat( participants=[ product_manager, engineer, code_reviewer, user_proxy ], termination_condition=TextMentionTermination("TERMINATE"), max_turns=20, # 调整最大轮次 ) ``` ## 🐛 常见问题 ### Q: 智能体没有开始对话? A: 检查以下几点: - 确认 API Key 配置正确 - 检查网络连接 - 验证模型名称是否正确 ### Q: 协作过程中断? A: 可能原因: - API 调用限制 - 网络超时 - 模型响应异常 ### Q: 生成的代码无法运行? A: 建议: - 检查依赖包是否完整安装 - 验证 API 接口是否可用 - 查看错误日志进行调试 ## 📚 扩展学习 ### 相关章节 - 第四章:智能体经典范式构建 - 第七章:构建你的Agent框架 - 第十二章:多智能体协作与通信 ### 进阶实践 - 尝试添加更多智能体角色(如测试工程师、UI设计师) - 实现更复杂的应用场景 - 集成更多的工具和API - 优化智能体间的协作策略 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request 来改进这个案例: - 报告 Bug 或问题 - 提出新的功能建议 - 分享你的实践经验 - 优化代码实现 --- *本案例是 Hello-Agents 教程的一部分,更多内容请参考项目主页。*