上一篇 下一篇 分享链接 返回 返回顶部

从需求到上线:一套能直接照搬的 AI 编程自动化工作流指南

发布人:慈云数据-客服中心 发布时间:24小时前 阅读量:4

AI编程 工作流自动化教程|附完整命令

在过去两年里,AI 编程工具的能力从“帮你补全几行代码”,快速演进到“理解需求、生成模块、编写测试、解释报错、辅助重构、生成文档、参与代码审查”。如果只是把 AI 当作一个聊天窗口使用,它当然也有价值;但真正能提升工程效率的,是把 AI 编程能力嵌入到日常开发工作流中,让它参与从需求拆解、代码生成、测试验证、提交规范到持续集成的完整流程。

本文将以一个实际开发者视角,介绍如何搭建一套可落地的 AI 编程工作流自动化体系。你可以把它用于个人项目、团队内部工具、SaaS 产品开发、数据分析项目、自动化脚本项目,甚至是企业级后端服务开发。

文章会覆盖以下内容:

  • AI 编程工作流的核心思路
  • 本地开发环境准备
  • 使用 AI 辅助需求拆解
  • 自动生成项目结构
  • 自动生成代码与测试
  • 使用命令行工具进行 AI 辅助开发
  • Git 提交流程自动化
  • 代码质量检查与格式化
  • CI/CD 自动化配置
  • 常用完整命令合集
  • 推荐的实践规范

一、为什么要做 AI 编程工作流自动化?

很多人使用 AI 编程工具时,常见方式是:

打开 ChatGPT、Claude、通义、Kimi 或 Cursor,然后复制一段需求,让 AI 生成代码,再复制到编辑器里运行。

这种方式当然可以,但存在几个问题:

  1. 上下文割裂
    AI 不知道你的项目结构、依赖版本、代码规范、测试约束。

  2. 重复操作很多
    你需要不断复制代码、粘贴错误、解释目录、描述需求。

  3. 结果不稳定
    同样的需求,不同提问方式会得到完全不同的代码。

  4. 难以团队协作
    每个人使用 AI 的方式不同,产出的代码风格、注释风格、提交信息都不统一。

  5. 缺少验证环节
    AI 生成的代码如果没有测试、Lint、类型检查,很容易把隐藏 Bug 带入项目。

因此,AI 编程真正高效的做法不是“偶尔问一下 AI”,而是建立一套标准化工作流:

需求描述
  ↓
AI 拆解任务
  ↓
生成开发计划
  ↓
创建分支
  ↓
AI 辅助编码
  ↓
自动格式化
  ↓
自动测试
  ↓
AI 辅助修复
  ↓
生成提交信息
  ↓
创建 Pull Request
  ↓
CI 自动验证
  ↓
合并上线

这套流程的关键是:让 AI 参与,但不让 AI 绕过工程规范。


二、适合 AI 自动化的开发场景

AI 编程工作流并不是只适合写 Demo。以下场景都非常适合引入 AI 自动化:

1. 快速生成脚手架

例如:

  • 创建 React / Vue / Next.js 项目
  • 初始化 FastAPI / Flask / Express 后端
  • 创建 CLI 命令行工具
  • 初始化 Python 数据分析项目
  • 创建 Dockerfile、Makefile、CI 配置

2. 编写重复性代码

例如:

  • CRUD 接口
  • 表单校验
  • 数据库 Model
  • DTO / Schema
  • 单元测试
  • API 文档
  • 类型定义
  • 配置文件

3. 代码解释与重构

例如:

  • 解释遗留代码
  • 拆分大函数
  • 优化命名
  • 提取公共模块
  • 增加错误处理
  • 提升类型安全

4. 自动生成测试

例如:

  • 根据函数生成单元测试
  • 根据接口生成集成测试
  • 根据 Bug 场景生成回归测试
  • 生成边界条件测试用例

5. 自动化提交与审查

例如:

  • 自动生成 Git commit message
  • 自动生成 Pull Request 描述
  • 自动总结本次变更
  • 根据 diff 发现潜在问题

三、准备开发环境

