146 lines
3.9 KiB
Python
146 lines
3.9 KiB
Python
"""
|
||
Dev Agent - 开发工程师智能体
|
||
负责根据 SRS 和测试用例编写业务代码
|
||
"""
|
||
|
||
from typing import Dict, Any
|
||
from crewai import Agent, Task
|
||
from models.qwen_config import get_llm
|
||
|
||
|
||
def create_dev_agent() -> Agent:
|
||
"""
|
||
创建开发工程师智能体
|
||
|
||
Returns:
|
||
Agent: Dev 智能体实例
|
||
"""
|
||
return Agent(
|
||
role="全栈软件工程师",
|
||
goal="根据软件需求规格说明书 (SRS) 和测试用例实现高质量的业务代码",
|
||
backstory="""你是一位拥有 10 年经验的全栈软件工程师,擅长:
|
||
1. 快速理解需求并设计合理的系统架构
|
||
2. 编写清晰、可维护、高性能的代码
|
||
3. 遵循 TDD(测试驱动开发)实践
|
||
4. 遵循博世研发规范中的编码标准
|
||
|
||
你的代码实现必须通过所有测试用例,并满足性能和安全要求。""",
|
||
verbose=True,
|
||
allow_delegation=False,
|
||
llm=get_llm()
|
||
)
|
||
|
||
|
||
def create_dev_task(srs_document: str, test_plan: str) -> Task:
|
||
"""
|
||
创建代码实现任务
|
||
|
||
Args:
|
||
srs_document: 软件需求规格说明书
|
||
test_plan: 测试方案和测试用例
|
||
|
||
Returns:
|
||
Task: Dev 任务实例
|
||
"""
|
||
return Task(
|
||
description=f"""
|
||
请根据以下 SRS 文档和测试方案,实现完整的业务代码:
|
||
|
||
【SRS 文档】
|
||
{srs_document}
|
||
|
||
【测试方案】
|
||
{test_plan}
|
||
|
||
【输出要求】
|
||
请按照以下结构输出代码实现:
|
||
|
||
## 1. 项目结构设计
|
||
- 1.1 目录结构
|
||
- 1.2 模块划分
|
||
- 1.3 依赖关系
|
||
|
||
## 2. 核心业务代码
|
||
实现所有功能性需求,包含:
|
||
```python
|
||
# 示例:主业务逻辑
|
||
class <ServiceName>:
|
||
\"\"\"<服务>业务逻辑类\"\"\"
|
||
|
||
def __init__(self):
|
||
# 初始化
|
||
|
||
def <method_name>(self, params) -> ReturnType:
|
||
\"\"\"
|
||
方法描述
|
||
|
||
Args:
|
||
params: 参数说明
|
||
|
||
Returns:
|
||
返回值说明
|
||
\"\"\"
|
||
# 实现逻辑
|
||
pass
|
||
```
|
||
|
||
## 3. 数据模型定义
|
||
- 3.1 Pydantic 模型
|
||
- 3.2 数据库模型(如需要)
|
||
- 3.3 DTO/VO 对象
|
||
|
||
## 4. API 接口定义(如适用)
|
||
- 4.1 RESTful 端点
|
||
- 4.2 请求/响应格式
|
||
- 4.3 错误处理
|
||
|
||
## 5. 配置文件
|
||
- 5.1 环境变量配置
|
||
- 5.2 日志配置
|
||
- 5.3 其他配置项
|
||
|
||
## 6. 使用说明
|
||
- 6.1 安装步骤
|
||
- 6.2 运行命令
|
||
- 6.3 配置说明
|
||
|
||
【注意事项】
|
||
- 遵循 PEP 8 编码规范
|
||
- 使用类型提示 (Type Hints)
|
||
- 包含必要的文档字符串
|
||
- 实现适当的错误处理
|
||
- 确保代码可通过所有测试用例
|
||
""",
|
||
expected_output="完整的业务代码实现和使用说明",
|
||
agent=create_dev_agent()
|
||
)
|
||
|
||
|
||
def execute_dev_stage(srs_document: str, test_plan: str) -> Dict[str, Any]:
|
||
"""
|
||
执行 Dev 阶段任务
|
||
|
||
Args:
|
||
srs_document: 软件需求规格说明书
|
||
test_plan: 测试方案和测试用例
|
||
|
||
Returns:
|
||
Dict[str, Any]: 包含代码实现和执行结果
|
||
"""
|
||
dev_agent = create_dev_agent()
|
||
dev_task = create_dev_task(srs_document, test_plan)
|
||
|
||
crew = Crew(
|
||
agents=[dev_agent],
|
||
tasks=[dev_task],
|
||
verbose=True
|
||
)
|
||
|
||
result = crew.kickoff()
|
||
|
||
return {
|
||
"stage": "代码实现",
|
||
"implementation": result.raw,
|
||
"status": "completed"
|
||
}
|