265cb3a4e619334a935f530316a1827550f1825c
SDLC Agent Demo - 多智能体端到端软件交付协同系统
基于 CrewAI + Qwen3.5-flash + FastAPI(SSE) 构建的企业级研发提效演示系统,模拟从需求分析→测试用例→代码实现的完整 SDLC 流程。
📋 项目特性
- ✅ 多智能体协同:PM Agent、QA Agent、Dev Agent 顺序流水线作业
- ✅ 实时进度追踪:SSE流式输出各阶段执行状态
- ✅ Qwen3.5-flash:通过 DashScope OpenAI 兼容 API 调用
- ✅ 现代化前端:Vue3 + TailwindCSS + 代码高亮
- ✅ 任务持久化:内存级任务状态管理
- ✅ Docker 支持:一键容器化部署
🏗️ 系统架构
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ PM Agent │────▶│ QA Agent │────▶│ Dev Agent │
│ 需求分析师 │ │ 测试架构师 │ │ 全栈工程师 │
└─────────────┘ └──────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
SRS 文档 测试用例 业务代码
📁 项目结构
sdlc_agent_demo/
├── main.py # FastAPI 入口
├── agents/
│ ├── __init__.py
│ ├── pm_agent.py # PM 智能体定义
│ ├── qa_agent.py # QA 智能体定义
│ └── dev_agent.py # Dev 智能体定义
├── crews/
│ └── sdlc_crew.py # CrewAI 编排逻辑
├── models/
│ └── qwen_config.py # Qwen3.5-flash 配置
├── static/
│ └── index.html # 测试页面
├── requirements.txt
├── .env.example # 环境变量模板
├── Dockerfile
└── README.md
🚀 快速启动
方法一:本地运行
1. 创建虚拟环境
# Windows
python -m venv venv
venv\Scripts\activate
# Linux/Mac
python3 -m venv venv
source venv/bin/activate
2. 安装依赖
pip install -r requirements.txt
3. 配置环境变量
# 复制模板
cp .env.example .env
# 编辑 .env 文件,填入你的 DashScope API Key
# 获取 API Key: https://dashscope.console.aliyun.com/
.env 文件内容:
DASHSCOPE_API_KEY=your_dashscope_api_key_here
QWEN_MODEL=qwen3.5-flash
HOST=0.0.0.0
PORT=8000
4. 启动服务
uvicorn main:app --reload --host 0.0.0.0 --port 8000
5. 访问测试页面
打开浏览器访问:http://localhost:8000/static/index.html
方法二:使用 Docker Compose (推荐)
# 1. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入你的 DashScope API Key
# 2. 启动服务
docker-compose up -d
# 3. 查看日志
docker-compose logs -f
# 4. 停止服务
docker-compose down
方法三:使用 Docker 构建
1. 构建镜像
docker build -t sdlc-agent-demo .
2. 运行容器
# 使用 docker-compose (推荐)
docker-compose up -d
# 或单独运行容器
docker run -d \
-p 8080:8080 \
-e DASHSCOPE_API_KEY=your_api_key \
-v $(pwd)/logs:/app/logs \
--name sdlc-demo \
sdlc-agent-demo
3. 访问服务
4. 查看日志
docker logs -f sdlc-demo
5. 停止服务
docker stop sdlc-demo && docker rm sdlc-demo
📡 API 接口
1. 启动 SDLC 流程
请求:
POST /api/v1/sdlc/start
Content-Type: application/json
{
"requirement": "开发一个用户管理系统,支持增删改查功能"
}
响应:
{
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "processing"
}
2. SSE流式进度
请求:
GET /api/v1/sdlc/stream/{task_id}
Accept: text/event-stream
SSE事件格式:
event: pm_start
data: {"stage": "需求分析", "status": "started", "timestamp": "2026-01-15T10:30:00Z"}
event: pm_complete
data: {"stage": "需求分析", "content": "SRS 文档...", "status": "completed", "timestamp": "2026-01-15T10:35:00Z"}
event: final_result
data: {"stage": "交付完成", "status": "success", ...}
3. 查询任务状态
GET /api/v1/sdlc/status/{task_id}
4. 获取任务结果
GET /api/v1/sdlc/result/{task_id}
🤖 智能体角色
PM Agent(产品经理)
- 角色:资深产品需求分析师
- 职责:将用户需求转化为结构化 SRS 文档
- 输出:功能性需求、非功能性需求、验收标准
QA Agent(测试工程师)
- 角色:高级测试架构师
- 职责:根据 SRS 生成自动化测试用例
- 输出:Pytest 测试脚本、测试场景
Dev Agent(开发工程师)
- 角色:全栈软件工程师
- 职责:根据 SRS 和测试用例实现业务代码
- 输出:可运行的 Python 代码模块
💡 使用示例
示例需求输入
开发一个在线书签管理系统,需要包含以下功能:
1. 用户注册和登录(支持邮箱验证)
2. 书签的添加、编辑、删除
3. 书签分类和标签管理
4. 书签搜索功能
5. 导出/导入书签(HTML 格式)
6. 响应式设计,支持移动端访问
性能要求:
- 页面加载时间 < 2 秒
- 支持并发用户数 > 1000
预期输出
- PM Agent → 软件需求规格说明书(包含功能列表、验收标准)
- QA Agent → Pytest 测试用例(覆盖所有核心功能)
- Dev Agent → 完整的 Python 实现代码(FastAPI + SQLite)
🔧 配置说明
模型配置
| 参数 | 默认值 | 说明 |
|---|---|---|
QWEN_MODEL |
qwen3.5-flash |
模型名称 |
QWEN_TEMPERATURE |
0.7 |
温度参数 (0-1) |
QWEN_MAX_TOKENS |
4096 |
最大生成长度 |
服务器配置
| 参数 | 默认值 | 说明 |
|---|---|---|
HOST |
0.0.0.0 |
监听地址 |
PORT |
8000 |
监听端口 |
LOG_LEVEL |
info |
日志级别 |
🧪 测试与验证
API 测试(使用 curl)
# 1. 启动任务
curl -X POST http://localhost:8000/api/v1/sdlc/start \
-H "Content-Type: application/json" \
-d '{"requirement": "开发一个简单的待办事项应用"}'
# 2. 查看 SSE流(新终端)
curl -N http://localhost:8000/api/v1/sdlc/stream/{task_id}
# 3. 健康检查
curl http://localhost:8000/health
⚠️ 注意事项
- API Key 安全:不要将
.env文件提交到版本控制系统 - 网络要求:需要访问 DashScope API 服务
- 资源消耗:每个任务约消耗 10,000-50,000 tokens
- 超时设置:SSE 连接默认超时 120 秒,可根据需要调整
🛠️ 故障排查
问题 1:无法连接到 DashScope API
解决方案:
- 检查 API Key 是否正确
- 确认网络连接正常
- 验证账户余额充足
问题 2:SSE 连接中断
解决方案:
- 检查防火墙设置
- 增加超时时间
- 启用前端自动重连机制
问题 3:智能体输出质量不佳
解决方案:
- 调整 Temperature 参数(降低随机性)
- 优化 Prompt 描述
- 增加上下文约束
📝 许可证
本项目仅供学习和演示用途。
🔗 相关链接
Built with ❤️ using CrewAI + Qwen3.5-flash + FastAPI
Description
Languages
Python
51.8%
HTML
45.7%
Dockerfile
1.4%
Batchfile
1.1%