下面以 macOS / Linux 环境为主,Windows 用户可以使用 WSL2。本文示例会同时覆盖 Node.js 与 Python 项目,因为这两类项目最常见,也最适合演示 AI 编程自动化。

1. 安装基础工具

macOS 安装 Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

验证:

brew --version

Ubuntu / Debian 更新系统

sudo apt update && sudo apt upgrade -y

安装常用工具:

sudo apt install -y git curl wget unzip build-essential jq tree

macOS 安装常用工具:

brew install git curl wget jq tree

四、安装 Node.js 与 Python 环境

1. 使用 nvm 安装 Node.js

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

加载配置:

source ~/.bashrc

如果你使用 zsh:

source ~/.zshrc

安装 Node.js LTS:

nvm install --lts
nvm use --lts

验证:

node -v
npm -v

建议启用 pnpm:

npm install -g pnpm

验证:

pnpm -v

2. 安装 Python 与 uv

uv 是一个非常快的 Python 包管理与虚拟环境工具,适合现代 Python 项目。

macOS:

brew install python uv

Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

验证:

python3 --version
uv --version

五、安装 AI 编程相关工具

AI 编程工具可以分为三类:

  1. IDE 类:Cursor、VS Code Copilot、JetBrains AI
  2. 命令行类:Claude Code、Aider、OpenAI CLI、自定义脚本
  3. 自动化类:Git Hooks、CI、Makefile、Taskfile、GitHub Actions

为了让流程更通用,本文重点讲命令行和工程自动化。


六、使用 Aider 进行 AI 结对编程

Aider 是一个开源 AI 编程命令行工具,它可以读取你的 Git 仓库、理解文件内容,并直接修改代码。它适合做:

  • 小型功能开发
  • Bug 修复
  • 测试生成
  • 重构
  • 文档更新

1. 安装 Aider

推荐使用 uv 安装:

uv tool install aider-chat

验证:

aider --version

如果提示找不到命令,可以执行:

uv tool update-shell
source ~/.zshrc

或者:

source ~/.bashrc

2. 配置 API Key

以 OpenAI 兼容模型为例:

export OPENAI_API_KEY="你的_API_KEY"

如果你使用的是兼容 OpenAI 协议的模型服务,可以配置:

export OPENAI_API_BASE="https://你的模型服务地址/v1"
export OPENAI_API_KEY="你的_API_KEY"

为了永久生效,可以写入 shell 配置文件。

zsh:

echo 'export OPENAI_API_KEY="你的_API_KEY"' >> ~/.zshrc
source ~/.zshrc

bash:

echo 'export OPENAI_API_KEY="你的_API_KEY"' >> ~/.bashrc
source ~/.bashrc

3. 在项目中启动 Aider

mkdir ai-workflow-demo
cd ai-workflow-demo
git init
aider

如果你想指定模型:

aider --model gpt-4o

或者使用 OpenAI 兼容模型:

aider --model openai/模型名称

七、创建一个示例项目

下面我们创建一个 Node.js 后端 API 项目,用于演示 AI 工作流自动化。

1. 初始化项目

mkdir ai-api-demo
cd ai-api-demo
git init
pnpm init

安装依赖:

pnpm add express cors dotenv
pnpm add -D typescript tsx @types/node @types/express eslint prettier vitest supertest @types/supertest

初始化 TypeScript:

pnpm exec tsc --init

创建目录结构:

mkdir -p src/routes src/services src/middlewares src/utils tests
touch src/index.ts src/app.ts src/routes/todo.routes.ts src/services/todo.service.ts tests/todo.test.ts

查看目录:

tree -L 3

八、让 AI 生成项目基础代码

现在可以让 Aider 帮我们生成代码。

启动:

aider src/index.ts src/app.ts src/routes/todo.routes.ts src/services/todo.service.ts tests/todo.test.ts package.json

然后在 Aider 中输入:

请为这个 TypeScript Express 项目实现一个 Todo API。

要求:
1. 使用 Express 创建 app。
2. 提供以下接口:
   - GET /health 返回 { status: "ok" }
   - GET /todos 返回所有 todo
   - POST /todos 创建 todo,字段包括 title
   - PATCH /todos/:id/toggle 切换完成状态
   - DELETE /todos/:id 删除 todo
