Vibe Coding 的复用与 Agent 调教:从一次性生成到持续进化

一、问题的本质:为什么 Agent 用着用着就不顺手了?

很多人在体验 Vibe Coding 时都会遇到一个尴尬的转折点:第一天惊为天人,第三天开始反复改 prompt,一周后觉得还不如自己写。

这不是 Agent 变笨了,而是暴露了 Vibe Coding 最核心的挑战——代码是 AI 生成的,但需求是持续变化的。传统开发中,代码即文档,修改代码就是修改需求;而在 Vibe Coding 中,需求分散在无数次对话里,代码只是 AI 对需求的“瞬时快照”。

要真正让 Agent 越用越顺手,需要一套结构化的复用与调教策略。

二、复用策略:让知识和代码可沉淀

2.1 Prompt 模板化

不要每次都从零开始写 prompt,将成功的 prompt 固化为模板。

❌ 低效做法:

"帮我写一个用户登录接口,用 JWT,要包含验证码,还要有密码加密..."

✅ 模板化做法: 创建 templates/api-login.md:

# 用户登录 API 生成模板

## 上下文
- 框架:[FastAPI/Express/Hyperf]
- 数据库:[MySQL/PostgreSQL]
- 认证方式:JWT

## 功能要求
1. 接收用户名/邮箱和密码
2. 验证码校验(Redis 存储)
3. 密码 bcrypt 验证
4. 生成 JWT Token(过期时间 7 天)
5. 返回用户信息和 Token

## 非功能要求
- 接口限流:每分钟 5 次
- 日志记录:记录登录失败原因
- 错误码规范:参考 [链接]

使用时只需填充 [] 中的变量,或直接引用模板让 AI 读取。

2.2 规则文件(.cursorrules / .difyrules)

主流 AI 编程工具都支持项目级规则文件,这是让 AI 理解项目上下文最有效的方式。

.cursorrules 示例:

# 项目规范
技术栈: Hyperf 3.1 + MySQL 8.0 + Redis 7.0
代码风格: PSR-12
API规范: RESTful,统一返回格式 {code, message, data}

# 数据库规范
表名: 蛇形命名,复数
字段: 必须有 created_at, updated_at
主键: bigIncrements('id')

# 禁止行为
- 不允许使用 ORM 的 lazy loading
- 不允许在 Controller 中直接写 SQL
- 不允许跳过参数验证

# 常用代码模式
Repository 模式: App\Repository\{Model}Repository
Service 层: App\Service\{Model}Service

规则文件放在项目根目录后,AI 每次生成代码都会自动遵循这些约束,一致性从“每次提醒”变成“一次配置”。

2.3 自定义指令库(Skills / Commands)

Cursor 的 Skills 和 Windsurf 的 Commands 功能,让你可以把复杂的多步骤任务打包成一个指令。

示例:创建 @new-api 指令

name: new-api
description: 创建完整的 CRUD API 接口
steps:
  1. 创建 Migration(包含 up 和 down)
  2. 创建 Model(包含 fillable 和 casts)
  3. 创建 Repository(包含基础 CRUD)
  4. 创建 Service(包含业务逻辑)
  5. 创建 Controller(包含路由注解)
  6. 创建 Request(包含验证规则)
  7. 创建 Resource(包含数据转换)

之后只需输入 @new-api User,AI 就会自动生成全套代码。

2.4 记忆库(Memory / 知识库)

Dify 的 Memory、Cursor 的 Project Rules 和 Claude Projects 都支持跨会话的记忆持久化。

最佳实践:构建团队知识库

/knowledge/
├── architecture/          # 架构决策记录
│   └── 2026-09-08-选择Hyperf作为后端框架.md
├── patterns/              # 代码模式
│   ├── repository-pattern.md
│   └── dto-pattern.md
├── decisions/             # 技术决策
│   └── why-not-use-laravel.md
└── errors/                # 踩坑记录
    ├── amqp-reconnect.md
    └── jwt-refresh-token.md

每次 AI 生成代码时,将相关文档作为上下文传入,Agent 就能基于团队的历史决策进行推理,而不是每次都从零“猜测”。

三、Agent 调教:从“听话”到“懂事”

3.1 反馈循环机制

Agent 需要持续的反馈来优化行为,就像训练实习生。

显式反馈:

  • 👍/👎 对生成结果进行评价
  • 直接在对话中纠正:“这里不应该用 LEFT JOIN,应该用 INNER JOIN”
  • 修正后告诉 AI:“记住这个模式,以后类似场景都用 INNER JOIN”

