🚀 基于 OpenClaw + Claude Code 的
端到端研发自动化系统使用手册

从需求分析到自动部署的全流程智能化研发解决方案
支持人机协同的现代化软件工程实践

📖 版本:v1.0 | 📅 更新日期:2026 年 3 月 | 🔧 适用系统:OpenClaw + Claude Code

系统概述与架构介绍

1.1 系统简介

本系统是基于 OpenClaw(开源爬虫框架)和 Claude Code(AI 编程助手)构建的端到端研发自动化平台。 它实现了从需求分析、PRD 设计、技术方案设计、API 协议定义、代码生成、测试验证到自动部署的全流程自动化, 并在关键节点支持人机协同,确保研发质量与效率的双重提升。

💡 核心理念 AI 驱动 + 人机协同 = 高效高质量的软件交付

1.2 系统核心特性

1.3 系统架构图

需求输入
用户故事/需求描述
需求分析 Agent
需求澄清与细化
PRD 生成 Agent
产品需求文档
技术设计 Agent
前后端技术方案
API 设计 Agent
接口协议定义
AI Coding Agent
代码自动生成
测试 Agent
单元/集成/UI 测试
部署 Agent
CI/CD+K8S 部署

1.4 技术栈组成

层级 技术组件 用途说明
AI 引擎层 Claude Code / OpenClaw 核心 AI 推理与代码生成能力
Agent 编排层 LangChain / AutoGen 多 Agent 协同与工作流编排
开发工具层 VSCode / Git / Maven / npm 代码编辑、版本控制、构建工具
测试框架层 JUnit / pytest / Selenium / Cypress 单元测试、集成测试、UI 自动化测试
CI/CD 层 Jenkins / GitLab CI 持续集成与持续部署流水线
容器化层 Docker / KubeSphere 容器打包与 Kubernetes 集群管理
🎯 最佳实践提示 建议在项目启动前,先配置好所有基础环境依赖,并确保各 Agents 之间的通信通道畅通。

各研发角色 Agents 详解

本系统定义了以下核心研发角色 Agents,每个 Agent 都具备专业领域知识和特定职责:

📋 需求分析师 Agent (Requirement Analyst Agent)

职责:负责需求收集、分析、澄清和结构化

  • 与用户对话,收集原始需求信息
  • 识别需求中的模糊点和矛盾点
  • 生成需求澄清问题列表
  • 输出结构化的需求规格说明书
  • 维护需求追踪矩阵 (RTM)

输入:用户原始需求描述、业务背景资料

输出:结构化需求文档、需求澄清报告

📝 产品经理 Agent (Product Manager Agent)

职责:负责 PRD 文档编写和产品功能设计

  • 基于需求文档编写 PRD
  • 定义产品功能清单和功能优先级
  • 绘制产品原型和流程图
  • 定义验收标准 (Acceptance Criteria)
  • 维护产品路线图

输入:结构化需求文档、市场调研数据

输出:PRD 文档、产品原型、功能清单

🏗️ 系统架构师 Agent (System Architect Agent)

职责:负责整体技术架构设计和关键技术选型

  • 设计系统整体架构(微服务/单体)
  • 技术栈选型与评估
  • 数据库设计与数据模型定义
  • 系统安全性设计
  • 性能优化策略制定
  • 输出架构设计文档 (ADD)

输入:PRD 文档、非功能性需求

输出:架构设计文档、技术选型报告、数据模型

⚙️ 后端开发工程师 Agent (Backend Developer Agent)

职责:负责后端服务开发和 API 实现

  • 基于 API 协议实现后端服务
  • 数据库访问层开发
  • 业务逻辑实现
  • 单元测试编写
  • 代码审查与优化

输入:API 接口协议、架构设计文档

输出:后端源代码、单元测试用例、API 实现

🎨 前端开发工程师 Agent (Frontend Developer Agent)

职责:负责前端界面开发和用户体验实现

  • 基于原型实现前端页面
  • 与后端 API 对接
  • 状态管理和路由配置
  • 响应式设计和适配
  • 前端性能优化

输入:产品原型、API 接口协议

输出:前端源代码、组件库、页面实现

🔌 API 设计师 Agent (API Designer Agent)

职责:负责前后端接口协议设计

  • 定义 RESTful API 规范
  • 编写 OpenAPI/Swagger 文档
  • 设计请求/响应数据结构
  • 定义错误码和异常处理
  • API 版本管理策略

输入:PRD 功能清单、数据模型

输出:OpenAPI 规范文档、API 接口定义

🧪 测试工程师 Agent (QA Engineer Agent)

职责:负责测试策略制定和测试执行

  • 制定测试计划和测试策略
  • 编写单元测试用例
  • 执行集成测试
  • UI 自动化测试脚本开发
  • 缺陷跟踪和管理
  • 输出测试报告

输入:PRD 验收标准、源代码

输出:测试用例、测试报告、缺陷报告

🚀 DevOps 工程师 Agent (DevOps Engineer Agent)

职责:负责 CI/CD 流水线配置和自动部署

  • 配置 Jenkins 流水线
  • 编写 Dockerfile 和 Docker Compose
  • Kubernetes 部署配置文件编写
  • 监控和日志系统集成
  • 自动化部署脚本开发

输入:源代码、构建产物

输出:CI/CD 配置、容器镜像、部署脚本

2.1 Agent 间通信机制

各 Agents 通过以下方式进行协作通信:

⚠️ 注意事项 在多人协作场景中,务必确保各 Agents 的版本一致性,避免因版本差异导致的兼容性问题。

需求分析与 PRD 生成模块使用指南

3.1 模块概述

需求分析与 PRD 生成模块是研发流程的起点,负责将用户的原始需求转化为结构化的产品需求文档。 该模块由需求分析师 Agent 和产品经理 Agent 协同完成。

3.2 使用流程

1
需求输入
2
需求澄清
3
需求分析
4
PRD 生成
5
人工审核

3.3 详细操作步骤

1需求输入

用户可以通过以下方式输入需求:

# 方式 1: 命令行输入
python cli.py input-requirement --text "我需要一个在线商城系统,支持用户注册、商品浏览、购物车、下单支付等功能"