3. 使用内存数组存储数据即可。
4. 为 todo service 编写清晰的类型定义。
5. 使用 Vitest 和 Supertest 编写接口测试。
6. 更新 package.json scripts,包含 dev、build、test、lint、format。
7. 代码要简洁,可读性强。

Aider 会修改相关文件。修改完成后,先不要急着相信它,必须运行验证命令。


九、配置 package.json 脚本

如果 AI 没有正确写好脚本,你可以手动补充:

{
  "scripts": {
    "dev": "tsx src/index.ts",
    "build": "tsc",
    "test": "vitest run",
    "test:watch": "vitest",
    "lint": "eslint .",
    "format": "prettier --write .",
    "check": "pnpm format && pnpm lint && pnpm test && pnpm build"
  }
}

然后执行:

pnpm format
pnpm lint
pnpm test
pnpm build

如果有报错,把错误直接交给 AI:

aider

输入:

我运行 pnpm test 出现以下错误,请分析原因并修复。错误如下:

粘贴完整错误日志

这里有一个关键原则:

不要只告诉 AI“报错了”,一定要粘贴完整命令、完整错误、相关文件。


十、用 Makefile 固化工作流

随着命令越来越多,团队成员很容易忘记要运行什么。因此建议使用 Makefile 把常见命令固化下来。

创建文件:

touch Makefile

写入:

.PHONY: install dev build test lint format check clean

install:
    pnpm install

dev:
    pnpm dev

build:
    pnpm build

test:
    pnpm test

lint:
    pnpm lint

format:
    pnpm format

check:
    pnpm format
    pnpm lint
    pnpm test
    pnpm build

clean:
    rm -rf node_modules dist coverage

以后只需要执行:

make install
make dev
make check

这就是工作流自动化的第一步:把容易忘的命令变成固定入口。


十一、用 Git Hooks 防止低质量代码提交

AI 生成代码很快,但也可能把格式问题、测试失败、类型错误一起生成出来。为了避免“坏代码”进入仓库,需要配置 Git Hooks。

这里使用 Husky 和 lint-staged。

安装:

pnpm add -D husky lint-staged

初始化:

pnpm exec husky init

创建 pre-commit hook:

echo "pnpm lint-staged" > .husky/pre-commit
chmod +x .husky/pre-commit

package.json 添加:

{
  "lint-staged": {
    "*.{ts,tsx,js,json,md}": [
      "prettier --write"
    ],
    "*.{ts,tsx,js}": [
      "eslint --fix"
    ]
  }
}

测试:

git add .
git commit -m "test: verify git hooks"

如果代码不符合规范,提交会被拦截。


十二、自动生成规范化 Commit Message

推荐使用 Conventional Commits 规范:

feat: 新功能
fix: 修复问题
docs: 文档变更
style: 格式调整
refactor: 重构代码
test: 测试相关
chore: 构建或工具变更

你可以让 AI 根据 Git diff 自动生成提交信息。

查看变更:

git diff --staged

如果使用 Aider,可以输入:

请根据当前已暂存的 git diff,生成一个符合 Conventional Commits 规范的 commit message,要求中文,简洁明确。

也可以使用 shell 命令把 diff 保存为文件:

git diff --staged > /tmp/staged.diff

然后把 diff 内容发给 AI。

提交示例:

git add .
git commit -m "feat: 添加 Todo API 与接口测试"

十三、创建 AI 开发任务模板

为了让 AI 更稳定地输出结果,建议在项目中创建一个任务模板,例如:

mkdir -p .ai
touch .ai/task-template.md

内容如下:

# AI 开发任务模板

## 背景

请先阅读项目结构与相关文件,理解当前实现。

## 目标

实现以下功能:

- 功能点 1
- 功能点 2
- 功能点 3

## 约束

- 不要引入不必要的新依赖
- 保持现有代码风格
- 必须补充或更新测试
- 不要删除已有测试
- 所有测试必须通过
- 修改完成后说明改动点

## 验证命令

请确保以下命令通过:

```bash
pnpm format
pnpm lint
pnpm test
pnpm build

输出要求

  • 先说明实现方案
  • 再修改代码
  • 最后给出验证步骤

以后每次给 AI 分配任务时,都可以引用这个模板。这样做的好处是减少随机性,让 AI 输出更符合工程要求。


十四、为项目添加 AI 规则文件

如果你使用 Cursor、Windsurf、Continue 等工具,可以创建规则文件,告诉 AI 你的项目规范。

例如创建:

mkdir -p .cursor/rules
touch .cursor/rules/project.md

写入:

# 项目开发规则

你是本项目的 AI 编程助手,请遵守以下规则:

## 技术栈

- Node.js
- TypeScript
- Express
- Vitest
- Supertest
- pnpm

## 编码规范

- 优先使用清晰、简单的实现
- 不要过度设计
- 函数命名必须表达业务含义
- 业务逻辑放在 service 层
- 路由层只负责 HTTP 请求与响应
- 所有新增功能必须包含测试
- 错误处理要返回明确的 HTTP 状态码

## 禁止事项

- 不要偷偷引入大型依赖
- 不要删除已有测试
- 不要跳过类型检查
- 不要生成无法运行的伪代码

## 必须通过的命令

```bash
pnpm format
pnpm lint
pnpm test
pnpm build

这类规则文件相当于给 AI 的“团队开发手册”。越早建立,越能降低 AI 生成代码的混乱度。

---

## 十五、使用 GitHub Actions 实现 CI 自动化

本地检查很重要,但不能完全依赖开发者自觉。团队项目必须使用 CI。

创建目录:

```bash
mkdir -p .github/workflows
touch .github/workflows/ci.yml

写入:

name: CI

on:
  push:
    branches:
      - main
      - develop
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup pnpm
        uses: pnpm/action-setup@v4
        with:
          version: 9

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: pnpm

      - name: Install dependencies
        run: pnpm install --frozen-lockfile

      - name: Format check
        run: pnpm prettier --check .

      - name: Lint
        run: pnpm lint

      - name: Test
        run: pnpm test

      - name: Build
        run: pnpm build

提交:

git add .
git commit -m "ci: 添加 GitHub Actions 自动检查流程"
git push origin main

这样每次推送或提交 PR 时,GitHub 都会自动运行格式检查、Lint、测试和构建。


十六、用 AI 自动生成 Pull Request 描述

创建 PR 时,建议包含:

  • 本次改动内容
  • 为什么这么改
  • 如何测试
  • 影响范围
  • 风险点

你可以先生成 diff:

git diff main...HEAD > /tmp/pr.diff

然后让 AI 生成 PR 描述:

请根据以下 git diff 生成 Pull Request 描述,格式包括:
1. 变更内容
2. 实现思路
3. 测试方式
4. 风险与回滚方案
要求中文、简洁、专业。

以下是 diff:
粘贴 /tmp/pr.diff 内容

PR 描述示例:

## 变更内容

- 新增 Todo API,包括查询、创建、切换状态、删除功能
- 新增 Todo service,封装内存数据操作
- 新增接口测试,覆盖主要业务流程
- 添加基础 CI 流程

## 测试方式

已执行:

```bash
pnpm format
pnpm lint
pnpm test
pnpm build

风险说明

当前 Todo 数据存储在内存中,服务重启后数据会丢失。后续如接入数据库,需要调整 service 层实现。

回滚方案

如出现问题,可回滚本次提交,不影响其他模块。


---

## 十七、Python 项目的 AI 自动化工作流示例

如果你主要写 Python,可以采用类似方式。下面以 FastAPI 项目为例。

### 1. 初始化项目

