Files
aiagent/docs/virtual-team.md
renjianbo f612248f9e feat: add education-training and platform-engineering team templates
- Add 2 new team templates: 教育培训团队 (4 roles) and 天工平台工程团队 (5 roles)
- Fix orchestrator to support multi-template workflow types (remove hardcoded PM planner)
- Add _resolve_planner_role() to auto-detect planner based on team.config.workflow
- Add frontend buttons and API clients for new templates
- Merge 14 preset roles from 3 template families in get_preset_roles()
- Add creation guide and platform engineering usage docs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-17 00:09:54 +08:00

12 KiB
Raw Permalink Blame History

虚拟团队 — 软件公司协作开发

Virtual Software Company Team — 基于多 Agent 角色编排的自动化软件开发流水线


一、功能概述

虚拟团队是天工智能体平台的核心高级功能将软件公司的五大经典角色PM / 设计师 / 开发 / 测试 / DevOps映射为 AI Agent组成一个可自动协作的虚拟开发团队。用户只需输入项目描述团队即可自动完成从需求分析到部署上线的全流程并产出实际代码文件。

核心能力

能力 说明
一键创建团队 点击"软件公司模板",自动创建 5 个角色 Agent 并组建团队
PM 智能规划 项目经理 Agent 分析需求,输出包含阶段划分的 JSON 开发计划
顺序流水线执行 按 PM → Designer → Developer → QA → DevOps 顺序执行各阶段
文件产出 各 Agent 将代码、文档、配置写入指定项目目录
QA 自动审查 测试 Agent 审查全部交付物,输出缺陷报告和评分
流式进度推送 SSE 实时推送每个阶段的开始/完成状态
项目文件追溯 执行完成后展示项目文件路径和完整文件清单

二、系统架构

2.1 角色定义

┌─────────────────────────────────────────────────────────────┐
│                    虚拟软件团队 (5 Roles)                      │
├──────────┬──────────┬──────────┬──────────┬─────────────────┤
│  📋 PM   │  🎨 UI   │  💻 Dev  │  🔍 QA  │  🚀 DevOps     │
│ 项目经理 │ 设计师   │ 全栈开发 │ 测试工程 │ DevOps工程师    │
│          │          │          │          │                 │
│ 需求分析 │ 交互设计 │ 前后端   │ 审查交付 │ 部署配置        │
│ 任务分解 │ 视觉规范 │ 代码编写 │ 发现缺陷 │ CI/CD           │
│ 计划制定 │ 组件规划 │ 数据库   │ 验收标准 │ 环境管理        │
│          │          │          │          │                 │
│ Lead ✅  │          │          │          │                 │
├──────────┴──────────┴──────────┴──────────┴─────────────────┤
│  温度: 0.4    0.6        0.3        0.3        0.3          │
│  模型: v4-pro flash      v4-pro     flash      flash        │
│  迭代: 15     12         25         15         12           │
└─────────────────────────────────────────────────────────────┘

2.2 执行流程

用户输入项目描述
       │
       ▼
┌──────────────────┐
│  Phase 0: PM 规划 │  ─── 输出 JSON 执行计划4~7 个阶段)
└──────┬───────────┘
       │
       ▼
┌──────────────────┐
│  Phase 1..N      │  按角色顺序执行:
│  各阶段 Agent     │  Designer → Developer → QA → DevOps
│  写入项目文件     │  每个 Agent 接收上下文 + 项目目录路径
└──────┬───────────┘
       │
       ▼
┌──────────────────┐
│  QA 审查          │  汇总审核全部交付物,给出评分
└──────┬───────────┘
       │
       ▼
┌──────────────────┐
│  最终交付物汇总   │  项目路径 + 文件清单 + 评审报告
└──────────────────┘

三、数据模型

3.1 Team团队

