🤖 PRD 生成 Agent

AI 驱动的产品需求文档自动生成系统

基于 Claude AI + 结构化模板 | 支持人机协同 | 多格式输出

PRD 生成 Agent 概述

🎯 产品定位

PRD 生成 Agent 是一个基于 AI 大模型(Claude)的智能文档生成系统, 它能够接收已确认的用户故事和需求清单,自动生成完整的、结构化的产品需求文档(PRD)。 该系统是端到端研发自动化流程中的关键一环,连接需求分析和技术方案设计。

1.1 核心价值

⚡ 效率提升

将 PRD 编写时间从数天缩短到数分钟,产品经理可以专注于需求本身而非文档格式。

📐 标准化

确保所有 PRD 遵循统一的15 章标准结构,提高文档质量和可读性。

🤖 AI 增强

利用 Claude AI 的自然语言理解和生成能力,自动填充详细内容,减少人工编写工作量。

🔄 可迭代

支持多轮修改和版本控制,每次变更自动生成新的版次,保留完整的历史记录。

🔗 可追溯

建立用户故事→功能需求→测试用例的完整追溯链,确保需求不丢失、不偏离。

📦 多格式

同时输出JSON/Markdown/HTML三种格式,满足不同场景的使用需求。

1.2 适用场景

场景 描述 典型用户
新产品立项 从 0 到 1 的新产品,需要快速产出 PRD 进行评审 产品经理、创业者
功能迭代 现有产品新增功能模块,需要补充需求文档 产品团队、开发团队
外包项目 需要向外部团队提供详细的需求规格说明 甲方产品经理、乙方项目经理
合规审计 需要完善的需求文档满足审计或认证要求 合规官、质量管理人员

核心功能特性

2.1 智能内容生成

🧠 基于 Prompt Engineering 的 AI 生成

系统内置10+ 精心设计的 Prompt 模板,覆盖 PRD 的各个章节:

  • executive_summary - 执行摘要生成
  • problem_statement - 问题陈述撰写
  • functional_requirements - 功能需求细化
  • non_functional_requirements - 非功能需求定义
  • user_personas - 用户画像创建
  • business_processes - 业务流程设计
  • data_models - 数据模型构建
  • api_contracts - API 协议制定
  • risks_assessment - 风险评估识别
  • release_plan - 发布计划规划
  • success_metrics - 成功指标定义

2.2 输入输出规范

📥 输入数据

  • 产品名称:简洁明确的产品名称
  • 产品愿景:长期目标和价值主张
  • 目标用户:用户群体描述(列表)
  • 用户痛点:核心痛点列表(3-5 个)
  • 确认的用户故事:已通过评审的用户故事(含验收标准)
  • 业务领域:所属行业/领域
  • 市场现状(可选):市场规模、竞争格局
  • 合规要求(可选):法律法规、行业标准
  • 技术栈(可选):预期使用的技术
  • 团队规模(可选):参与项目的人数
  • 时间约束(可选):预期上线时间

📤 输出产物

  • JSON 文件:结构化数据,便于程序处理
  • Markdown 文件:人类可读,便于编辑和版本控制
  • HTML 文件:可视化报告,便于分享和演示
  • 完整 15 章内容
    • 文档元数据
    • 产品概述(执行摘要、问题陈述、愿景目标)
    • 用户研究(画像、故事、旅程地图)
    • 业务流程
    • 功能需求(详细规格)
    • 非功能需求(性能、安全等)
    • 原型规范
    • 数据模型
    • API 协议
    • 集成需求
    • 合规与安全
    • 风险评估
    • 发布计划
    • 成功指标
    • 附录(术语表、参考资料、变更日志)

2.3 配置选项

⚙️ PRDGenerationConfig 配置类

@dataclass
class PRDGenerationConfig:
    """PRD 生成配置"""
    model: str = "claude-sonnet-4-20250514"  # AI 模型
    max_tokens: int = 4096                   # 最大生成长度
    temperature: float = 0.7                 # 创造性程度 (0-1)
    enable_ai_enhancement: bool = True       # 是否启用 AI 增强
    auto_fill_metadata: bool = True          # 自动填充元数据
    generate_examples: bool = True           # 生成示例数据
    output_formats: List[str] = None         # 输出格式 ["json", "markdown", "html"]

工作流程

3.1 整体流程图

1. 接收输入
已确认的需求
2. 生成基础模板
15 章结构
3. AI 填充内容
Claude 调用
4. 人工审核
产品经理 Review
5. 导出文件
JSON/MD/HTML

3.2 详细步骤说明

步骤 操作 负责人 输出 预计耗时
Step 1
准备输入
收集已确认的用户故事、验收标准、业务背景 产品经理 PRDGenerationInput 对象 30 分钟
Step 2
生成模板
调用 PRDTemplateGenerator 创建空模板 Agent ProductRequirementsDocument 对象 <1 秒
Step 3
AI 生成内容
对每个章节调用 Claude API 生成详细内容 Agent + Claude 填充后的 PRD 对象 2-5 分钟
Step 4
人工审核
产品经理检查生成内容,修正错误或不准确之处 产品经理 审核意见/修改建议 30-60 分钟
Step 5
迭代优化
根据审核意见调整输入或手动编辑 PRD 产品经理 + Agent 修订版 PRD 15-30 分钟
Step 6
导出发布
导出 JSON/Markdown/HTML 文件,分发给利益相关者 Agent 三个格式的输出文件 <10 秒

