维护咨询 大模型部署 问题解决 技能定制 大模型训练
用AI写代码最怕什么?AI噼里啪啦写了一大堆,一运行全是bug,推倒重来更费时间。
Hermes有两个机制可以解决这个问题:Test-Driven Development(TDD)模式和规划模式(Plan Mode)。它们的核心思想是一样的——先想清楚要做什么,再动手写代码。
## 为什么需要先想清楚
AI生成代码是概率模型,越复杂的任务越容易”跑偏”。在真正动手之前花30秒思考,胜过上完厕所回来发现AI写了一堆无用代码。
规划模式和TDD正是强迫AI在行动前先思考的机制。
—
## Test-Driven Development模式
TDD模式的核心流程:
1. 先写测试用例(描述期望的行为)
2. 运行测试,看到测试失败
3. 写最少量代码让测试通过
4. 重构优化
这个循环确保代码从一开始就是可验证的。
在Hermes里启用TDD:
在任务描述里加 –tdd 标记:
帮我写一个排序算法,用TDD模式,先写测试
或者用 /tdd 命令开启本次会话的TDD模式:
/tdd
写一个用户登录验证模块
AI会怎么做:
1. 先问你要验证哪些场景(正确密码、错误密码、空密码、SQL注入等)
2. 生成测试用例
3. 运行测试(当然会失败)
4. 写代码
5. 再次运行测试
6. 重复直到全部通过
—
## 规划模式(Plan Mode)
规划模式让AI在执行任务前先输出一个执行计划,等你确认再行动。
启用规划模式:
/plan
帮我重构这个项目的数据层
AI会输出这样的计划:
## 重构计划
### 目标
将数据层从直接SQL查询迁移到Repository模式
### 步骤
1. 创建Repository接口(定义数据操作方法)
2. 迁移User表相关查询到UserRepository
3. 迁移Order表相关查询到OrderRepository
4. 用Adapter包装现有SQL代码
5. 修改Service层引用新Repository
6. 写单元测试验证
### 风险
- 改动面较大,建议先在dev分支操作
- 涉及15个文件,做好备份
### 预计时间
约2小时
---
是否按此计划执行?
你可以:
– 直接确认继续
– 修改某个步骤
– 取消任务
– 追问某个步骤的细节
—
## TDD + 规划模式结合
最强的方式是两者结合:
/plan /tdd
写一个RESTful API,包含用户注册、登录、获取个人信息三个接口
AI会:
1. 先出完整的执行计划(TDD覆盖哪些接口)
2. 你确认后,AI先写测试
3. 测试跑通后开始写实现代码
4. 每写完一个接口运行一次测试
—
## 什么时候用哪种
用TDD:
– 任务目标明确,但实现细节需要探索
– 需要覆盖多个边界情况
– 后续会持续迭代的代码
– 适合:工具函数、数据处理、API客户端
用规划模式:
– 任务复杂,步骤多,容易走偏
– 需要确保AI理解你的需求
– 涉及多文件改动
– 适合:重构、架构调整、大功能开发
两者都用:
– 大型复杂项目
– 不确定AI是否理解需求
– 需要多轮review的场景
—
## /plan命令详解
plan命令的参数:
/plan <任务描述> # 标准规划
/plan --abort # 取消当前计划,说明原因
/plan --modify <调整> # 修改计划某一步骤
/plan --expand <步骤> # 展开某个步骤的细节
/plan --merge <步骤1+2> # 合并相邻步骤
plan的历史:
plan执行后,计划会保存到会话状态,你可以随时问:
当前计划进展到哪一步了?
计划里有几个风险点?
跳过第3步,先做第4步
—
## 实际工作流示例
场景:开发一个图片处理工具
用户:/plan /tdd
写一个图片处理工具,支持:
1. 按比例缩放
2. 添加水印
3. 转换格式(jpg/png/webp)
AI:
## 执行计划
### 目标
创建图片处理工具,支持缩放、水印、格式转换
### TDD覆盖
- 缩放:正常比例、极限比例(0.01x)、超大比例
- 水印:文字水印、位置(9宫格)、透明度
- 格式转换:jpg→png、png→webp、webp→jpg
### 步骤
1. 创建项目结构(image_processor/)
2. 写测试文件 test_processor.py
3. 实现基础框架(加载图片、保存图片)
4. 实现缩放功能
5. 实现水印功能
6. 实现格式转换
7. 集成测试
### 风险
- 大图处理可能内存占用高,建议加流式处理
- 水印透明度依赖Pillow版本
---
是否按此计划执行?
用户:确认,但先不加水印功能
AI:[跳过水印相关测试和代码,从步骤4跳到步骤6]
—
## 常见问题
Q:TDD模式下AI写的测试质量怎么样?
A:取决于你的任务描述是否清晰。描述清楚边界情况(空输入、错误输入、极限值),AI能写出不错的测试覆盖。如果任务描述模糊,测试也会模糊。
Q:规划模式会不会让AI变笨?
A:不会。规划只是让AI先输出一个计划,不是真正执行。这个计划会作为后续对话的上下文保留,不会浪费token。
Q:可以不确认直接让AI按计划执行吗?
A:可以。用 /plan –force 或者在计划输出后直接说”执行”,AI就会跳过确认直接执行。
Q:任务中途想改计划怎么办?
A:直接说”改一下计划”或者”/plan –modify”,AI会重新输出调整后的计划。
—
## 相关文章








暂无评论内容