""" 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(测试驱动开发)实践 你的代码实现必须通过所有测试用例,并满足性能和安全要求。""", 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 : \"\"\"<服务>业务逻辑类\"\"\" def __init__(self): # 初始化 def (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" }