3.3 人机协同模式

👥 人在回路(Human-in-the-Loop)设计理念

PRD 生成 Agent 不是要替代产品经理,而是增强产品经理的能力。 AI 负责繁琐的文档编写工作,产品经理专注于需求本身的思考和决策。

  • AI 擅长:快速生成结构化内容、保持一致的格式、提供多种表述方式
  • 人类擅长:理解复杂业务场景、做出价值判断、平衡多方利益、创新思考
  • 最佳实践:AI 生成初稿 → 人类审核修改 → AI 再次优化 → 人类最终确认

系统架构设计

4.1 核心组件

📦 PRDGenerationAgent

主控制器,协调整个生成流程

  • 初始化 Anthropic 客户端
  • 调用各个生成方法
  • 管理生成配置
  • 导出最终文件

📝 PRDGenerationInput

输入数据容器

  • 产品信息
  • 用户故事列表
  • 业务背景
  • 约束条件

⚙️ PRDGenerationConfig

配置管理

  • AI 模型选择
  • 生成参数
  • 输出格式
  • 功能开关

🎯 Prompt Templates

Prompt 模板库

  • 10+ 专用 Prompt
  • 结构化输出指导
  • JSON 格式约束
  • 领域知识注入

4.2 数据流图

┌─────────────────────┐
│   已确认的需求输入   │
│  (User Stories + AC)│
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│ PRDGenerationInput  │
│   (数据验证与转换)   │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│ PRDTemplateGenerator│
│   (创建空模板框架)   │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────────────────────┐
│     PRDGenerationAgent 主循环        │
│  ┌───────────────────────────────┐  │
│  │ for each chapter in 15 chapters│  │
│  │   ├─ 构建 Prompt              │  │
│  │   ├─ 调用 Claude API          │  │
│  │   ├─ 解析 JSON 响应            │  │
│  │   └─ 填充到 PRD 对象           │  │
│  └───────────────────────────────┘  │
└──────────┬──────────────────────────┘
           │
           ▼
┌─────────────────────┐
│ ProductRequirements │
│    Document 对象     │
│   (完整的 PRD 数据)   │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│   Export Functions  │
│  (JSON/MD/HTML)     │
└──────────┬──────────┘
           │
           ▼
┌─────────────────────┐
│   输出文件 (.json)   │
│   输出文件 (.md)     │
│   输出文件 (.html)   │
└─────────────────────┘
                

4.3 依赖关系

依赖项 版本要求 用途 是否必需
anthropic ≥0.18.0 Claude API 客户端 ✅ 是(AI 生成功能)
prd_template_standard v1.0+ PRD 数据模型和模板 ✅ 是(核心依赖)
python ≥3.8 运行环境 ✅ 是
ANTHROPIC_API_KEY - 环境变量(API 密钥) ⭕ 可选(无 Key 时使用模板填充)

Prompt 工程设计

5.1 Prompt 设计原则

🎯 CRISPE 框架
  • Capacity and Role(能力和角色):明确 AI 的角色定位(如"你是一位资深产品经理")
  • Request(请求):清晰描述任务目标
  • Instruction(指令):提供具体的操作步骤和要求
  • Style and Format(风格和格式):指定输出的风格和格式(如 JSON)
  • Personality(个性):设定语气和风格(专业、简洁)
  • Example(示例):提供示例帮助 AI 理解期望输出

5.2 核心 Prompt 示例

📝 功能需求生成 Prompt

你是一位技术产品经理,请将以下用户故事转换为详细的功能需求规格。

【输入信息】
用户故事:{user_story}
验收标准:{acceptance_criteria}
业务领域:{business_domain}

【输出要求】
请生成一个完整的功能需求对象,包含以下字段(JSON 格式):
{{
    "title": "功能标题(10 字以内)",
    "description": "详细功能描述(200-500 字)",
    "type": "功能性需求",
    "priority": "P0/P1/P2/P3",
    "acceptance_criteria": ["验收标准 1", "验收标准 2"],
    "business_rules": ["业务规则 1", "业务规则 2"],
    "data_requirements": ["需要存储的数据字段"],
    "ui_requirements": ["界面元素和交互要求"],
    "api_requirements": ["需要的 API 接口"],
    "constraints": ["技术/业务/法律约束"],
    "assumptions": ["前提假设"]
}}

确保需求是可测试、可实现的,并且与验收标准一致。

5.3 JSON 输出约束技巧

