---
layout: single
title:  "需求即代码：ZeroAI 让开发触手可及"
date:   2026-03-08 20:00:00 +0800
categories: [AI 与大模型, 编程开发, 开源生态]
tags: [ZeroAI, Agent, 软件开发, Tank]
---

<!-- more -->

[ZeroAI](https://github.com/wang-junjian/zeroai) 是一个通用的 AI 驱动软件开发助手，能够按照标准化的五步流程开发任意软件应用。从需求理解到代码生成，让 AI 帮你完成整个软件开发周期。

![](/images/2026/ZeroAI/home.jpeg)

![](/images/2026/ZeroAI/create-project.png)

![](/images/2026/ZeroAI/analyse.png)

![](/images/2026/ZeroAI/interface.png)

![](/images/2026/ZeroAI/database.png)

![](/images/2026/ZeroAI/logic.png)

![](/images/2026/ZeroAI/code-generate.png)

![](/images/2026/ZeroAI/my-home.jpeg)

![](/images/2026/ZeroAI/doc.jpeg)


## 特性

- 🚀 **五步开发流程**：需求分析 → 接口设计 → 数据库设计 → 业务逻辑设计 → 代码生成
- 💾 **版本管理**：完整的项目版本控制，支持创建、查看和加载历史版本
- 📝 **Word 导出**：一键导出项目文档到 Word 格式
- 🎯 **交互式审查**：每一步生成结果都可查看、审批或重新生成
- 📊 **实时日志**：完整记录 AI 开发过程中的所有操作和输出
- 🔄 **数据持久化**：使用 SQLite 数据库存储项目数据

## 技术栈

### 核心依赖
- **框架**: Next.js 16 (App Router)
- **语言**: TypeScript
- **样式**: Tailwind CSS 4
- **数据库**: Better-SQLite3
- **AI**: OpenAI API (兼容 LongCat 等第三方 API)
- **文档导出**: docx

### 测试依赖
- **测试框架**: Vitest
- **测试 UI**: Vitest UI
- **React 测试**: @testing-library/react
- **DOM 断言**: @testing-library/jest-dom
- **用户事件**: @testing-library/user-event
- **浏览器环境**: jsdom

## 快速开始

### 环境配置

1. 复制环境变量模板：
```bash
cp .env.example .env
```

2. 编辑 `.env` 文件，配置你的 AI API：
```env
OPENAI_BASE_URL=https://api.longcat.chat/openai/
OPENAI_API_KEY=your_api_key_here
OPENAI_MODEL=LongCat-Flash-Lite
TEMPERATURE=0.7
MAX_TOKENS=64000
```

### 安装依赖

```bash
npm install
```

### 启动开发服务器

```bash
npm run dev
```

打开 [http://localhost:3000](http://localhost:3000) 开始使用。

## 使用指南

### 1. 创建新项目

1. 点击"新建项目"按钮
2. 填写项目名称
3. 详细描述你的项目需求（越详细越好）
4. 点击"开始创建"

### 2. 五步开发流程

ZeroAI 会按照以下五个步骤自动进行开发：

| 步骤 | 名称 | 描述 |
|------|------|------|
| 1 | 需求理解与分析 | 分析项目需求，梳理功能点和技术要求 |
| 2 | 接口设计 | 设计 API 接口、数据结构和交互模式 |
| 3 | 数据库设计 | 设计数据库表结构和关系 |
| 4 | 业务逻辑设计 | 设计核心业务处理逻辑和流程 |
| 5 | 代码生成 | 根据前面的设计生成完整的源代码 |

### 3. 交互式操作

- **查看详情**: 点击左侧步骤列表查看每一步的详细内容
- **重新生成**: 对某一步结果不满意时可以点击"重新生成"
- **审批通过**: 确认某一步结果正确后点击"审批并继续"
- **导出文档**: 点击右上角"导出 Word"按钮导出完整项目文档

### 4. 版本管理

- **创建版本**: 在右侧版本管理区域可以创建项目快照
- **加载版本**: 点击任意历史版本可以恢复到该版本的状态
- **版本命名**: 可以为每个版本设置有意义的名称

## 项目结构

```
zeroai/
├── app/                          # Next.js App Router
│   ├── api/                      # API 路由
│   │   ├── analyze/              # 需求分析 API
│   │   ├── design/               # 设计相关 API
│   │   ├── generate/             # 代码生成 API
│   │   └── projects/             # 项目管理 API
│   ├── projects/
│   │   └── [code]/               # 项目详情页
│   │       ├── components/       # 项目详情组件
│   │       ├── hooks/            # 项目详情 Hooks
│   │       ├── types.ts          # 类型定义（导出统一类型）
│   │       ├── constants.ts      # 常量定义（导出统一常量）
│   │       ├── utils.ts          # 工具函数
│   │       └── page.tsx          # 项目详情主页面
│   ├── globals.css               # 全局样式
│   ├── layout.tsx                # 根布局
│   └── page.tsx                  # 首页（项目列表）
├── components/                   # 通用组件
│   ├── features/                 # 功能组件
│   │   ├── step-indicator.tsx    # 步骤指示器
│   │   └── info-panel.tsx        # 信息面板
│   └── ui/                       # UI 基础组件
├── lib/                          # 核心库
│   ├── ai-service.ts             # AI 服务封装
│   ├── database.ts               # 数据库初始化
│   ├── project-db.ts             # 项目数据库操作
│   └── api-utils.ts              # API 响应处理工具
├── types/                        # 项目级类型定义
│   └── index.ts                  # 统一类型管理
├── constants/                    # 项目级常量定义
│   └── project.ts                # 统一常量管理
├── public/                       # 静态资源
├── .env.example                  # 环境变量模板
├── tailwind.config.ts            # Tailwind 配置
├── tsconfig.json                 # TypeScript 配置
└── zeroai.db                     # SQLite 数据库文件（自动生成）
```

## 核心模块

### 类型管理 (`types/index.ts`)

统一管理项目的类型定义，包括：
- `Project` - 项目信息类型
- `Step` - 步骤类型
- `StepDetail` - 步骤详情类型
- `LogEntry` - 日志条目类型
- `ProjectVersion` - 项目版本类型
- `ApiResponse<T>` - API 响应格式

### 常量管理 (`constants/project.ts`)

统一管理项目的常量定义，包括：
- `STEP_NAMES` - 步骤名称数组
- `API_ENDPOINTS` - API 端点数组
- `SYSTEM_PROMPTS` - 系统提示词数组
- `FALLBACK_CONTENTS` - 备用内容数组

提供访问函数：
- `getApiEndpoint(stepNumber)` - 获取步骤对应的 API 端点
- `getStepName(stepNumber)` - 获取步骤名称
- `getSystemPrompt(stepNumber)` - 获取系统提示词
- `getFallbackContent(stepNumber, projectName)` - 获取备用内容（支持变量替换）

### API 响应处理 (`lib/api-utils.ts`)

提供通用的 API 响应处理工具：
- `successResponse(data, msg)` - 成功响应
- `errorResponse(msg, code, status)` - 错误响应
- `createApiHandler(handler)` - API 路由处理器包装器
- `validateRequest(req, requiredFields)` - 请求参数验证

## 数据库

项目使用 SQLite 数据库，包含以下表：

| 表名 | 说明 |
|------|------|
| `t_project` | 项目基本信息 |
| `t_project_step` | 项目各步骤的详细数据 |
| `t_project_version` | 项目版本快照 |
| `t_project_log` | 项目操作日志 |

## 配置说明

### 环境变量

| 变量名 | 说明 | 默认值 |
|--------|------|--------|
| `OPENAI_BASE_URL` | AI API 基础 URL | `https://api.longcat.chat/openai/` |
| `OPENAI_API_KEY` | AI API 密钥 | `NONE` |
| `OPENAI_MODEL` | AI 模型名称 | `LongCat-Flash-Lite` |
| `TEMPERATURE` | AI 温度参数 | `0.7` |
| `MAX_TOKENS` | AI 最大 Token 数 | `64000` |

## 开发

```bash
# 代码检查
npm run lint

# 构建生产版本
npm run build

# 启动生产服务器
npm start
```

## 测试

项目使用 Vitest 进行单元测试，已包含以下测试：

- `constants/project.test.ts` - 常量管理模块测试
- `types/index.test.ts` - 类型定义测试
- `lib/api-utils.test.ts` - API 工具函数测试

```bash
# 运行所有测试
npm run test

# 以开发模式运行测试（监听文件变化）
npm run test:dev

# 打开测试 UI 界面
npm run test:ui
```

## 许可证

MIT
