7931ce5070bb1dcbc2daff0ecc4a83c249c1f64e
AutoGen SDLC 多智能体协同系统
基于 Microsoft AutoGen + 阿里云 Qwen3.5-flash 的端到端软件交付协同网络。
🎯 项目概述
本系统实现了多智能体协同的完整 SDLC(软件开发生命周期)流程:
- PM Agent - 产品经理:需求分析与 SRS 生成
- QA Agent - 测试工程师:测试用例设计与 TDD 实践
- Dev Agent - 开发工程师:代码实现与修复
- Orchestrator Agent - 协调器:流程调度与最终验证
🚀 快速启动
1. 环境准备
# Python 版本要求
Python >= 3.9
# 安装依赖
pip install -r requirements.txt
2. 配置 API Key
# Windows (PowerShell)
$env:DASHSCOPE_API_KEY="your_api_key_here"
# Linux/Mac
export DASHSCOPE_API_KEY="your_api_key_here"
获取 API Key: 阿里云 DashScope 控制台
3. 运行演示
方式 1: 命令行模式
python autogen_sdls_system.py
方式 2: Streamlit 前端界面
streamlit run frontend/streamlit_app.py
方式 3: 自愈功能演示
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. 自愈能力
系统检测到测试失败时,自动:
- 分析错误日志
- 定位 bug 原因
- 生成修复代码
- 重新验证测试
4. 人机协同
关键节点支持人工确认:
- SRS 文档审核
- 测试用例评审
- 最终代码验收
5. 实时可视化
Streamlit 前端提供:
- 实时对话展示
- Agent 状态监控
- 工作流进度跟踪
- 对话历史导出
🔧 配置说明
模型配置
在 config/llm_config.py 中配置:
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: 使用命令行
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
from agents import ProductManagerAgent
pm = ProductManagerAgent(api_key="your_key")
srs = pm.generate_srs("我需要一个车载蓝牙管理模块")
print(srs)
示例 3: 自定义配置
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
-
输入模糊需求
"我需要一个电池健康预测功能" -
PM Agent 输出 - 完整 SRS 文档
- 功能性需求
- 非功能性需求
- 验收标准
-
QA Agent 输出 - Pytest 测试脚本
- 测试函数
- BDD 场景描述
-
Dev Agent 输出 - 可运行的 API 代码
- 核心业务逻辑
- 错误处理
-
自动测试 - 展示测试执行和修复循环
-
最终输出 - 可部署的代码包 + 测试报告
✅ 演示亮点
- ✅ 实时展示 Agent 协作对话
- ✅ 人机协同确认节点
- ✅ 测试失败→自动修复→通过的闭环
- ✅ 符合汽车行业标准(MISRA-C、ISO 26262)
🐛 常见问题
Q1: API Key 无效
解决: 检查环境变量是否正确设置
# 验证环境变量
echo $DASHSCOPE_API_KEY # Linux/Mac
echo %DASHSCOPE_API_KEY% # Windows CMD
Q2: 模型响应超时
解决: 增加超时时间或降低 max_tokens
llm_config = get_llm_config(timeout=180)
Q3: 测试执行失败
解决: 检查工作目录权限和 pytest 安装
pip install pytest
chmod +x workspace/
📊 日志与导出
对话日志
所有对话自动保存在 logs/ 目录:
- JSONL 格式:
session_YYYYMMDD_HHMMSS.jsonl - JSON 导出:
conversation_*.json - Markdown 导出:
conversation_*.md
导出方法
system.export_conversation("my_conversation.json")
system.export_report("my_report.md")
🔐 安全建议
- 不要硬编码 API Key - 使用环境变量
- 审查生成的代码 - AI 可能产生不安全代码
- 限制执行权限 - 禁用 Docker 或使用沙箱
- 定期清理 workspace - 避免敏感数据积累
📝 许可证
MIT License
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📧 联系方式
如有问题请提交 Issue 或联系开发团队。
🤖 Generated with AutoGen SDLC System
Description
Languages
Python
83.7%
HTML
16.3%