""" PM Agent - 产品经理智能体 负责将用户输入的非结构化需求转化为结构化软件需求规格说明书 (SRS) """ from typing import Dict, Any from crewai import Agent, Task, Crew from models.qwen_config import get_llm def create_pm_agent() -> Agent: """ 创建产品经理智能体 Returns: Agent: PM 智能体实例 """ return Agent( role="资深产品需求分析师", goal="将模糊的用户需求转化为清晰、完整、可执行的软件需求规格说明书 (SRS)", backstory="""你是一位拥有 10 年经验的资深产品需求分析师,擅长: 1. 快速理解用户业务场景和核心痛点 2. 识别功能性需求和非功能性需求 3. 定义清晰的验收标准 (Acceptance Criteria) 4. 遵循博世研发规范,确保需求的可追溯性和可验证性 你的输出将作为测试和开发团队的输入,务必保证准确性和完整性。""", verbose=True, allow_delegation=False, llm=get_llm() ) def create_pm_task(requirement: str) -> Task: """ 创建需求分析任务 Args: requirement: 用户需求描述 Returns: Task: PM 任务实例 """ return Task( description=f""" 请分析以下用户需求,生成结构化的软件需求规格说明书 (SRS): 【用户需求】 {requirement} 【输出要求】 请按照以下结构输出 SRS 文档: ## 1. 项目概述 - 1.1 项目背景 - 1.2 项目目标 - 1.3 适用范围 ## 2. 功能性需求 - 2.1 功能列表(使用 MoSCoW 优先级标注) - 2.2 功能详细描述(包含输入、处理、输出) - 2.3 业务流程图描述 ## 3. 非功能性需求 - 3.1 性能要求(响应时间、并发量等) - 3.2 安全要求(认证、授权、数据保护) - 3.3 可用性要求(易用性、可访问性) - 3.4 可维护性要求(日志、监控、可扩展性) ## 4. 验收标准 (Acceptance Criteria) - 4.1 功能验收标准(每个功能的通过标准) - 4.2 性能验收标准(量化指标) - 4.3 用户体验验收标准 ## 5. 约束条件 - 5.1 技术约束 - 5.2 业务约束 - 5.3 合规约束(博世研发规范) 【注意事项】 - 使用清晰、无歧义的语言 - 需求必须是可测试、可验证的 - 优先保证核心功能的完整性 """, expected_output="完整的软件需求规格说明书 (SRS),包含功能性需求、非功能性需求和验收标准", agent=create_pm_agent() ) def execute_pm_stage(requirement: str) -> Dict[str, Any]: """ 执行 PM 阶段任务 Args: requirement: 用户需求描述 Returns: Dict[str, Any]: 包含 SRS 文档和执行结果 """ pm_agent = create_pm_agent() pm_task = create_pm_task(requirement) crew = Crew( agents=[pm_agent], tasks=[pm_task], verbose=True ) result = crew.kickoff() return { "stage": "需求分析", "srs_document": result.raw, "status": "completed" }