App Maker 是一个基于 Go + Vue.js 的多Agent协作开发平台,通过标准化的Agent协作流程,自动生成APP和网站项目的完整代码。核心理念是"想法即应用",让用户通过简单的需求描述快速获得完整的应用程序。
- 产品经理: 需要快速验证产品想法的专业人士
- 创业者: 希望快速构建MVP的初创团队
- 设计师: 需要将设计转化为可交互产品的创意人员
- 非技术背景用户: 有想法但缺乏技术实现能力的个人
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 前端应用 │ │ 后端服务 │ │ Agent服务 │
│ (Vue.js 3) │◄──►│ (Go + Gin) │◄──►│ (Go + Gin) │
│ │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 用户 界面 │ │ 数据存储 │ │ 外部工具 │
│ Naive UI │ │ PostgreSQL │ │ Claude CLI │
│ TypeScript │ │ Redis │ │ Ollama AI │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- Frontend: Vue.js 3 + TypeScript + Naive UI + Pinia
- Backend: Go + Gin + GORM + PostgreSQL + Asynq + Redis
- Agents Service: Go + Gin + Asynq + Redis
- Shared Models: Go模块,共享数据模型和客户端
- 部署: GitLab CI/CD + Group Runners
| Agent | 中文名 | 英文名 | 职责 |
|---|---|---|---|
| Analyst | 需求分析师 | Mary | 分析项目需求,生成项目简介和市场研究 |
| PM | 产品经理 | John | 编写产品需求文档(PRD) |
| UX Expert | UX专家 | Sally | 设计用户体验标准和界面规范 |
| Architect | 架构师 | Winston | 设计系统\前端\后端技术架构,输出API、数据库设计文档 |
| PO | 产品负责人 | Sarah | 划分Epic和用户故事,任务分解和优先级管理 |
| Dev | 开发工程师 | James | 实现用户故事、修复Bug、测试、部署 |
用户需求输入 → PM Agent → UX Agent → Architect Agent → PO Agent → Dev Agent → 完整项目
↓ ↓ ↓ ↓ ↓ ↓
需求澄清 PRD文档 UX规范 架构/前后端设计 Epics/Stories 源代码+测试
- 框架: Vue.js 3 + Composition API
- 构建工具: Vite
- UI组件库: Naive UI
- 状态管理: Pinia
- 路由: Vue Router 4
- HTTP客户端: Axios
- 语言: TypeScript
- 语言: Go 1.21+
- Web框架: Gin
- ORM: GORM
- 验证: validator
- 配置管理: Viper
- 日志: Zap
- 任务队列: Asynq + Redis
- 语言: Go 1.24+
- Web框架: Gin
- 任务队列: Asynq + Redis
- HTTP客户端: Axios (通过cursor.cli调用)
- 日志: Zap
- 依赖注入: Container模式
- 主数据库: PostgreSQL 15+
- 缓存数据库: Redis 7+
- 连接池: pgxpool
- Redis客户端: go-redis
- CI/CD: GitLab CI/CD + Group Runners
- 容器化: Docker + Docker Compose
- 数据库: PostgreSQL + Redis
- 代理: Traefik
- 操作系统: Windows 10/11 (开发环境,8G+显存、16G+内存)
- Docker Desktop: >= 28.4+
- Claude Code: >= 2.0.11 (Agents)
- Qwen Code: >= 0.0.14 (Agents)
- Gemini: >= 0.8.2 (Agents)
- Go: >= 1.24 (Backend & Agents)
- Node.js: >= 18.0.0 (Frontend)
- 环境变量 重命名 .env.example 为 .env 修改 your-xxx 为实际的环境配置(密码自定)
- gitlab管理员 启动容器后在 http://gitlab.app-maker.localhost/ 注册 GITLAB_USERNAME 和 GITLAB_EMAIL 对应的管理员账号、邮箱
# 1. 启动本地 ollama
ollama pull deepseek-r1:14b
ollama serve
# 2. 启动前后端、数据库、redis、gitlab容器
make build-dev-docker
make run-dev-docker
# 3. gitlab 配置
## 3.1 gitlab 获取初始 root 密码
docker-compose exec gitlab cat /etc/gitlab/initial_root_password
## 3.2 gitlab 批准用户注册、修改为管理员
# root 账号登陆 http://gitlab.app-maker.localhost/
# 批准管理员账号的注册、http://gitlab.app-maker.localhost/admin/users 页面编辑为管理员账号
## 3.3 管理员用户创建 app-maker 群组
# 管理员账号登录后,创建 app-maker 群组
# http://gitlab.app-maker.localhost/groups/new
## 3.4 gitlab 管理员配置 ssh-key
# 拷贝 run-dev执行过程中输出的: ssh-rsa 开头,gmail.com 结尾的字符串,粘贴到
# http://gitlab.app-maker.localhost/-/user_settings/ssh_keys 添加新密钥的输入框中
## 3.5 主机配置 git 账号密码
# 主机上通过 git clone 获取 http://gitlab.app-maker.localhost/ 上新建的空代码仓库,输入用户名密码
# 4. 启动Agents服务
cd agents
go mod tidy
go run cmd/server/main.go- 前端应用: http://app-maker.localhost
- 后端API: http://api.app-maker.localhost/swagger/index.html
- Gitlab CE: http://gitlab.app-maker.localhost/
- Agents服务: http://localhost:8088/swagger/index.html
app-maker/
├── frontend/ # Vue.js前端应用
│ ├── src/
│ │ ├── components/ # 组件
│ │ ├── pages/ # 页面
│ │ ├── stores/ # Pinia状态管理
│ │ ├── router/ # 路由配置
│ │ ├── utils/ # 工具函数
│ │ └── types/ # TypeScript类型定义
│ └── package.json
├── backend/ # Go后端服务
│ ├── internal/
│ │ ├── api/ # API处理器
│ │ ├── services/ # 业务逻辑
│ │ ├── models/ # 数据模型
│ │ ├── repositories/ # 数据访问层
│ │ ├── config/ # 配置管理
│ │ └── container/ # 依赖注入容器
│ └── go.mod
├── agents/ # Go Agents服务
│ ├── internal/
│ │ ├── api/ # API处理器
│ │ ├── services/ # Agent核心服务
│ │ ├── config/ # 配置管理
│ │ └── container/ # 依赖注入容器
│ └── go.mod
├── shared-models/ # Go共享模型模块
│ ├── agent/ # Agent相关类型
│ ├── common/ # 通用类型和常量
│ ├── client/ # HTTP客户端
│ ├── auth/ # JWT认证
│ ├── tasks/ # 任务模型
│ └── go.mod
└── LICENSE # 许可证
- 通过PM Agent的交互式问题澄清用户需求
- 智能需求澄清问题生成
- 多轮需求确认和优化
- 自动生成功能清单和技术架构建议
- 标准化的文档传递流程
- 自动化的Agent任务调度
- 实时的协作状态监控
- 智能任务分配和负载均衡
- 自动文档版本管理
- 文档关联关系追踪
- 项目信息统一存储
- 文档模板和标准化
- 框架搭建:前后端框架自动搭建
- 需求实现:根据Stories进行编码实现
- 问题调试:自动错误检测和修复
- 部署打包:自动构建和部署
- 自动测试:集成测试和回归测试
- 前端轮询任务状态
- 实时进度更新
- 任务完成通知
- 错误状态反馈
- 本地化部署: 支持Windows本地运行,无需云端依赖
- GPU加速: 支持NVIDIA GPU加速AI模型推理
- 文件系统访问: 直接访问主机文件系统,支持项目文件操作
- 容器化: 核心服务容器化,Agent服务本地运行
- 微服务架构: 前后端分离,Agent服务独立
- 事件驱动: 基于消息队列的异步处理机制
- 无状态设计: 支持水平扩展和负载均衡
- API优先: RESTful API设计,支持多种客户端
- JWT认证: 无状态认证,支持分布式部署
- 权限控制: 基于用户的项目访问控制
- 输入验证: 严格的参数验证和SQL注入防护
- HTTPS: 生产环境强制HTTPS
- 响应时间: 页面加载 < 2秒,API响应 < 500ms
- 并发处理: 支持1000+并发用户,100+项目并行开发
- 系统可用性: 99.9%可用性要求
- 资源限制: 内存使用 < 8GB,CPU使用 < 80%
- 水平扩展: 支持多实例部署和负载均衡
- 功能扩展: 支持新Agent角色的快速添加
- 集成能力: 标准化接口,支持第三方系统集成
- 多语言支持: 支持中英文界面和文档
- 基础架构: Go + Vue.js 架构搭建完成
- 用户系统: 注册、登录、JWT认证
- 项目管理: 项目创建、列表、删除、下载、详情
- Agents服务: Go + Gin + Asynq 异步任务处理
- 共享模块: shared-models Go模块
- 前端功能: 实时对话、文件管理、代码编辑器
- 开发阶段: 多阶段开发流程跟踪
- WebSocket: 实时状态更新和通知
- 文档系统: 完整的架构设计文档
- 部署配置: GitLab CI/CD + Group Runners
- 分阶段重试: 项目开发过程支持分阶段重试
- 前台支持文件切换编码: 前端编辑控件支持切换文件编码打开
详见当前项目的 Backlog
# 1. 启动本地 ollama
ollama pull deepseek-r1:14b
ollama serve
# 2. 数据库、redis、gitlab容器等基础服务
make start-infrastructure-services# 后端调试
cd backend
go mod tidy
go run cmd/server/main.go -c configs/config.local.yaml
# 或直接使用 VSCode、Cursor执行 Debug Backend 调试
# Agents服务调试
cd agents
go run cmd/server/main.go
# 或直接使用 VSCode、Cursor执行 Debug Agent 调试
# 前端热重载
cd frontend
pnpm dev --host# TypeScript代码检查
cd frontend
pnpm lint
pnpm type-check
# Go代码检查
go vet ./...
golangci-lint run- Go: 遵循gofmt和golint规范
- TypeScript: 使用ESLint和Prettier
- Vue: 遵循Vue 3 Composition API最佳实践
- Git: 使用Conventional Commits规范
- CLI 工具与 AI 模型配置指南 - 详细介绍如何配置不同的 CLI 工具和 AI 模型
- Antigravity Spec (AI Agent Guide) - AI Agent 开发必读
- 整体架构设计
- 后端架构设计
- 前端架构设计
- Agents架构设计
- API设计
- 数据模型设计
本项目采用 AGPLv3 许可证 - 查看 LICENSE 文件了解详情。如果您希望在不遵守AGPL条款的项目中集成本代码,需要另行购买商业许可,请联系我。
- 维护者: AI探趣星船长(抖音、小红书、B站同名)
- 邮箱: qqjack2012@gmail.com
- 项目地址: https://github.com/lighthought/app-maker
App Maker - 让每个人都能通过简单的需求描述,快速获得完整的应用程序、前后端网站