# 方式 2: 文件上传
python cli.py input-requirement --file requirement_draft.md

# 方式 3: Web 界面输入
# 访问 http://localhost:8080/requirement-input 填写需求表单
💡 提示 需求描述越详细,生成的 PRD 质量越高。建议包含业务背景、目标用户、核心功能、约束条件等信息。

2需求澄清

需求分析师 Agent 会自动分析需求中的模糊点,并生成澄清问题列表:

# 查看需求澄清问题
python cli.py get-clarification-questions --req-id REQ-2026-001

# 示例输出:
# 1. 商城系统需要支持哪些支付方式?(微信支付/支付宝/银联)
# 2. 是否需要会员等级体系?
# 3. 商品分类层级是多少?
# 4. 是否需要评价系统?
# 5. 预期并发用户量是多少?

用户回答澄清问题后,系统会自动更新需求文档:

python cli.py answer-questions --req-id REQ-2026-001 --answers-file answers.json

3需求分析

需求分析师 Agent 基于澄清后的需求,生成结构化需求规格说明书:

# 执行需求分析
python cli.py analyze-requirements --req-id REQ-2026-001

# 查看分析结果
python cli.py view-requirement-spec --req-id REQ-2026-001

需求规格说明书包含以下内容:

4PRD 生成

产品经理 Agent 基于需求规格说明书,自动生成 PRD 文档:

# 生成 PRD
python cli.py generate-prd --req-id REQ-2026-001 --output-format markdown

# PRD 文档将保存到:output/prd/REQ-2026-001_prd.md

PRD 文档标准结构:

# 产品需求文档 (PRD)

## 1. 文档信息
- 产品名称:在线商城系统
- 版本号:v1.0
- 创建日期:2026-03-13
- 最后更新:2026-03-13

## 2. 产品概述
### 2.1 产品定位
### 2.2 目标用户
### 2.3 核心价值

## 3. 功能需求
### 3.1 用户管理模块
#### 3.1.1 用户注册
#### 3.1.2 用户登录
#### 3.1.3 个人信息管理
### 3.2 商品管理模块
...

## 4. 非功能性需求
### 4.1 性能要求
### 4.2 安全要求
### 4.3 可用性要求

## 5. 验收标准
### 5.1 功能验收标准
### 5.2 性能验收标准

## 6. 附录
### 6.1 术语表
### 6.2 参考资料

5人工审核

PRD 生成后,需要产品经理或项目负责人进行审核:

# 提交审核
python cli.py submit-for-review --doc-type prd --doc-id REQ-2026-001

# 审核人员收到通知后,可以:
# 批准
python cli.py approve-doc --doc-id REQ-2026-001 --reviewer "张三" --comment "PRD 内容完整,予以批准"

# 驳回修改
python cli.py reject-doc --doc-id REQ-2026-001 --reviewer "张三" --comment "需要补充支付流程的详细描述"

3.4 配置选项

可以在配置文件中自定义 PRD 生成参数:

# config/prd_config.yaml
prd_generation:
  template: standard  # standard/detailed/agile
  include_wireframe: true  # 是否包含原型图
  include_user_story_map: true  # 是否包含用户故事地图
  acceptance_criteria_format: given_when_then  # 验收标准格式
  output_formats:  # 输出格式
    - markdown
    - pdf
    - html
  auto_version: true  # 自动版本号管理

3.5 常见问题

Q1: 如何处理需求变更? A: 使用命令 `python cli.py update-requirement --req-id REQ-2026-001 --change-description "..."` 系统会自动追踪变更历史并更新相关文档。
Q2: PRD 生成质量不高怎么办? A: 可以通过提供更多上下文信息、示例文档或调整配置参数来提升质量。 也可以使用 `python cli.py fine-tune-prd --examples-dir ./prd_examples` 进行微调。

技术方案设计模块使用指南

4.1 模块概述

技术方案设计模块由系统架构师 Agent、后端开发工程师 Agent 和前端开发工程师 Agent 共同完成, 负责将 PRD 转化为可执行的技术方案,包括系统架构设计、数据库设计、前后端技术选型等。

4.2 后端技术方案设计

4.2.1 架构设计

# 生成后端架构设计方案
python cli.py design-backend-architecture --prd-id REQ-2026-001 --style microservices

# 可选架构风格:monolithic(单体)/ microservices(微服务)/ serverless(无服务器)

生成的架构设计文档包含:

4.2.2 数据库设计

# 生成数据库设计
python cli.py design-database --prd-id REQ-2026-001 --db-type mysql

# 查看 ER 图
python cli.py view-erd --prd-id REQ-2026-001 --format png

输出产物:

4.2.3 技术栈选型

# 获取技术栈推荐
python cli.py recommend-tech-stack --prd-id REQ-2026-001 --criteria "performance,maintainability,cost"

典型电商系统技术栈推荐:

层级 推荐技术 备选方案
Web 框架 Spring Boot 3.x Quarkus / Micronaut
ORM 框架 MyBatis Plus JPA / jOOQ
缓存 Redis 7.x Hazelcast / Caffeine
消息队列 RabbitMQ Kafka / RocketMQ
搜索引擎 Elasticsearch 8.x Solr

4.3 前端技术方案设计

4.3.1 前端架构设计

# 生成前端架构方案
python cli.py design-frontend-architecture --prd-id REQ-2026-001 --framework react

# 可选框架:react / vue / angular / svelte

前端架构设计包含:

4.3.2 页面原型设计

# 基于 PRD 生成页面原型
python cli.py generate-wireframes --prd-id REQ-2026-001 --style modern

# 查看原型
python cli.py view-wireframes --prd-id REQ-2026-001 --browser

4.4 技术方案评审

# 组织技术方案评审会
python cli.py schedule-tech-review --prd-id REQ-2026-001 --participants "架构师,技术总监,安全专家"

# 收集评审意见
python cli.py collect-review-feedback --session-id TECH-REV-001

# 根据评审意见修改方案
python cli.py revise-tech-design --session-id TECH-REV-001 --incorporate-feedback

4.5 输出文档清单

API 接口开发协议设计模块

5.1 模块概述

