Files
crewai/agents/pm_agent.py
ZhuJW 8584821f36 fix
2026-03-13 20:53:44 +08:00

114 lines
3.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
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"
}