You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

200 lines
4.9 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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 教程的一部分,更多内容请参考项目主页。*