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 整体流程图
已确认的需求
15 章结构
Claude 调用
产品经理 Review
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 人机协同模式
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 设计原则
- 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 格式正确的技巧
- 明确指定格式:在 Prompt 中明确指出"请以 JSON 格式输出"
- 提供 Schema 示例:给出完整的 JSON 结构示例,包括所有字段
- 使用代码块标记:要求 AI 用
```json包裹输出 - 后处理验证:代码中解析 JSON 失败时进行重试或降级处理
- 字段类型说明:明确每个字段的数据类型(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
custom_prompts = {
"functional_requirements": """
你是一位{domain}领域的专家产品经理,请生成符合行业标准的功能需求...
【行业特定要求】
- 合规要求:{compliance}
- 行业标准:{standards}
...
"""
}
# 注入到 Agent
agent.prompts = custom_prompts
7.3 最佳实践
| 实践 | 说明 | 效果 |
|---|---|---|
| 提供详细的用户故事 | 用户故事越详细,生成的功能需求越准确 | ⭐⭐⭐⭐⭐ |
| 明确验收标准 | 使用 Gherkin 格式(Given-When-Then) | ⭐⭐⭐⭐⭐ |
| 提供业务背景 | 市场现状、竞争对手、行业特点等信息 | ⭐⭐⭐⭐ |
| 人工审核必不可少 | AI 生成的内容需要产品经理审核确认 | ⭐⭐⭐⭐⭐ |
| 迭代优化 | 根据审核意见调整输入,重新生成 | ⭐⭐⭐⭐ |