Files
crewai/agents/pm_agent.py

114 lines
3.3 KiB
Python
Raw Permalink Normal View History

2026-03-13 18:12:31 +08:00
"""
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)
你的输出将作为测试和开发团队的输入务必保证准确性和完整性""",
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 业务约束
注意事项
- 使用清晰无歧义的语言
- 需求必须是可测试可验证的
- 优先保证核心功能的完整性
""",
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"
}