API 设计师 Agent 负责定义前后端交互的标准接口协议,确保前后端开发可以并行进行。 采用 OpenAPI 3.0 (Swagger) 规范作为接口描述标准。

5.2 API 设计流程

1
识别资源
2
定义端点
3
设计 Schema
4
生成文档
5
Mock 服务

5.3 详细操作

5.3.1 自动生成 API 初稿

# 基于 PRD 和技术方案生成 API 初稿
python cli.py generate-api-draft --prd-id REQ-2026-001 --tech-design-id TD-2026-001

# 输出文件:output/api/openapi_draft.yaml

5.3.2 完善 API 定义

# 交互式完善 API 定义
python cli.py refine-api --draft-file output/api/openapi_draft.yaml

# 系统会逐项确认:
# - HTTP 方法是否正确 (GET/POST/PUT/DELETE)
# - 请求参数是否完整(path/query/body/header)
# - 响应数据结构是否合理
# - 错误码定义是否全面
# - 认证授权机制是否明确

5.3.3 API 文档示例

openapi: 3.0.3
info:
  title: 在线商城系统 API
  version: 1.0.0
  description: 在线商城系统的 RESTful API 接口文档

servers:
  - url: https://api.mall.example.com/v1
    description: 生产环境
  - url: https://staging-api.mall.example.com/v1
    description: 预发布环境

paths:
  /users/register:
    post:
      summary: 用户注册
      tags: [用户管理]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRegisterRequest'
      responses:
        '201':
          description: 注册成功
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRegisterResponse'
        '400':
          description: 请求参数错误
        '409':
          description: 用户名已存在

components:
  schemas:
    UserRegisterRequest:
      type: object
      required:
        - username
        - password
        - email
      properties:
        username:
          type: string
          minLength: 3
          maxLength: 20
        password:
          type: string
          minLength: 8
          format: password
        email:
          type: string
          format: email
    UserRegisterResponse:
      type: object
      properties:
        userId:
          type: string
          format: uuid
        username:
          type: string
        createdAt:
          type: string
          format: date-time

5.3.4 API 评审与定稿

# 组织 API 评审
python cli.py review-api --api-file output/api/openapi.yaml --reviewers "后端负责人,前端负责人"

# 定稿并发布
python cli.py finalize-api --api-file output/api/openapi.yaml --version 1.0.0

5.3.5 启动 Mock 服务

# 基于 OpenAPI 规范启动 Mock 服务
python cli.py start-mock-server --api-file output/api/openapi.yaml --port 8080

# Mock 服务启动后,前端可以立即开始开发,无需等待后端实现

5.3.6 生成 API 客户端 SDK

# 生成 TypeScript 前端客户端
python cli.py generate-client-sdk --api-file output/api/openapi.yaml --language typescript --output ./frontend/src/api

# 生成 Java 后端客户端(用于服务间调用)
python cli.py generate-client-sdk --api-file output/api/openapi.yaml --language java --output ./services/common/client

5.4 API 版本管理

# 查看 API 版本历史
python cli.py api-version-history --api-name mall-api

# 创建新版本
python cli.py create-api-version --base-version 1.0.0 --new-version 1.1.0 --changes "新增优惠券功能"

# 版本兼容性检查
python cli.py check-api-compatibility --old-version 1.0.0 --new-version 1.1.0
💡 最佳实践 API 设计应遵循 RESTful 原则,保持资源命名的一致性,合理使用 HTTP 状态码, 并提供详细的错误信息和文档。

AI Coding 与人机协同流程

6.1 模块概述

AI Coding 模块是整个系统的核心,由后端开发工程师 Agent 和前端开发工程师 Agent 基于 API 协议和技术方案自动生成高质量代码。系统支持全自动模式和人工辅助模式。

6.2 后端代码生成

6.2.1 项目初始化

# 初始化后端项目
python cli.py init-backend-project \
  --api-file output/api/openapi.yaml \
  --tech-stack spring-boot \
  --package com.example.mall \
  --output ./backend

# 生成的项目结构:
# backend/
# ├── pom.xml
# ├── src/main/java/com/example/mall/
# │   ├── controller/     # 控制器层
# │   ├── service/        # 服务层
# │   ├── repository/     # 数据访问层
# │   ├── entity/         # 实体类
# │   ├── dto/            # 数据传输对象
# │   └── config/         # 配置类
# └── src/main/resources/
#     ├── application.yml
#     └── mapper/         # MyBatis 映射文件

6.2.2 批量生成代码

# 生成所有实体类
python cli.py generate-entities --api-file output/api/openapi.yaml --output ./backend/src/main/java

# 生成所有 Repository 层
python cli.py generate-repositories --entities-dir ./backend/src/main/java/entity --output ./backend/src/main/java/repository

# 生成所有 Service 层
python cli.py generate-services --api-file output/api/openapi.yaml --output ./backend/src/main/java/service

# 生成所有 Controller 层
python cli.py generate-controllers --api-file output/api/openapi.yaml --output ./backend/src/main/java/controller

# 生成 MyBatis Mapper XML
python cli.py generate-mapper-xml --entities-dir ./backend/src/main/java/entity --output ./backend/src/main/resources/mapper

6.2.3 业务逻辑填充

# AI 自动填充复杂业务逻辑
python cli.py implement-business-logic \
  --service-file ./backend/src/main/java/service/UserService.java \
  --context "实现用户注册逻辑,包括密码加密、邮箱验证、默认角色分配"

# 系统会调用 Claude Code 分析上下文并生成符合业务需求的代码

6.2.4 代码审查与优化

# 自动代码审查
python cli.py code-review --project-dir ./backend --ruleset standard

# 查看审查报告
python cli.py view-code-review-report --report-id CR-2026-001

# 自动修复常见问题
python cli.py auto-fix-issues --report-id CR-2026-001 --fix-level safe

# 手动审查模式(推荐)
python cli.py interactive-code-review --project-dir ./backend

6.3 前端代码生成

6.3.1 项目初始化

# 初始化前端项目
python cli.py init-frontend-project \
  --framework react \
  --template ant-design-pro \
  --api-file output/api/openapi.yaml \
  --output ./frontend

