如何让 AI 按照你的预期输出

1. 写在最前面

最近写代码的时候发现 Cursor 的 token 不够用,为了还能够使用 AI 编程,就调整到了 「auto」的模式下写代码。好家伙,auto 开局就是一顿瞎写,写那叫一个「龙飞凤舞」,差点直接把整个代码给我重构了。但是好在 Cursor 的回滚也是很方便,所以只要回滚之后,我就可以继续自己的思路写代码了。

注:这个故事教育我们就算是 Cursor 的 token 不够,也不能随便使用 「auto」模式,因为它真的会瞎写......

所以思考一下,如何 AI 能规范化实现及输出就变成一个需要解决的问题,比如 AI 会出现幻觉,针对一个错误的问题它也能给你编造一个回答。

注:日常的问答中,当你不断质疑 AI 的回答时,它为了更贴合你的问题,会编造一些不真实的回答。如果在编程中也是这样,那上线的话,大概率就是个故障了。

2. Spec-Kit

2.1 介绍

Spec-Kit 是 GitHub 开发的一个开源工具,用来控制 AI 生成代码的质量

简单理解

想象你要建房子:

  • 不用 Spec-Kit:直接让 AI 开始建,可能建歪了、不符合要求
  • 用 Spec-Kit:先画好详细图纸,再让 AI 严格按照图纸施工

Spec-Kit 就是那个"画图纸"的工具,确保 AI 生成的代码符合你的要求。

优点

  • 代码质量高:先写规范,AI 生成的代码更符合预期
  • 减少返工:提前想清楚需求,避免后期大改
  • 流程清晰:团队协作时,每个人都知道在做什么
  • 支持多种 AI:可以用 Claude Code、GitHub Copilot 等
  • 免费开源:GitHub 官方维护,完全免费

缺点

  • 步骤多:小项目可能觉得繁琐
  • 学习成本:需要理解规范驱动开发的概念
  • 需要耐心:不能跳过步骤,必须按流程来

2.2 核心概念--- 规范驱动开发

规范驱动开发(SDD) 的核心思想是:先想清楚要做什么,再动手做

就像想要做一盘菜的时候,总结下来需要以下步骤:

  1. 先看菜谱(规范)
  2. 准备食材和工具(计划)
  3. 按步骤操作(任务)
  4. 完成菜品(实施)

Spec-Kit 把这个流程应用到编程上,让 AI 按步骤生成代码。

2.3 工作流程

2.3.1 Specify(规范阶段)

做什么:写清楚要做什么功能,有什么要求

例子

diff 复制代码
我要做一个用户登录功能:
- 用户输入用户名和密码
- 验证密码是否正确
- 登录成功后跳转到首页
- 登录失败显示错误提示
2.3.2 Plan(计划阶段)

做什么:制定技术实现方案

例子

diff 复制代码
技术方案:
- 使用 React 做前端
- 使用 Express 做后端 API
- 使用 JWT 做身份验证
- 使用 MySQL 存储用户信息
2.3.3 Tasks(任务阶段)

做什么:把大任务拆分成小任务

例子

markdown 复制代码
任务列表:
1. 创建登录页面组件
2. 创建登录 API 接口
3. 实现密码验证逻辑
4. 实现 JWT 生成和验证
5. 编写测试用例
2.3.4 Implement(实施阶段)

做什么:让 AI 按照前面的规范、计划和任务生成代码

重要 :Spec-Kit 要求先写测试,再写代码(测试驱动开发 TDD)

2.4 实测

怎么说呢?虽然这个工具让 AI 输出的内容更加格式化,但是我实测了一波,感觉是在太冗余了,不太适合个人开发。

注: 还是后面再学习一波其他的控制 AI 输出的工具吧,这个工具怕是不大适合我

3. 碎碎念

啦啦啦,终于在周五的晚上加班写了最近想学习的知识点,今日份学习就先到这里结束吧,我要回去看《唐诡 3 》啦。

  • 影响你情绪的不是事情,而是你对事情的认知。
  • 希望我是愿意接触新东西的人,有勇气承认自己不懂的人,看得见自己的陈旧和狭隘的人,希望我是一个永远跃跃欲试的人。

4. 参考资料

相关推荐
q***56381 小时前
Spring Boot--@PathVariable、@RequestParam、@RequestBody
java·spring boot·后端
q***57502 小时前
Spring Boot(七):Swagger 接口文档
java·spring boot·后端
猪猪拆迁队3 小时前
前端图形引擎架构设计:双引擎架构设计
前端·后端·架构
GISer_Jing4 小时前
Node.js 开发实战:从入门到精通
javascript·后端·node.js
q***51894 小时前
Spring Boot 条件注解:@ConditionalOnProperty 完全解析
java·spring boot·后端
码事漫谈4 小时前
C/C++混合项目中的头文件管理:.h与.hpp的分工与协作
后端
码事漫谈4 小时前
C++中有双向映射数据结构吗?Key和Value能否双向查找?
后端
Felix_XXXXL4 小时前
集成RabbitMQ+MQ常用操作
java·后端
该用户已不存在5 小时前
Rust性能调优:从劝退到真香
后端·rust