字段 类型 说明
id UUID 团队唯一标识
name str 团队名称(默认"软件公司虚拟团队"
description str 团队描述
workspace_id UUID? 所属工作区
user_id UUID 创建者
is_template bool 是否为模板(模板创建时为 True
config JSON 扩展配置(角色列表等)
status str 状态active / archived

3.2 TeamMember团队成员

字段 类型 说明
id UUID 记录 ID
team_id UUID FK 所属团队
agent_id UUID FK 关联的 Agent
role str 角色标识pm / designer / developer / qa / devops
position int 排序位置
is_lead bool 是否为该角色 Leader

四、API 参考

Base: /api/v1/teams

4.1 团队 CRUD

方法 路径 说明
GET /teams 列出用户的所有团队
POST /teams 创建团队
GET /teams/{id} 获取团队详情(含成员列表)
PUT /teams/{id} 更新团队信息
DELETE /teams/{id} 删除团队

4.2 成员管理

方法 路径 说明
GET /teams/{id}/members 列出团队成员
POST /teams/{id}/members 添加成员agent_id + role
DELETE /teams/{id}/members/{mid} 移除成员

4.3 模板工厂

方法 路径 说明
POST /teams/template/software-company 一键创建软件公司模板 — 自动创建 5 个角色 Agent + 团队
GET /teams/preset-roles 获取预置角色定义(名称、图标、描述)

4.4 项目执行

方法 路径 说明
POST /teams/{id}/execute 同步执行 — 返回完整执行结果(含计划、各阶段产出、文件清单)
POST /teams/{id}/execute/stream 流式执行 — SSE 事件流,实时推送执行进度

同步执行响应结构

{
  "data": {
    "team_id": "uuid",
    "team_name": "软件公司虚拟团队",
    "project_description": "...",
    "project_path": "D:\\aaa\\aiagent\\team_projects\\{team_id}\\{project}/",
    "files": ["D:\\...\\index.html", "D:\\...\\api.py", ...],
    "plan": { "project_name": "...", "phases": [...] },
    "phases": [
      {
        "phase": 1,
        "name": "需求分析与产品定义",
        "role": "pm",
        "agent_name": "项目经理 (PM)",
        "output": "...",
        "success": true,
        "iterations": 1,
        "tool_calls": 2,
        "files": ["..."]
      }
    ],
    "qa_review": { "pass": true, "score": 85, "issues": [...] },
    "final_deliverable": "# 全部交付物汇总 ...",
    "success": true
  }
}

SSE 流式事件类型

事件类型 说明 关键字段
plan_start PM 开始规划 team_name, member_count, project_path
plan_done PM 规划完成 plan (JSON), success
phase_start 阶段开始执行 phase, name, role, agent
phase_done 阶段执行完成 output, success, iterations, tool_calls, files
qa_done QA 审查完成 output, review (JSON)
final 全部完成 deliverable, project_path, files, phase_count
error 错误 content

五、Agent 系统提示词设计

每个角色 Agent 在创建时被注入专用的系统提示词,确保执行风格符合角色定位:

PM 系统提示词要点

  • 分析需求 → 用户故事 → 阶段分解4-7 个)
  • 每个阶段指定 role + 描述 + 期望产出
  • 输出严格 JSON 格式

Designer 系统提示词要点

  • 用户流程 / 线框图 / 组件层级 / 视觉设计 tokens
  • 指定颜色、字体、间距系统
  • 输出结构化 Markdown + HTML/CSS 原型

Developer 系统提示词要点

  • 技术栈Python/FastAPI + Vue 3/TypeScript + SQLAlchemy + Element Plus
  • 使用 file_write 产出完整、可运行的代码文件
  • 包含类型标注、错误处理、输入验证

QA 系统提示词要点

  • 审查验收标准覆盖、边界情况、安全漏洞、API 契约一致性
  • 输出 JSON 评审报告pass / score / issues / overall_assessment

DevOps 系统提示词要点

  • Dockerfile + docker-compose + nginx.conf
  • .env.example + 健康检查 + 部署 README

六、前后端文件索引

后端

文件 说明
backend/app/models/team.py Team / TeamMember SQLAlchemy 模型
backend/app/api/teams.py 12 个 API 端点CRUD + 模板 + 执行)
backend/app/services/team_service.py TeamService + 模板工厂 + 5 种角色系统提示词
backend/app/services/team_orchestrator.py TeamOrchestrator 执行引擎(同步 + SSE 流式)

