🤖 打造高效AI编程代理:基于提示词模板的自动化开发工作流

前言

在AI辅助编程的时代,如何让AI成为一个高效的"编程代理",而不是简单的代码生成工具?本文将分享一套完整的AI编程代理工作流,通过精心设计的提示词模板和项目文档体系,实现从需求分析到代码提交的全流程自动化。

一、核心理念:角色定位

首先明确AI与人类的角色分工:

角色 职责
AI(编程代理) 高级开发工程师,负责写代码、编译、提交
人类 产品经理 + 架构师,负责需求定义、验收

这种分工模式让AI专注于代码实现,人类专注于产品决策,各司其职,高效协作。

二、项目文档体系

2.1 四大核心文档

一个规范的项目需要以下文档支撑AI的工作:

project/
├── doc/
│   ├── 产品文档.md      # 产品功能说明、技术架构
│   ├── 代码目录结构.md   # 项目结构、核心文件说明
│   ├── tasks.md        # 任务清单(状态、描述、验收标准)
│   └── progress.md     # 进度记录(已完成任务的详细实现)

2.2 各文档职责

文档 内容 更新时机
产品文档.md 功能说明、技术栈、节点类型、界面布局、扩展指南 需求变更时
代码目录结构.md 目录结构、核心文件说明、类继承关系 项目结构变更时
tasks.md 任务ID、状态、描述、验收标准 新增/完成任务时
progress.md 修改文件清单、实现功能点、编译结果 任务完成时

三、提示词模板设计

将提示词放到和产品文档.md统一目录,设置AI的工作目录到这个目录。然后让AI读取提示词并工作。

3.1 PROMPT.md 核心结构

# 编程代理 - 极简模式

## 角色定位
你是高级开发工程师,人类是产品经理+架构师。你负责写代码,人类负责验收。

## 项目上下文
技术栈:Qt/C++
任务文件:tasks.md
进度文件:progress.md
产品文档:产品文档.md
代码目录结构说明:代码目录结构.md

## 工作流程
### 步骤0:理解上下文
### 步骤1:读取任务
### 步骤2:执行编码
### 步骤3:编译验证
### 步骤4:等待验收

## 约束规则
## 完成标记格式

3.2 tasks.md 模板

# 项目名称 - 任务清单

## 项目信息
| 项目名称 | 技术栈 | 构建命令 |
|---------|--------|---------|
| XXX系统 | Qt | qmake、jom |

## 任务列表

### T1: 任务标题 ✅

**状态**: 已完成
**创建时间**: 2026-03-05
**完成时间**: 2026-03-05

**描述**: 任务详细描述

**验收标准**:
- [x] 验收点1
- [x] 验收点2

3.3 progress.md 模板

# 项目进度记录

## 项目信息
- **名称**: 项目名称
- **开始时间**: 2026-03-05
- **当前状态**: T1 已完成

## 任务概览
| 任务 ID | 标题 | 状态 | 完成时间 |
|---------|------|------|----------|
| T1 | 任务标题 | ✅ completed | 2026-03-05 |

## 详细记录

### T1: 任务标题

**任务状态**: ✅ 已完成

**修改的文件清单**:
- `include/XXX.hpp` - 修改说明
- `src/XXX.cpp` - 修改说明

**实现的功能点**:
1. 功能点1
2. 功能点2

**编译结果**: ✅ 成功

**验收要点**:
- [x] 验收点1
- [x] 验收点2

四、工作流程详解

这里是方便用户理解AI是怎么工作的。

4.1 步骤0:理解上下文

┌─────────────────────────────────────────────────────────┐
│                    项目类型判断                          │
├─────────────────────────────────────────────────────────┤
│  全新项目(只有产品文档.md)                              │
│  ├── 生成项目目录结构(code/、doc/、build/)              │
│  ├── 生成代码目录结构.md                                 │
│  ├── 生成 tasks.md(任务分解)                           │
│  ├── 生成 progress.md                                   │
│  ├── 初始化 Git 版本库                                  │
│  └── 等待人类检查通过后继续                              │
├─────────────────────────────────────────────────────────┤
│  已有项目(有代码、doc、build 文件夹)                    │
│  ├── 读取产品文档.md → 理解产品功能                      │
│  ├── 读取代码目录结构.md → 理解项目结构                  │
│  ├── 读取 tasks.md → 获取待处理任务                     │
│  └── 读取 progress.md → 了解历史上下文                  │
└─────────────────────────────────────────────────────────┘

4.2 步骤1:读取任务

读取任务里状态为pending的任务并进行处理。