隐式反馈:

  • 通过规则文件更新约束
  • 通过 PR 审查中积累的模式补充到模板库
  • 通过运行日志中的错误反向优化 prompt

Cursor 内部数据显示,持续使用反馈循环的团队,AI 生成代码的接受率从 40% 提升到 75% 以上。

3.2 分阶段生成,而非一次性完成

一次性生成 500 行代码通常效果很差,更高效的策略是分阶段迭代:

❌ 错误方式:
"帮我写一个完整的电商系统,包含用户、商品、订单、支付..."

✅ 正确方式(分阶段):
阶段1:"设计用户模块的数据模型"
阶段2:"实现用户注册和登录接口"
阶段3:"给登录接口加上验证码和限流"
阶段4:"实现 JWT 刷新机制"

每个阶段生成 50-150 行代码,验证无误后再推进下一步。这还能有效降低Vibe Slop的规模——问题代码在早期被拦截,不会大面积扩散。

3.3 模型选择策略

不同任务用不同模型,而不是只用一个“最好”的模型。

任务类型推荐模型原因
架构设计/需求分析Claude 3.7 Sonnet推理能力强,理解复杂上下文
代码生成DeepSeek V3 / GPT-4o代码质量稳定,速度快
代码审查Claude 3.7 / Kimi K3细节敏感,发现问题能力强
简单脚本Cursor 默认模型够用且快

Cursor、Windsurf 等工具已支持模型切换,根据任务选模型比一味追求“最强”更高效。

3.4 上下文工程

AI 生成代码的质量,70% 取决于输入的上下文质量。

✅ 高质量上下文清单:

  1. 技术栈约束:明确框架、版本、数据库
  2. 代码风格参考:提供 2-3 个已有文件作为示例
  3. 业务约束:不能做的事情比能做的事情更重要
  4. 错误边界:常见错误和边界条件

示例:

"实现用户注册接口。参考 UserController.php 的风格。
要求:手机号必须是中国大陆号码格式。错误时返回 422。
不允许:批量插入、跳过验证。"

四、组织级复用:从个人效率到团队能力

4.1 建立 Prompt 工程规范

# prompt-standards.yaml
结构:
  1. 上下文描述 (Context)
  2. 具体任务 (Task)
  3. 约束条件 (Constraints)
  4. 输出格式 (Output Format)
  5. 参考示例 (Examples)

禁止:
  - "大致"、"可能"、"尝试"等模糊词汇
  - 一次性列出超过 5 个独立功能
  - 在 prompt 中包含敏感信息

最佳实践:
  - 每个 prompt 聚焦一个明确目标
  - 使用 Checklist 格式列出需求
  - 生成后先 review 再集成

4.2 代码模板库

/templates/
├── api/                      # API 接口模板
│   ├── crud-controller.md
│   └── list-request.md
├── database/                 # 数据库模板
│   ├── migration.md
│   └── seeder.md
├── hyperf/                   # 框架特定模板
│   ├── repository.md
│   └── service.md
└── validation/               # 验证规则模板
    ├── create-user.md
    └── update-user.md

4.3 复用效果量化

指标无复用策略有复用策略提升
新功能开发时间4小时1.5小时62.5%
代码生成接受率45%78%73%
重复 prompt 输入每次 200+ 词每次 20+ 词90%
团队新成员上手时间2周3天78%
生产 Bug 率3.2%0.8%75%

五、实用工具推荐

工具复用能力调教方式
Cursor.cursorrules, Skills, Project Rules反馈 + 规则迭代
WindsurfCommands, Memories, Workspace记忆库 + 流水线
Dify工作流模板, 知识库, 工具集成Prompt 调优 + 流程编排
GitHub CopilotCustom Instructions, 项目级配置指令迭代 + 上下文工程
Claude Projects项目知识库, 自定义指令知识库持续更新

六、总结

让 Agent 越来越顺手,核心不是“选最强的模型”,而是建立一个知识积累与反馈循环的系统:

  1. 规则先行:建立 .cursorrules 或项目规则,一次性配置,永久生效
  2. 模板沉淀:将成功的 prompt 和代码模式固化为可复用的模板
  3. 分阶段生成:从小块开始,逐步构建,确保每一步都可验证
  4. 持续反馈:用👍/👎、修正和规则更新形成闭环
  5. 组织共享:把个人经验转化为团队知识库

Vibe Coding 的终极形态不是“AI 替人写代码”,而是人通过 AI 持续积累和复用知识。当你的 Agent 越来越顺手时,其实是你对软件开发的认知越来越结构化、体系化了。