```bash
mkdir ai-fastapi-demo
cd ai-fastapi-demo
git init
uv init

安装依赖:

uv add fastapi uvicorn pydantic
uv add --dev pytest httpx ruff mypy

创建目录:

mkdir -p app tests
touch app/main.py app/todo_service.py tests/test_todo.py

运行开发服务:

uv run uvicorn app.main:app --reload

2. 配置 pyproject.toml

可以让 AI 生成,也可以手动补充:

[project]
name = "ai-fastapi-demo"
version = "0.1.0"
description = "AI workflow FastAPI demo"
requires-python = ">=3.11"
dependencies = [
    "fastapi",
    "uvicorn",
    "pydantic",
]

[dependency-groups]
dev = [
    "pytest",
    "httpx",
    "ruff",
    "mypy",
]

[tool.ruff]
line-length = 100

[tool.pytest.ini_options]
testpaths = ["tests"]

3. 常用命令

uv sync
uv run uvicorn app.main:app --reload
uv run pytest
uv run ruff check .
uv run ruff format .
uv run mypy app

可以创建 Makefile:

.PHONY: install dev test lint format typecheck check

install:
    uv sync

dev:
    uv run uvicorn app.main:app --reload

test:
    uv run pytest

lint:
    uv run ruff check .

format:
    uv run ruff format .

typecheck:
    uv run mypy app

check:
    uv run ruff format .
    uv run ruff check .
    uv run mypy app
    uv run pytest

执行:

make check

十八、推荐的 AI 编程自动化工作流

下面是一套非常实用的日常流程。

第一步:创建任务分支

git checkout main
git pull
git checkout -b feat/todo-api

第二步:写清楚任务说明

mkdir -p docs/tasks
touch docs/tasks/feat-todo-api.md

任务说明示例:

# 任务:实现 Todo API

## 背景

当前项目缺少任务管理功能,需要提供基础 Todo API。

## 需求

- 查询 Todo 列表
- 创建 Todo
- 切换 Todo 完成状态
- 删除 Todo

## 技术要求

- 使用 TypeScript
- 路由层与服务层分离
- 必须补充测试
- 所有检查命令必须通过

## 验证命令

```bash
pnpm format
pnpm lint
pnpm test
pnpm build

### 第三步:让 AI 先出方案,不直接写代码

提示词:

```text
请阅读 docs/tasks/feat-todo-api.md 和当前项目结构,先不要修改代码。
请先输出实现方案,包括:
1. 需要新增或修改哪些文件
2. 每个文件的职责
3. 测试计划
4. 可能的风险点

这一步非常重要。直接让 AI 写代码,容易跑偏;先让它给方案,可以提前发现问题。

第四步:确认方案后再让 AI 修改代码

提示词:

方案可以,请按上述方案实现。
要求:
1. 保持代码简洁
2. 新增测试
3. 不引入不必要依赖
4. 修改完成后说明改动点

第五步:运行检查

pnpm format
pnpm lint
pnpm test
pnpm build

或者:

make check

第六步:把错误交给 AI 修复

执行 make check 后出现以下错误,请修复。
要求:
1. 不要跳过测试
2. 不要删除失败测试
3. 优先修复代码逻辑
4. 修复后说明原因

错误日志如下:
粘贴完整错误

第七步:提交代码

git status
git add .
git commit -m "feat: 实现 Todo API"

第八步:推送并创建 PR

git push origin feat/todo-api

十九、完整命令合集

下面整理一套从零开始的完整命令,你可以按需复制使用。

1. Node.js 项目初始化

mkdir ai-api-demo
cd ai-api-demo
git init
pnpm init
pnpm add express cors dotenv
pnpm add -D typescript tsx @types/node @types/express eslint prettier vitest supertest @types/supertest
pnpm exec tsc --init
mkdir -p src/routes src/services src/middlewares src/utils tests
touch src/index.ts src/app.ts src/routes/todo.routes.ts src/services/todo.service.ts tests/todo.test.ts

2. 常用运行命令

pnpm install
pnpm dev
pnpm format
pnpm lint
pnpm test
pnpm build

3. Makefile 命令

make install
make dev
make test
make lint
make format
make check

4. Git 分支与提交

git checkout main
git pull
git checkout -b feat/todo-api
git status
git add .
git commit -m "feat: 实现 Todo API"
git push origin feat/todo-api

5. Git Hooks

pnpm add -D husky lint-staged
pnpm exec husky init
echo "pnpm lint-staged" > .husky/pre-commit
chmod +x .husky/pre-commit

6. Aider 安装与使用

uv tool install aider-chat
aider --version
export OPENAI_API_KEY="你的_API_KEY"
aider

指定模型:

aider --model gpt-4o

指定文件:

aider src/app.ts src/routes/todo.routes.ts src/services/todo.service.ts tests/todo.test.ts

7. Python FastAPI 初始化

mkdir ai-fastapi-demo
cd ai-fastapi-demo
git init
uv init
uv add fastapi uvicorn pydantic
uv add --dev pytest httpx ruff mypy
mkdir -p app tests
touch app/main.py app/todo_service.py tests/test_todo.py

8. Python 常用命令

uv sync
uv run uvicorn app.main:app --reload
uv run pytest
uv run ruff check .
uv run ruff format .
uv run mypy app

二十、AI 编程工作流的最佳实践

1. 不要让 AI 一次做太多事

错误示例:

帮我做一个完整电商系统,包括登录、商品、订单、支付、后台管理。

正确示例:

请先实现用户登录模块,只包含邮箱密码登录、JWT 生成、登录接口测试。

AI 更适合处理边界清晰、目标明确的小任务。


2. 每个任务都要有验证命令

无论 AI 写得多像样,都必须经过命令验证:

pnpm lint
pnpm test
pnpm build

或者:

make check

工程开发中,能跑通比看起来正确更重要。


3. 让 AI 先解释方案

在复杂任务中,先要求 AI 输出方案:

先不要写代码,请先说明实现方案、影响文件和测试计划。

这可以显著降低返工成本。


4. 把项目规则写进仓库

不要每次都重复告诉 AI:

  • 用什么技术栈
  • 代码风格是什么
  • 是否必须写测试
  • 哪些依赖不能用
  • 提交格式是什么

把这些规则写进 .ai.cursor/rulesREADME.mdCONTRIBUTING.md 中,AI 工具会更容易遵循。


5. 不要盲目信任 AI 生成的依赖

AI 经常会推荐一些过时、复杂或不必要的库。引入依赖前要问:

  • 这个依赖是否长期维护?
  • 是否真的需要?
  • 是否能用标准库解决?
  • 是否增加安全风险?
  • 是否影响包体积?

6. 所有 AI 生成代码都要 Code Review

AI 可以提高产出速度,但不能替代工程判断。重点审查:

  • 是否有安全漏洞
  • 是否有边界条件遗漏
  • 是否有隐藏性能问题
  • 是否破坏已有行为
  • 是否过度设计
  • 是否缺少测试

二十一、一个成熟团队可以如何落地?

如果你在团队中推广 AI 编程工作流,可以按以下顺序推进:

第一阶段:工具统一

  • 统一使用 pnpm / uv
  • 统一格式化工具
  • 统一 Lint 规则
  • 统一测试命令
  • 统一 Git commit 规范

第二阶段:AI 使用规范

  • 建立 AI 提示词模板
  • 建立项目规则文件
  • 规定 AI 生成代码必须测试
  • 规定 PR 中说明 AI 使用范围

第三阶段:自动化检查

  • 引入 Git Hooks
  • 引入 CI
  • 引入测试覆盖率检查
  • 引入依赖安全扫描

第四阶段:沉淀知识库

  • 将常见 Bug 修复方式写入文档
  • 将常用提示词放入仓库
  • 将架构规范放入规则文件
  • 将优秀 PR 作为示例模板

二十二、总结

AI 编程真正的价值,不只是“让 AI 写代码”,而是把 AI 放进一套可靠的工程系统里,让它在规范、测试、自动化和审查的约束下工作。

一套高质量的 AI 编程工作流应该具备以下特点:

  • 任务拆解清晰
  • 项目规则明确
  • AI 修改范围可控
  • 自动格式化
  • 自动测试
  • 自动类型检查
  • Git Hooks 拦截低质量提交
  • CI 保障主分支质量
  • Commit 与 PR 描述规范
  • 人类开发者最终审查

你可以从最简单的三件事开始:

make check
git commit -m "feat: 添加某个明确功能"
请先给出实现方案,不要直接修改代码。

当这些习惯固定下来之后,AI 就不再只是一个“代码生成器”,而会成为你开发流程中的自动化协作者。它负责提高速度,你负责判断方向;它负责生成草稿,你负责建立质量边界。最终,AI 编程工作流的目标不是让开发变得随意,而是让高质量开发变得更快、更稳定、更可复制。

目录结构
全文