关键原则:任务不明确时,停止并询问人类,不要猜测!

4.3 步骤2:执行编码

编码原则:
├── 根据任务描述编写代码
├── 遵循项目已有代码风格(命名、格式、架构)
├── 一次只修改当前任务相关文件
├── 不运行任何测试命令
├── 不擅自安装依赖(需人类批准)
└── 不删除文件(需人类批准)

4.4 步骤3:编译验证

# Qt 项目编译命令
qmake.exe LogicModelEditor.pro
jom.exe

# 编译结果处理
if 编译失败:
    分析错误信息
    修复代码
    重新编译
else:
    进入步骤4

4.5 步骤4:等待验收

验收流程:
├── 更新 progress.md(记录修改文件、实现功能、编译结果)
├── 输出完成标记(见下方格式)
├── 停止执行
└── 等待人类验收

完成标记格式

<promise>COMPLETE</promise>
<task_id>T1</task_id>
<files>include/MainWindow.hpp, src/MainWindow.cpp</files>
<summary>实现了画布保存和加载功能</summary>
<build_result>成功</build_result>
<notes></notes>

五、Git 提交规范

5.1 提交命令

git add . && git commit -m "feat: 任务标题 (#任务ID)" && git push origin main

5.2 提交时机

提交时机:
├── 编译通过
├── 更新 progress.md
├── 人类检视通过
└── 执行 git 提交

5.3 Commit Message 规范

feat: 新增功能
fix: 修复bug
refactor: 重构代码
docs: 文档更新
style: 代码格式调整

六、约束规则总结

规则 说明
❌ 不运行测试 不执行 npm test、pytest 等测试命令
❌ 不擅自安装依赖 需要新依赖时在 <notes> 中说明,等待人类批准
❌ 不删除文件 需要删除时在 <notes> 中请求批准
✅ 编译通过即完成 质量由人类验收把控
✅ 先更新进度再提交 每次编译通过后,先更新 progress.md
✅ 先检视再提交 编译通过后先提交人类检视,检视后再执行 git 提交

七、实战案例

7.1 任务示例

### T1: 完成画布保存

**状态**: pending
**创建时间**: 2026-03-05

**描述**: 基于已有的代码框架完成构建模型后的画布保存功能

**验收标准**:
- [ ] 项目能正常启动
- [ ] 模型可以正常保存
- [ ] 保存后的文件可以正常加载

7.2 执行过程

1. AI 读取 tasks.md,找到 T1 任务(status: pending)
2. AI 读取 progress.md,了解项目历史
3. AI 分析产品文档,理解保存功能需求
4. AI 编写代码:
   - 修改 MainWindow.hpp(添加方法声明)
   - 修改 MainWindow.cpp(实现保存逻辑)
5. AI 执行编译:qmake && jom
6. 编译通过,更新 progress.md
7. 输出完成标记,等待人类验收
8. 人类验收通过,AI 执行 git 提交

7.3 进度记录示例

### T1: 完成画布保存

**任务状态**: ✅ 已完成

**修改的文件清单**:
- `include/MainWindow.hpp` - 添加保存/加载相关方法声明
- `src/MainWindow.cpp` - 实现保存/加载功能

**实现的功能点**:
1. 创建 `saves/` 目录用于存储模型文件
2. 实现 `saveModel()` 方法
3. 实现 `loadModel()` 方法
4. 添加工具栏保存按钮

**编译结果**: ✅ 成功

**验收要点**:
- [x] 项目能正常启动
- [x] 模型可以正常保存
- [x] 保存后的文件可以正常加载

八、最佳实践

8.1 任务粒度

  • ✅ 单个任务聚焦一个功能点
  • ✅ 验收标准清晰可验证
  • ❌ 避免任务过大(如"完成整个系统")

8.2 文档维护

  • 产品文档保持最新,AI 依赖它理解需求
  • progress.md 详细记录,便于回溯历史
  • tasks.md 状态及时更新

8.3 人机协作

  • AI 编译通过后停止,等待人类验收
  • 人类验收通过后回复"继续"进入下一任务
  • 遇到问题及时沟通,不要让 AI 猜测

九、总结

这套 AI 编程代理工作流的核心优势:

  1. 角色清晰:AI 专注代码,人类专注产品
  2. 文档驱动:四大文档支撑完整上下文
  3. 流程规范:四步工作流,环环相扣
  4. 约束明确:什么能做、什么不能做,边界清晰
  5. 可追溯:progress.md 记录每次修改

通过这套工作流,可以让 AI 成为一个高效的编程代理,实现从需求到代码的自动化开发。


Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