💡 确保 JSON 格式正确的技巧

  1. 明确指定格式:在 Prompt 中明确指出"请以 JSON 格式输出"
  2. 提供 Schema 示例:给出完整的 JSON 结构示例,包括所有字段
  3. 使用代码块标记:要求 AI 用```json包裹输出
  4. 后处理验证:代码中解析 JSON 失败时进行重试或降级处理
  5. 字段类型说明:明确每个字段的数据类型(string/array/object)

演示示例

6.1 示例输入

📥 智能电商用户中心 - 输入数据

product_name = "智能电商用户中心"
product_vision = "成为中小企业首选的智能化用户管理平台"
target_users = [
    "中小电商企业主(25-45 岁,年销售额 100-1000 万)",
    "电商运营人员(负责客户服务和营销)",
    "客服人员(处理用户咨询和售后)"
]
user_pain_points = [
    "客户数据分散在多个系统,无法形成统一视图",
    "客服响应时间长,平均需要 24 小时",
    "缺乏个性化服务能力,客户体验差",
    "营销转化率低,复购率不足 20%"
]
confirmed_user_stories = [
    {
        "id": "US-001",
        "title": "手机号验证码登录",
        "story": "作为用户,我想要通过手机号验证码快速登录,以便无需记住密码即可访问账户",
        "priority": "must_have",
        "acceptance_criteria": [
            "Given 用户已注册,When 请求验证码,Then 5 分钟内收到短信",
            "Given 验证码正确,When 提交验证,Then 登录成功并跳转首页"
        ]
    },
    {
        "id": "US-002",
        "title": "个人资料管理",
        "story": "作为用户,我想要编辑个人资料和上传头像,以便展示个性化信息",
        "priority": "should_have",
        "acceptance_criteria": [
            "用户可以修改昵称(2-20 字符)",
            "用户可以上传头像(JPG/PNG,最大 5MB)"
        ]
    }
]

6.2 生成结果统计

指标 数值 说明
PRD ID PRD-20260313-002 自动生成的唯一标识符
用户故事数 2 输入的已确认用户故事数量
功能需求数 2 从用户故事转换生成的 FR 数量
非功能需求数 2 默认生成的 NFR(性能 + 安全)
业务流程数 2 为核心功能生成的流程
数据模型数 1 User 实体模型
API 接口数 1 登录 API 示例
输出文件大小 ~50KB 三个文件的总大小
生成耗时 <1 秒 无 AI 增强模式下的耗时

6.3 输出文件预览

📄

JSON 文件

结构化数据
便于程序处理

智能电商用户中心_prd.json
📝

Markdown 文件

人类可读
便于编辑和 Git

智能电商用户中心_prd.md
🌐

HTML 文件

可视化报告
便于分享和演示

智能电商用户中心_prd.html

使用指南

7.1 快速开始

🚀 安装依赖

# 安装 Anthropic SDK(如需 AI 生成功能)
pip install anthropic

# 设置 API Key(可选,不提供则使用模板填充)
export ANTHROPIC_API_KEY="your-api-key-here"

📝 基本用法

from prd_generation_agent import (
    PRDGenerationAgent,
    PRDGenerationInput,
    PRDGenerationConfig
)

# 1. 准备输入数据
input_data = PRDGenerationInput(
    product_name="我的产品",
    product_vision="产品愿景描述",
    target_users=["目标用户 1", "目标用户 2"],
    user_pain_points=["痛点 1", "痛点 2"],
    confirmed_user_stories=[
        {
            "id": "US-001",
            "title": "用户故事标题",
            "story": "作为...我想要...以便...",
            "priority": "must_have",
            "acceptance_criteria": ["验收标准 1"]
        }
    ],
    business_domain="行业领域"
)

# 2. 创建 Agent
agent = PRDGenerationAgent(
    api_key="sk-...",  # 或从环境变量读取
    config=PRDGenerationConfig(
        enable_ai_enhancement=True,
        output_formats=["json", "markdown", "html"]
    )
)

# 3. 生成 PRD
prd = agent.generate_full_prd(input_data, output_dir="./output")

# 4. 查看结果
print(f"PRD ID: {prd.metadata.prd_id}")
print(f"功能需求数:{len(prd.functional_requirements)}")

7.2 高级用法

💡 自定义 Prompt 模板

你可以替换或扩展内置的 Prompt 模板,以适应特定行业或公司的需求:

# 自定义功能需求生成 Prompt
custom_prompts = {
    "functional_requirements": """
你是一位{domain}领域的专家产品经理,请生成符合行业标准的功能需求...

【行业特定要求】
- 合规要求:{compliance}
- 行业标准:{standards}
...
"""
}

# 注入到 Agent
agent.prompts = custom_prompts

7.3 最佳实践

实践 说明 效果
提供详细的用户故事 用户故事越详细,生成的功能需求越准确 ⭐⭐⭐⭐⭐
明确验收标准 使用 Gherkin 格式(Given-When-Then) ⭐⭐⭐⭐⭐
提供业务背景 市场现状、竞争对手、行业特点等信息 ⭐⭐⭐⭐
人工审核必不可少 AI 生成的内容需要产品经理审核确认 ⭐⭐⭐⭐⭐
迭代优化 根据审核意见调整输入,重新生成 ⭐⭐⭐⭐