# 生成的项目结构:
# frontend/
# ├── package.json
# ├── vite.config.ts
# ├── src/
# │   ├── pages/         # 页面组件
# │   ├── components/    # 通用组件
# │   ├── services/      # API 服务
# │   ├── models/        # 状态管理
# │   ├── utils/         # 工具函数
# │   └── styles/        # 样式文件
# └── public/

6.3.2 页面生成

# 根据 PRD 生成所有页面
python cli.py generate-pages --prd-id REQ-2026-001 --output ./frontend/src/pages

# 生成单个页面
python cli.py generate-page --page-name "用户登录" --wireframe-id WF-001 --output ./frontend/src/pages/Login

# 生成页面路由配置
python cli.py generate-routes --pages-dir ./frontend/src/pages --output ./frontend/src/router

6.3.3 组件生成

# 生成可复用组件
python cli.py generate-components --page-files ./frontend/src/pages/*.tsx --output ./frontend/src/components

# 生成表单组件
python cli.py generate-form-component --schema "UserForm" --fields "username,password,email" --output ./frontend/src/components

# 生成交互逻辑
python cli.py implement-interactions --component-file ./frontend/src/components/UserForm.tsx --interactions "表单验证,提交处理,错误提示"

6.3.4 API 对接

# 自动生成 API 调用服务
python cli.py generate-api-services --api-file output/api/openapi.yaml --output ./frontend/src/services

# 在页面中集成 API 调用
python cli.py integrate-api-calls --page-file ./frontend/src/pages/UserList.tsx --api-service ./frontend/src/services/userService.ts

6.4 人机协同模式

6.4.1 人工介入点配置

# 配置需要人工审核的节点
cat > config/human_in_the_loop.yaml << EOF
human_review_points:
  - stage: prd_approval
    reviewers: ["product_manager"]
    mandatory: true
  
  - stage: tech_design_review
    reviewers: ["architect", "tech_lead"]
    mandatory: true
  
  - stage: api_design_approval
    reviewers: ["backend_lead", "frontend_lead"]
    mandatory: true
  
  - stage: code_review
    reviewers: ["senior_developer"]
    mandatory: true
    min_approvals: 2
  
  - stage: security_audit
    reviewers: ["security_expert"]
    mandatory: false
    threshold: "high_risk"
EOF

6.4.2 交互式代码开发

# 启动交互式开发模式
python cli.py interactive-coding --file ./backend/src/main/java/service/OrderService.java

# 开发者可以:
# 1. 描述需要实现的功能
# 2. AI 生成代码建议
# 3. 开发者选择接受/修改/拒绝
# 4. 迭代优化直到满意

6.4.3 代码解释与学习

# 让 AI 解释某段代码
python cli.py explain-code --file ./backend/src/main/java/service/PaymentService.java --line-range 45-89

# 询问如何改进
python cli.py suggest-improvements --file ./backend/src/main/java/controller/UserController.java --focus "performance,security"

# 生成代码注释
python cli.py generate-docstrings --file ./backend/src/main/java/service/*.java --style javadoc

6.5 代码质量保证

⚠️ 重要提醒 AI 生成的代码必须经过人工审查,特别是涉及安全、金融、隐私等敏感逻辑的代码。 切勿完全依赖 AI 而不进行人工审核。

测试自动化模块

7.1 模块概述

测试工程师 Agent 负责全流程的测试自动化,包括单元测试、集成测试和 UI 自动化测试。 系统采用测试驱动开发 (TDD) 理念,确保代码质量。

7.2 单元测试 (Unit Test)

7.2.1 自动生成单元测试

# 为后端代码生成单元测试
python cli.py generate-unit-tests \
  --source-dir ./backend/src/main/java \
  --test-framework junit5 \
  --mock-framework mockito \
  --output ./backend/src/test/java

# 为前端代码生成单元测试
python cli.py generate-unit-tests \
  --source-dir ./frontend/src \
  --test-framework jest \
  --output ./frontend/src/__tests__

7.2.2 测试覆盖率分析

# 运行单元测试并生成覆盖率报告
python cli.py run-unit-tests --project-dir ./backend --coverage-report html

# 查看覆盖率报告
python cli.py view-coverage-report --report-id COV-2026-001

# 覆盖率阈值检查
python cli.py check-coverage-threshold --min-line-coverage 80 --min-branch-coverage 70

7.2.3 测试用例优化

# 识别冗余测试用例
python cli.py analyze-test-redundancy --test-dir ./backend/src/test/java

# 补充边界测试用例
python cli.py add-boundary-tests --source-file ./backend/src/main/java/service/DiscountCalculator.java

# 生成属性基测试 (Property-based Testing)
python cli.py generate-property-tests --source-file ./backend/src/main/java/util/PriceCalculator.java

7.3 集成测试 (Integration Test)

7.3.1 API 集成测试

# 生成 API 集成测试
python cli.py generate-integration-tests \
  --api-file output/api/openapi.yaml \
  --test-framework rest-assured \
  --output ./backend/src/test/java/integration

# 运行集成测试(需要启动测试数据库)
python cli.py run-integration-tests --env test --profile integration

7.3.2 服务间集成测试

# 配置 Testcontainers 进行容器化集成测试
python cli.py setup-testcontainers \
  --dependencies "mysql,redis,rabbitmq" \
  --config-file ./backend/src/test/resources/testcontainers.properties

# 运行微服务集成测试
python cli.py run-microservice-tests --compose-file docker-compose.test.yml

7.3.3 契约测试 (Contract Testing)

# 使用 Pact 进行消费者驱动的契约测试
python cli.py generate-pact-contracts \
  --consumer frontend \
  --provider backend \
  --api-file output/api/openapi.yaml \
  --output ./pacts

# 验证契约兼容性
python cli.py verify-pact-contracts --pact-dir ./pacts --broker-url https://pact-broker.example.com

7.4 UI 自动化测试

7.4.1 测试脚本生成

# 基于页面生成 UI 测试脚本
python cli.py generate-ui-tests \
  --pages-dir ./frontend/src/pages \
  --test-framework cypress \
  --output ./e2e/cypress/e2e

# 或使用 Playwright
python cli.py generate-ui-tests \
  --pages-dir ./frontend/src/pages \
  --test-framework playwright \
  --output ./e2e/playwright/tests

7.4.2 端到端测试场景

# 生成典型用户旅程测试
python cli.py generate-user-journey-tests \
  --user-stories ./prd/user_stories.json \
  --output ./e2e/cypress/e2e/journeys

# 示例测试场景:
# - 用户注册 → 登录 → 浏览商品 → 加入购物车 → 下单 → 支付
# - 管理员登录 → 商品管理 → 上架商品 → 查看订单 → 发货

7.4.3 视觉回归测试

# 配置视觉回归测试
python cli.py setup-visual-testing \
  --baseline-dir ./e2e/visual/baseline \
  --threshold 0.05

# 运行视觉回归测试
python cli.py run-visual-tests --compare-dir ./e2e/visual/current

7.4.4 跨浏览器测试

# 配置多浏览器测试
python cli.py configure-cross-browser-tests \
  --browsers "chrome,firefox,safari,edge" \
  --platforms "windows,macos,linux"

# 在 BrowserStack 上运行测试
python cli.py run-on-browserstack \
  --test-suite ./e2e/cypress/e2e \
  --credentials-file ~/.browserstack/config.json

7.5 测试执行与报告

7.5.1 测试执行策略

# 全量测试
python cli.py run-all-tests --parallel --max-workers 8

# 增量测试(只测试变更影响的范围)
python cli.py run-impact-tests --commit-hash abc123def

# 冒烟测试
python cli.py run-smoke-tests --critical-only

# 夜间回归测试
python cli.py schedule-nightly-regression --time "02:00" --timezone "Asia/Shanghai"

7.5.2 测试报告生成

# 生成综合测试报告
python cli.py generate-test-report \
  --unit-results ./reports/unit \
  --integration-results ./reports/integration \
  --e2e-results ./reports/e2e \
  --output-format html \
  --output-file reports/test_summary.html

# 发送到指定邮箱
python cli.py send-test-report --report-file reports/test_summary.html --recipients "team@example.com"

7.5.3 缺陷自动提单

# 配置缺陷自动提单
python cli.py configure-defect-auto-filing \
  --jira-url https://jira.example.com \
  --project-key MALL \
  --auto-create true \
  --severity-threshold high

# 失败测试自动创建 JIRA 问题
# 系统会根据测试失败信息自动生成缺陷工单并指派给相应开发人员
💡 测试金字塔原则 遵循测试金字塔:大量单元测试 + 适量集成测试 + 少量 E2E 测试。 这样可以保证测试速度快、稳定性高、维护成本低。

CI/CD 与自动部署模块

8.1 模块概述

DevOps 工程师 Agent 负责配置和维护持续集成/持续部署流水线,实现从代码提交到生产部署的全自动化。 系统支持 Jenkins + Docker + Kubernetes (KubeSphere) 的云原生部署方案。

8.2 Jenkins 流水线配置

8.2.1 自动生成 Jenkinsfile

# 生成后端 Jenkins 流水线
python cli.py generate-jenkinsfile \
  --project-type backend \
  --build-tool maven \
  --test-frameworks "junit5,integration-test" \
  --deploy-target kubernetes \
  --output ./backend/Jenkinsfile

# 生成前端 Jenkins 流水线
python cli.py generate-jenkinsfile \
  --project-type frontend \
  --build-tool npm \
  --test-frameworks "jest,cypress" \
  --deploy-target cdn \
  --output ./frontend/Jenkinsfile

8.2.2 Jenkinsfile 示例

pipeline {
    agent {
        kubernetes {
            yaml '''
                apiVersion: v1
                kind: Pod
                spec:
                  containers:
                  - name: maven
                    image: maven:3.9-eclipse-temurin-17
                    command:
                    - cat
                    tty: true
                  - name: docker
                    image: docker:24-dind
                    securityContext:
                      privileged: true
            '''
        }
    }

    environment {
        REGISTRY = 'registry.example.com'
        IMAGE_NAME = 'mall-backend'
        KUBECONFIG = credentials('kubeconfig')
    }

    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }

        stage('Code Quality') {
            steps {
                sh 'mvn -B sonar:sonar -Dsonar.projectKey=mall-backend'
            }
        }

        stage('Unit Test') {
            steps {
                sh 'mvn -B test'
            }
            post {
                always {
                    junit 'target/surefire-reports/*.xml'
                }
            }
        }

        stage('Integration Test') {
            steps {
                sh 'mvn -B verify -Pintegration-test'
            }
        }

        stage('Build Docker Image') {
            steps {
                script {
                    docker.build("${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER}")
                }
            }
        }

        stage('Push Image') {
            steps {
                script {
                    docker.withRegistry("https://${REGISTRY}", 'docker-credentials') {
                        docker.image("${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER}").push()
                        docker.image("${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER}").push('latest')
                    }
                }
            }
        }

        stage('Deploy to Dev') {
            when {
                branch 'develop'
            }
            steps {
                sh '''
                    kubectl set image deployment/mall-backend \
                    backend=${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER} \
                    -n mall-dev
                '''
            }
        }

        stage('Deploy to Staging') {
            when {
                branch 'release/*'
            }
            steps {
                input message: 'Deploy to staging?', ok: 'Deploy'
                sh '''
                    kubectl set image deployment/mall-backend \
                    backend=${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER} \
                    -n mall-staging
                '''
            }
        }

        stage('Deploy to Production') {
            when {
                branch 'main'
            }
            steps {
                input message: 'Deploy to production?', ok: 'Deploy'
                sh '''
                    kubectl set image deployment/mall-backend \
                    backend=${REGISTRY}/${IMAGE_NAME}:${BUILD_NUMBER} \
                    -n mall-prod
                '''
            }
        }
    }

    post {
        always {
            cleanWs()
        }
        success {
            echo 'Deployment successful!'
        }
        failure {
            echo 'Deployment failed! Check logs for details.'
        }
    }
}

8.2.3 配置 Jenkins 任务

# 自动在 Jenkins 中创建任务
python cli.py create-jenkins-job \
  --job-name mall-backend-ci \
  --jenkinsfile ./backend/Jenkinsfile \
  --repo-url https://github.com/example/mall-backend \
  --branch-specifier "*/main,*/develop,*/release/*" \
  --webhook-secret-file ~/.jenkins/webhook-secret

# 配置 Webhook 自动触发
python cli.py setup-github-webhook \
  --repo example/mall-backend \
  --jenkins-url https://jenkins.example.com \
  --events "push,pull_request"

8.3 Docker 容器化

8.3.1 自动生成 Dockerfile

# 生成后端 Dockerfile(多阶段构建)
python cli.py generate-dockerfile \
  --project-type spring-boot \
  --jdk-version 17 \
  --optimize-size true \
  --output ./backend/Dockerfile

# 生成前端 Dockerfile
python cli.py generate-dockerfile \
  --project-type react \
  --node-version 20 \
  --use-nginx true \
  --output ./frontend/Dockerfile

8.3.2 Dockerfile 示例(后端)

# 构建阶段
FROM maven:3.9-eclipse-temurin-17 AS builder
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn -B package -DskipTests

# 运行阶段
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY --from=builder /app/target/*.jar app.jar

# JVM 优化参数
ENV JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"

# 健康检查
HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \
  CMD wget -qO- http://localhost:8080/actuator/health || exit 1

EXPOSE 8080
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]

8.3.3 Docker Compose 配置

# 生成本地开发环境的 Docker Compose
python cli.py generate-docker-compose \
  --services "backend,frontend,mysql,redis,rabbitmq" \
  --network mall-network \
  --output docker-compose.dev.yml

# 生成测试环境的 Docker Compose
python cli.py generate-docker-compose \
  --services "backend,mysql,redis" \
  --profiles test \
  --output docker-compose.test.yml

8.3.4 本地开发环境一键启动

# 启动完整开发环境
python cli.py start-dev-environment --compose-file docker-compose.dev.yml

# 仅启动依赖服务(数据库、缓存等)
python cli.py start-dependencies --services "mysql,redis,rabbitmq"

# 停止并清理
python cli.py stop-dev-environment --volumes

8.4 Kubernetes 部署

8.4.1 生成 K8s 资源配置

# 生成 Kubernetes 部署配置
python cli.py generate-k8s-manifests \
  --app-name mall-backend \
  --image registry.example.com/mall-backend:latest \
  --replicas 3 \
  --cpu-request 500m --cpu-limit 2000m \
  --memory-request 512Mi --memory-limit 2Gi \
  --port 8080 \
  --output ./k8s/backend/

# 生成的文件:
# - deployment.yaml
# - service.yaml
# - configmap.yaml
# - secret.yaml
# - hpa.yaml (Horizontal Pod Autoscaler)
# - ingress.yaml

8.4.2 Deployment 配置示例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mall-backend
  namespace: mall-prod
  labels:
    app: mall-backend
    version: v1.0.0
spec:
  replicas: 3
  selector:
    matchLabels:
      app: mall-backend
  template:
    metadata:
      labels:
        app: mall-backend
        version: v1.0.0
      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "8080"
    spec:
      containers:
      - name: backend
        image: registry.example.com/mall-backend:1.0.0
        ports:
        - containerPort: 8080
          name: http
        env:
        - name: SPRING_PROFILES_ACTIVE
          value: "prod"
        - name: DB_HOST
          valueFrom:
            configMapKeyRef:
              name: mall-config
              key: db.host
        - name: DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mall-secret
              key: db.password
        resources:
          requests:
            cpu: 500m
            memory: 512Mi
          limits:
            cpu: 2000m
            memory: 2Gi
        livenessProbe:
          httpGet:
            path: /actuator/health/liveness
            port: 8080
          initialDelaySeconds: 60
          periodSeconds: 10
        readinessProbe:
          httpGet:
            path: /actuator/health/readiness
            port: 8080
          initialDelaySeconds: 30
          periodSeconds: 5
        volumeMounts:
        - name: logs
          mountPath: /app/logs
      volumes:
      - name: logs
        emptyDir: {}
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchLabels:
                  app: mall-backend
              topologyKey: kubernetes.io/hostname

8.4.3 使用 KubeSphere 进行部署

# 连接到 KubeSphere 集群
python cli.py connect-kubesphere \
  --server https://kubesphere.example.com \
  --token ${KS_TOKEN} \
  --workspace mall-workspace

# 创建应用
python cli.py create-kubesphere-app \
  --app-name mall-backend \
  --image registry.example.com/mall-backend:1.0.0 \
  --replicas 3 \
  --cpu 2 --memory 2Gi \
  --service-type ClusterIP \
  --enable-monitoring true

# 查看部署状态
python cli.py get-deployment-status --app mall-backend --namespace mall-prod

# 滚动更新
python cli.py rolling-update \
  --app mall-backend \
  --new-image registry.example.com/mall-backend:1.1.0 \
  --max-surge 1 \
  --max-unavailable 0

# 回滚到上一版本
python cli.py rollback-deployment --app mall-backend --to-revision 5

8.4.4 配置 HPA 自动扩缩容

# 生成 HPA 配置
python cli.py generate-hpa \
  --deployment mall-backend \
  --min-replicas 3 \
  --max-replicas 10 \
  --cpu-threshold 70 \
  --memory-threshold 80 \
  --output ./k8s/backend/hpa.yaml

# 应用 HPA
kubectl apply -f ./k8s/backend/hpa.yaml -n mall-prod

8.4.5 配置 Ingress 和 TLS

# 生成 Ingress 配置
python cli.py generate-ingress \
  --app-name mall-backend \
  --host api.mall.example.com \
  --tls-secret mall-tls-cert \
  --rate-limit 1000 \
  --output ./k8s/backend/ingress.yaml

# 申请 Let's Encrypt 证书
python cli.py request-letsencrypt-cert \
  --domains "api.mall.example.com,www.mall.example.com" \
  --email admin@mall.example.com \
  --output ./certs/

8.5 监控与日志

8.5.1 集成 Prometheus + Grafana

# 部署 Prometheus 监控
python cli.py deploy-prometheus-monitoring \
  --namespace monitoring \
  --scrape-targets "mall-backend,mall-frontend" \
  --retention 15d

# 导入 Grafana 仪表盘
python cli.py import-grafana-dashboard \
  --dashboard-id spring-boot-statistics \
  --datasource prometheus \
  --folder mall-monitoring

8.5.2 配置日志收集 (ELK Stack)

# 部署 Filebeat 收集日志
python cli.py deploy-filebeat \
  --log-source "/var/log/containers/mall-*.log" \
  --elasticsearch-host elasticsearch.logging.svc \
  --index-pattern mall-logs

# 创建 Kibana 可视化
python cli.py create-kibana-visualization \
  --index-pattern mall-logs-* \
  --dashboard-name "Mall System Logs"

8.5.3 配置告警规则

# 生成 Prometheus AlertManager 规则
python cli.py generate-alert-rules \
  --alerts "high_cpu_usage,high_memory_usage,pod_crash_loop,error_rate_high" \
  --notification-channel "slack,email" \
  --output ./k8s/monitoring/alerts.yaml

# 示例告警规则:
# - CPU 使用率 > 80% 持续 5 分钟
# - 内存使用率 > 85% 持续 5 分钟
# - Pod 重启次数 > 3 次/小时
# - HTTP 5xx 错误率 > 1%
🎯 部署策略建议 生产环境建议使用蓝绿部署或金丝雀发布策略,降低发布风险。 系统支持自动化的灰度发布流量切分。

全流程实战案例演示

9.1 案例背景

本节通过一个完整的实战案例,演示如何使用本系统从零开始构建一个在线商城系统。 案例将覆盖从需求输入到生产部署的全部流程。

9.2 案例执行步骤

步骤 1: 需求输入与分析

# 创建项目目录
mkdir -p mall-project && cd mall-project

# 输入需求
python cli.py input-requirement \
  --text "构建一个 B2C 在线商城系统,包含以下核心功能:
          1. 用户端:用户注册登录、商品浏览搜索、购物车、订单管理、在线支付、评价系统
          2. 管理端:商品管理、订单管理、用户管理、营销活动管理、数据统计
          3. 性能要求:支持 10000 并发用户,页面响应时间<2 秒
          4. 安全要求:HTTPS 加密、支付安全、防 SQL 注入、XSS 防护" \
  --project-name online-mall \
  --priority high

# 查看生成的澄清问题
python cli.py get-clarification-questions --project online-mall

# 回答澄清问题
python cli.py answer-questions \
  --project online-mall \
  --answers '{
    "payment_methods": ["wechat_pay", "alipay", "union_pay"],
    "membership_system": true,
    "product_categories_depth": 3,
    "review_system": true,
    "expected_concurrent_users": 10000
  }'

步骤 2: 生成 PRD 文档

# 生成 PRD
python cli.py generate-prd --project online-mall --template detailed

# 查看 PRD 文档
python cli.py view-document --type prd --project online-mall --browser

# 提交审核
python cli.py submit-for-review --doc-type prd --project online-mall --reviewers "产品总监,业务方"

# 模拟审核通过
python cli.py approve-doc --doc-type prd --project online-mall --reviewer "产品总监"

步骤 3: 技术方案设计

# 生成后端架构设计(微服务架构)
python cli.py design-backend-architecture \
  --project online-mall \
  --style microservices \
  --services "user-service,product-service,order-service,payment-service,cart-service"

# 生成数据库设计
python cli.py design-database \
  --project online-mall \
  --db-type mysql \
  --generate-erd true

# 生成前端架构设计
python cli.py design-frontend-architecture \
  --project online-mall \
  --framework react \
  --ui-library ant-design \
  --state-management redux

# 查看技术方案文档
python cli.py view-document --type tech-design --project online-mall

步骤 4: API 接口设计

# 生成 API 初稿
python cli.py generate-api-draft --project online-mall

# 完善并定稿 API
python cli.py refine-api --draft-file output/api/online-mall-draft.yaml --interactive

# 启动 Mock 服务供前端开发
python cli.py start-mock-server \
  --api-file output/api/online-mall.yaml \
  --port 8080 \
  --background

# 生成前端 API 客户端
python cli.py generate-client-sdk \
  --api-file output/api/online-mall.yaml \
  --language typescript \
  --output ./frontend/src/api

步骤 5: 代码生成

# 初始化后端项目
python cli.py init-backend-project \
  --project online-mall \
  --tech-stack spring-boot \
  --package com.mall \
  --output ./backend

# 批量生成后端代码
cd backend
python cli.py generate-entities --api-file ../output/api/online-mall.yaml
python cli.py generate-repositories --entities-dir src/main/java/com/mall/entity
python cli.py generate-services --api-file ../output/api/online-mall.yaml
python cli.py generate-controllers --api-file ../output/api/online-mall.yaml
python cli.py generate-mapper-xml --entities-dir src/main/java/com/mall/entity

# 初始化前端项目
cd ../frontend
python cli.py init-frontend-project \
  --project online-mall \
  --framework react \
  --template ant-design-pro

# 生成页面和组件
python cli.py generate-pages --project online-mall
python cli.py generate-components --pages-dir src/pages
python cli.py generate-api-services --api-file ../output/api/online-mall.yaml

# 代码审查
cd ../backend
python cli.py code-review --project-dir . --ruleset standard

步骤 6: 测试自动化

# 生成并运行单元测试
python cli.py generate-unit-tests --source-dir src/main/java
python cli.py run-unit-tests --coverage-report html

# 生成并运行集成测试
python cli.py generate-integration-tests --api-file ../output/api/online-mall.yaml
python cli.py run-integration-tests --env test

# 生成并运行 UI 自动化测试
cd ../frontend
python cli.py generate-ui-tests --pages-dir src/pages --test-framework cypress
python cli.py run-ui-tests --headless --browser chrome

# 生成综合测试报告
python cli.py generate-test-report \
  --unit-results backend/target/site/jacoco \
  --integration-results backend/target/failsafe-reports \
  --e2e-results frontend/cypress/reports \
  --output-file reports/test_report.html

步骤 7: CI/CD 配置与部署

# 生成 Dockerfile
python cli.py generate-dockerfile --project online-mall --optimize-size true

# 生成 Kubernetes 配置
python cli.py generate-k8s-manifests \
  --app-name mall-backend \
  --replicas 3 \
  --cpu 2 --memory 2Gi \
  --output ./k8s

# 生成 Jenkins 流水线
python cli.py generate-jenkinsfile \
  --project-type backend \
  --deploy-target kubernetes

# 推送到 Git 仓库
git init
git add .
git commit -m "Initial commit from AI automation system"
git remote add origin https://github.com/example/online-mall.git
git push -u origin main

# 触发 Jenkins 构建(通过 Git Webhook 自动触发)
# 或者手动触发
python cli.py trigger-jenkins-build --job-name online-mall-ci

# 查看部署状态
python cli.py get-deployment-status --app mall-backend --namespace mall-prod

# 访问部署的应用
echo "应用已部署到:https://api.mall.example.com"
echo "前端页面:https://www.mall.example.com"

9.3 全流程时间线

阶段 任务 预计耗时 人工介入
需求分析 需求澄清、PRD 生成 30 分钟 需求确认、PRD 审核
技术设计 架构设计、数据库设计 20 分钟 技术方案评审
API 设计 接口定义、Mock 服务 15 分钟 API 评审
代码生成 前后端代码生成 40 分钟 代码审查
测试 单元/集成/UI 测试 30 分钟 缺陷修复确认
部署 CI/CD、K8s 部署 15 分钟 发布审批
总计 端到端全流程 约 2.5 小时 5 个审核点
🎉 成果对比 传统开发模式:2-3 周(10 人团队)
AI 自动化模式:2.5 小时(2-3 人审核)
效率提升:约 50-80 倍

附录:常见问题与最佳实践

A. 常见问题 FAQ

Q1: AI 生成的代码质量如何保证? A: 系统采用多层质量保障机制:
  • 静态代码分析(SonarQube)
  • 自动化代码审查
  • 强制单元测试覆盖率要求(≥80%)
  • 人工代码审查(至少 2 人批准)
  • 安全漏洞扫描
Q2: 如何处理复杂业务逻辑? A: 对于复杂业务逻辑,建议采用人机协同模式:
  • AI 生成基础框架和 CRUD 代码
  • 开发人员专注于核心业务逻辑实现
  • 使用交互式编码模式,AI 提供实时建议
  • 利用 AI 的代码解释功能理解遗留代码
Q3: 系统支持哪些编程语言和框架? A: 当前支持:
  • 后端:Java (Spring Boot), Python (FastAPI/Django), Node.js (NestJS), Go (Gin)
  • 前端:React, Vue, Angular, Svelte
  • 移动端:React Native, Flutter(Beta)
  • 未来将支持更多语言和技术栈
Q4: 如何保证 AI 不会引入安全漏洞? A: 多层次安全防护:
  • OWASP Top 10 漏洞自动检测
  • 依赖包安全扫描(Snyk/Dependabot)
  • 安全编码规范强制执行
  • 渗透测试自动化
  • 安全专家人工审计(高危系统)
Q5: 系统能否处理大型项目? A: 支持,但建议:
  • 采用微服务架构拆分大项目
  • 分批次生成代码,避免上下文超限
  • 使用增量式开发和部署
  • 建立代码复用机制和组件库

B. 最佳实践

B.1 需求阶段

B.2 设计阶段

B.3 开发阶段

B.4 测试阶段

B.5 部署阶段

C. 配置参考

C.1 系统配置文件模板

# config/system_config.yaml
system:
  ai_provider: claude-code
  model: claude-3-5-sonnet
  max_tokens: 4096
  temperature: 0.7

workflow:
  auto_proceed: false  # 是否自动进入下一阶段
  require_human_approval: true  # 关键节点是否需要人工审批
  parallel_agents: true  # 是否并行执行 Agents

quality_gates:
  min_unit_test_coverage: 80
  min_integration_test_coverage: 70
  max_code_smells: 50
  max_security_vulnerabilities: 0
  require_code_review_approvals: 2

deployment:
  default_namespace: mall-prod
  enable_auto_scaling: true
  min_replicas: 3
  max_replicas: 10
  rollback_on_failure: true

monitoring:
  enable_prometheus: true
  enable_grafana: true
  enable_elk: true
  alert_channels:
    - type: slack
      webhook: ${SLACK_WEBHOOK}
    - type: email
      recipients: ["devops@example.com"]

C.2 环境变量配置

# .env 文件
# AI 服务配置
CLAUDE_API_KEY=your_claude_api_key
CLAUDE_API_BASE_URL=https://api.anthropic.com

# 数据库配置
DB_HOST=localhost
DB_PORT=3306
DB_NAME=mall_db
DB_USER=mall_user
DB_PASSWORD=secure_password

# Redis 配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=redis_password

# Jenkins 配置
JENKINS_URL=https://jenkins.example.com
JENKINS_USER=admin
JENKINS_TOKEN=your_jenkins_token

# Kubernetes 配置
KUBECONFIG_PATH=~/.kube/config
KUBERNETES_NAMESPACE=mall-prod

# 镜像仓库配置
DOCKER_REGISTRY=registry.example.com
DOCKER_USER=docker_user
DOCKER_PASSWORD=docker_password

# 监控配置
PROMETHEUS_URL=http://prometheus:9090
GRAFANA_URL=http://grafana:3000
ELASTICSEARCH_URL=http://elasticsearch:9200

D. 命令速查表

类别 命令 说明
需求管理 input-requirement 输入需求
get-clarification-questions 获取澄清问题
answer-questions 回答问题
generate-prd 生成 PRD
技术设计 design-backend-architecture 后端架构设计
design-database 数据库设计
design-frontend-architecture 前端架构设计
API 设计 generate-api-draft 生成 API 初稿
refine-api 完善 API
start-mock-server 启动 Mock 服务
代码生成 init-backend-project 初始化后端项目
init-frontend-project 初始化前端项目
generate-entities 生成实体类
generate-services 生成服务层
generate-controllers 生成控制器
测试 generate-unit-tests 生成单元测试
run-unit-tests 运行单元测试
generate-ui-tests 生成 UI 测试
run-ui-tests 运行 UI 测试
部署 generate-dockerfile 生成 Dockerfile
generate-k8s-manifests 生成 K8s 配置
generate-jenkinsfile 生成 Jenkins 流水线
trigger-jenkins-build 触发构建

E. 资源链接