前端

文件 说明
frontend/src/views/TeamBuilder.vue 虚拟团队主页面(~850 行),含角色槽位、拖拽、执行结果展示
frontend/src/api/teams.ts TypeScript API 客户端(接口 + 请求函数)
frontend/src/router/index.ts /teams 路由注册
frontend/src/components/MainLayout.vue 导航栏"虚拟团队"菜单项

七、使用指南

7.1 创建虚拟团队

  1. 访问 http://localhost:3001/teams
  2. 点击 "软件公司模板" 按钮
  3. 系统自动创建 5 个角色 Agent如已有同名则复用并组建团队
  4. 5 个角色槽位自动填充对应 Agent

7.2 手动分配 Agent

  1. 左侧面板显示所有可用 Agent
  2. 拖拽 Agent 到中间对应的角色卡片上
  3. 也可从槽位中移除已分配的 Agent

7.3 执行项目

  1. 在底部输入框输入项目描述,例如:

    做一个支持用户注册登录的个人博客系统,包含文章发布、评论功能

  2. 点击 "执行项目"(同步,有 tab 页展示)或 "流式执行"(实时进度推送)

  3. 观察执行过程:

    • PM 需求分析 → 生成开发计划
    • 各阶段按角色顺序执行
    • QA 审查最终交付物
  4. 查看结果:

    • "项目计划" tabPM 的 JSON 规划
    • 各阶段 tabAgent 的产出内容Markdown 渲染)
    • "QA 审查" tab质量报告
    • "最终交付物" tab汇总的全部产出
    • "项目文件" tab保存路径 + 产出文件清单

7.4 查找交付文件

执行完成后,文件保存在:

<项目根目录>/team_projects/<team_id>/<项目名>/

页面上的"项目文件"区域会显示完整路径(可复制)和所有产出文件的列表。


八、技术要点

8.1 项目目录管理

  • 执行前在 <workspace_root>/team_projects/<team_id>/<safe_name>/ 创建目录
  • 安全命名:取项目描述前 40 字符,仅保留 ASCII 字母数字和连字符
  • 每个阶段 Agent 通过 prompt 获取该路径,file_write 工具将文件写入此目录

8.2 Agent 配置构建

_build_agent_config() 从 Agent 的 workflow_config JSON 中提取:

  • nodes[type=llm].data.prompt → 系统提示词
  • nodes[type=llm].data.model → 模型名称
  • nodes[type=llm].data.temperature → 温度参数
  • nodes[type=llm].data.selected_tools → 工具白名单
  • nodes[type=llm].data.max_iterations → 最大 ReAct 迭代次数

8.3 上下文传递

每个阶段 Agent 接收前序阶段产出的摘要(上限 2000 字符),形成渐进式上下文积累,确保后续阶段了解之前的工作。

8.4 文件追踪(双保险机制)

  1. AgentResult.steps 提取:扫描 AgentResult.steps 中的 file_write 工具调用记录
  2. 目录扫描:每个阶段后对比项目目录快照,检测新创建的文件
  3. 最终文件列表以目录扫描为准,同时合并 AgentResult 提取的路径

九、与相关功能的对比

功能 Agent 编排 虚拟团队
编排方式 可视化 DAG 画布(节点+连线) 固定角色流水线
角色定义 无(通用节点) PM/Designer/Dev/QA/DevOps 五种角色
执行模式 5 种协作模式(顺序/并行/投票/Swarm/辩论) 顺序执行
适用场景 通用多 Agent 协作 软件项目开发
文件产出 依赖节点配置 强制写入项目目录
项目路径 自动创建并返回

最后更新2026 年 6 月 16 日