Vibe Coding 工具链实战:让 AI 写代码更稳的 15 个工具与配置思路
Vibe Coding 工具链实战:让 AI 写代码更稳的 15 个工具与配置思路
最近一段时间,很多开发者都在尝试 Vibe Coding,也就是通过自然语言和 AI 编程工具协作,让 AI 帮忙写代码、改 bug、补测试、整理文档,甚至完成一部分功能开发。
但实际用下来会发现一个问题:AI 写代码并不是“说一句需求,然后等它自动完成”。如果项目稍微复杂一点,只靠一句 prompt 很容易出现几个问题:
-
不理解项目结构,改错文件;
-
使用过时 API,生成不能运行的代码;
-
一次性改动太大,后续不好 review;
-
修一个 bug,又引入新的问题;
-
没有跑测试,只是“看起来写完了”。
所以我更倾向于把 Vibe Coding 理解为一种新的开发工作流,而不是单个工具。真正好用的 AI 编码流程,通常需要几层能力配合:
-
一个能读代码、改文件、跑命令的 Coding Agent;
-
一份明确的项目说明文件;
-
一套约束 Agent 行为的规则或 Skills;
-
足够准确的代码上下文;
-
必要的调试、测试和 review 流程。
下面整理一批我认为比较值得关注的工具和配置方式,不做排名,主要从实战使用角度说明适合什么场景。
一、先选一个主力 Coding Agent
Vibe Coding 的第一层,是选择一个能真正参与开发流程的 Coding Agent。它不只是聊天窗口,而是可以读取项目、修改文件、执行命令,并和你一起完成开发任务。
1. Claude Code
Claude Code 是目前很多人做 AI 编码时会优先尝试的工具之一。它适合放在终端或 IDE 流程里,用来做代码阅读、局部重构、bug 修复、测试补充等任务。
比较适合的用法是:
-
让它先阅读相关文件,不要直接动手改;
-
要求它先给修改计划;
-
每次只改一个小目标;
-
修改后说明改了哪些文件、为什么这么改;
-
最后让它提示需要人工检查的点。
不建议一上来就让它“重构整个项目”或者“一次性实现完整系统”。Agent 能做事,但仍然需要人控制范围。
2. Codex CLI
Codex CLI 更适合喜欢终端工作流的开发者。它的使用方式比较直接:在本地项目目录里,让 AI 读取、修改、运行代码。
适合的场景包括:
-
小型工具脚本;
-
单个 bug 修复;
-
给已有项目补 README;
-
给函数补测试;
-
分析报错日志并定位问题。
我的经验是,CLI 类工具更适合“边跑边改”。不要只让它生成代码,还要让它执行测试、查看报错、再继续修。
3. Gemini CLI
Gemini CLI 也是终端型 AI Agent,适合做代码库查询、文件修改和自动化任务。它的优势是比较适合和 Google 生态或命令行流程结合。
可以尝试的用法:
# 示例:让 Agent 先理解项目结构
请先阅读项目目录结构,说明主要模块作用,不要修改文件。
# 示例:限定任务范围
只修改 src/api 目录下和订单查询相关的逻辑,不要调整 UI。
这里的重点不是具体工具,而是工作方式:先理解,再计划,再小步修改。
4. Aider
Aider 是比较经典的终端 AI pair programming 工具,适合和 Git 配合使用。它比较适合有明确目标的小步开发,比如:
-
修改某个函数;
-
修复一个测试失败;
-
重构一段重复逻辑;
-
解释一组代码变更。
Aider 的一个好处是比较贴近“结对编程”的感觉。你可以明确告诉它哪些文件需要参与上下文,减少它在整个项目里乱找信息。
5. Cline / OpenCode / Crush
这类工具可以理解为开源或轻量化的 AI 编程 Agent。它们适合想尝试不同模型、不同 IDE 或终端体验的开发者。
实际选择时,我建议重点看三点:
-
是否能清楚展示它要改什么;
-
是否方便接入项目上下文;
-
是否能配合测试、终端、Git 使用。
如果只是聊天生成代码,不一定适合真实项目。真正进入工程开发,最重要的是可控、可回滚、可验证。
二、用 AGENTS.md 给 AI 一份“项目说明书”
很多 AI 写代码翻车,不是模型不会写,而是不知道项目规则。
比如它不知道:
-
项目怎么启动;
-
测试命令是什么;
-
哪些目录不能改;
-
命名风格是什么;
-
API 调用规范是什么;
-
提交前要检查哪些内容。
这时可以在项目根目录放一个 AGENTS.md 文件,把这些规则写给 AI Coding Agent 看。可以把它理解为“写给 AI 的 README”。
一个简单示例:
# AGENTS.md
## 项目说明
这是一个前端管理后台项目,主要技术栈是 React + TypeScript。
## 常用命令
- 安装依赖:npm install
- 本地启动:npm run dev
- 运行测试:npm run test
- 代码检查:npm run lint
## 修改规则
- 不要直接修改 package-lock.json,除非明确需要变更依赖。
- 不要改动 public/config 目录下的生产配置。
- 新增接口请求时,优先复用 src/api 中已有封装。
- 修改组件时,需要检查是否影响移动端布局。
## 提交前检查
- 确认 npm run lint 通过。
- 确认相关测试通过。
- 总结修改文件和修改原因。
这类文件的价值不在于写得多,而在于把项目里“开发者默认知道的规则”显性化。AI 不会自动知道你的团队习惯,必须把约束写出来。
三、用 CLAUDE.md 约束 Agent 行为
如果主要使用 Claude Code,可以再准备一个 CLAUDE.md。它更偏向于约束 Claude 在项目里的行为方式。
例如:
# CLAUDE.md
## 工作原则
- 在修改代码前,先阅读相关文件并说明理解。
- 对非简单任务,先给出修改计划,再开始动手。
- 每次只围绕一个明确目标修改,不做无关重构。
- 不确定时先提问,不要猜测业务规则。
- 修改完成后,说明改动点、影响范围和需要人工检查的地方。
## 代码修改要求
- 优先做最小修改。
- 不要删除已有注释,除非注释已经明显错误。
- 不要擅自调整目录结构。
- 不要引入新依赖,除非说明必要性。
## 测试要求
- 能跑测试时,优先运行相关测试。
- 测试失败时,先分析失败原因,不要反复盲改。
这种配置的作用,是把 AI 从“积极生成代码”拉回到“谨慎完成任务”。对于真实项目来说,谨慎比速度更重要。
四、Superpowers:给 Coding Agent 加一套开发方法论
Superpowers 的思路不是单独生成某段代码,而是给 coding agent 增加一组可组合的 skills,让 Agent 在开发过程中更有章法。
它适合解决的问题是:AI 很会写代码片段,但不一定会按软件工程流程做事。
例如一个比较合理的流程可能是:
-
先理解需求;
-
找到相关代码;
-
写一个小的实现计划;
-
修改最小范围代码;
-
补测试或运行已有测试;
-
做一次 review;
-
总结改动和风险。
这和普通 prompt 的区别在于,普通 prompt 往往只描述结果,而 skills 会让 Agent 在过程中按步骤行动。
适合使用 Superpowers 的场景:
-
需求不是一两行代码能解决;
-
涉及多个文件;
-
需要拆任务;
-
需要 review 和测试;
-
希望形成比较固定的 AI 编码工作流。
如果只是改一个错别字、补一个简单判断,就没必要上复杂流程。
五、andrej-karpathy-skills:用一份 CLAUDE.md 减少常见翻车
andrej-karpathy-skills 本质上是一份面向 Claude Code 的行为指南,目标是减少 LLM coding 中常见的错误。
它比较适合拿来做参考,而不是原样照搬。比如其中一些思路可以提炼成自己的项目规则:
-
不要过早写代码;
-
先理解上下文;
-
保持小步修改;
-
对复杂任务保持谨慎;
-
不要为了完成任务而忽略测试;
-
对不确定的业务逻辑不要擅自猜。
这类规则看起来简单,但非常实用。AI 编码最大的问题往往不是不会写,而是太快动手、太自信、改动范围太大。
六、Context7:解决“AI 写旧 API”的问题
AI 写代码时,一个很常见的问题是使用过时 API。
比如前端库、后端框架、SDK 版本变化很快,如果模型记忆里的知识比较旧,就可能生成已经废弃的写法。
Context7 的定位就是把最新的、版本相关的文档和代码示例放进 LLM 上下文。简单来说,它解决的是“AI 参考资料不够新”的问题。
适合场景:
-
Next.js、React、Vue、NestJS 等框架升级;
-
SDK 版本变化频繁;
-
第三方库 API 不熟;
-
需要根据官方文档写代码;
-
AI 经常生成不存在的方法。
使用这类工具时,最好在 prompt 里明确说明:
请优先基于当前版本文档生成代码,不要使用旧版本 API。
如果不确定 API 是否存在,请先查文档再写实现。
这比单纯说“帮我写一个功能”更稳。
七、Serena:让 Agent 更懂大型代码库
小项目里,把几个文件发给 AI 就够了。但在中大型项目里,问题会变复杂:
-
函数在哪定义?
-
哪些地方引用了这个方法?
-
改一个类型会影响哪些模块?
-
这个类和其他类是什么关系?
-
应该在什么位置插入代码?
Serena 的价值在于给 AI Agent 提供更接近 IDE 的语义级能力,比如代码检索、编辑、重构、调试等。它不是简单把整个项目塞给模型,而是帮助 Agent 按代码结构理解项目。
适合场景:
-
老项目维护;
-
大型代码库定位问题;
-
多文件重构;
-
需要按符号、引用关系查代码;
-
不希望 AI 只靠全文搜索猜测。
如果项目已经比较大,上下文管理会变得很关键。此时比起“把所有代码都给 AI”,更好的方式是让 AI 找到真正相关的部分。
八、Repomix:把代码仓库整理成 AI 友好的上下文
Repomix 适合做代码审查、项目分析、重构评估这类任务。它可以把本地或远程代码仓库打包成适合 AI 阅读的格式,比如 Markdown、XML、JSON 或纯文本。
比如可以用于:
-
让 AI 快速理解项目结构;
-
让 AI 做代码质量分析;
-
让 AI 帮忙写项目说明文档;
-
让 AI 分析技术债;
-
给不支持直接读取仓库的模型提供上下文。
示例命令:
# 输出为 markdown 格式
repomix --style markdown
# 输出为 json 格式
repomix --style json
需要注意的是,不要把包含密钥、内部配置、客户数据的代码直接打包给外部模型。使用前最好先检查 .env、配置文件、证书、日志等敏感内容是否被排除。
九、Playwright MCP:让 AI 参与前端页面验证
很多前端 bug,只看代码不够,还要打开页面看实际效果。
Playwright MCP 可以让 AI Agent 通过浏览器自动化能力和网页交互。它适合用于:
-
复现页面 bug;
-
检查按钮点击流程;
-
验证表单提交;
-
做简单端到端测试;
-
辅助生成 Playwright 测试脚本。
比如可以让 Agent 做这样的任务:
请打开本地页面,复现“点击提交按钮后没有提示”的问题。
先观察页面行为,再判断可能原因,不要直接修改代码。
前端开发里,AI 最大的短板之一是“看不到页面实际运行效果”。浏览器自动化工具可以在一定程度上补上这个缺口。
十、Chrome DevTools MCP:辅助前端调试
Chrome DevTools MCP 适合做更偏调试类的工作,比如:
-
查看控制台报错;
-
分析网络请求;
-
检查页面性能;
-
查看 DOM 状态;
-
辅助定位前端问题。
但这类工具也要注意边界。它会让 AI 接触浏览器中的信息,所以不建议在已经登录个人账号、后台系统、生产系统的浏览器环境里随便使用。更稳妥的做法是准备单独的测试环境和测试账号。
十一、Spec Kit:不要只 Vibe,复杂任务先写规格
Vibe Coding 很适合快速尝试,但复杂任务不能只靠“感觉写代码”。
如果是一个新功能,最好先写清楚规格:
-
用户要完成什么;
-
输入输出是什么;
-
有哪些边界条件;
-
涉及哪些页面和接口;
-
哪些情况要报错;
-
如何验收;
-
要不要补测试。
Spec Kit 代表的是 Spec-Driven Development,也就是先写规格,再让 AI 根据规格实现。它比较适合中大型功能、多人协作或需要长期维护的项目。
一个简单规格可以这样写:
# 功能:订单状态筛选
## 目标
用户可以在订单列表页按订单状态筛选数据。
## 状态范围
- 全部
- 待支付
- 已支付
- 已取消
## 交互规则
- 默认展示全部订单。
- 切换状态后重新请求列表接口。
- 请求失败时展示错误提示。
- 筛选条件需要保留在 URL query 中。
## 验收标准
- 状态切换正确。
- 刷新页面后筛选状态不丢失。
- 接口失败时有错误提示。
- 不影响原有分页逻辑。
把需求写到这个程度,AI 生成的代码通常会稳定很多。
十二、Taskmaster / BMAD-METHOD:把需求拆成任务再交给 AI
如果一个需求比较大,不建议直接让 AI 一次性完成。
更好的方式是先拆任务:
-
阅读需求;
-
拆分模块;
-
确定每个任务的输入输出;
-
先完成最小可运行版本;
-
再补测试、异常处理和文档;
-
最后做 review。
Taskmaster、BMAD-METHOD 这类工具或方法,适合帮助开发者把需求拆成更小的开发任务。它们不一定适合所有人,但背后的思路值得借鉴:不要让 AI 一次性吞下整个需求。
十三、我的一个推荐组合
如果只是想开始尝试,不需要一次性安装所有工具。可以先从这个组合开始:
轻量组合
适合个人项目、小脚本、小型前端项目:
-
Claude Code / Codex CLI / Gemini CLI 任选一个;
-
AGENTS.md;
-
Repomix;
-
Git diff 人工 review。
中等项目组合
适合已有项目维护:
-
Claude Code 或 Cline;
-
AGENTS.md + CLAUDE.md;
-
Context7;
-
Serena;
-
Playwright MCP;
-
单元测试 / E2E 测试。
复杂功能组合
适合新功能开发或多人协作:
-
Spec Kit;
-
AGENTS.md;
-
Superpowers;
-
Context7;
-
Serena;
-
Playwright MCP;
-
人工 code review。
这三个组合的区别不在于“哪个更高级”,而在于任务复杂度不同。小任务不要流程过重,大任务不要只靠一句 prompt。
十四、使用 AI 写代码的几个注意事项
最后补几个比较实际的经验。
1. 不要把生产权限交给 Agent
不要让 AI 直接连接生产数据库、生产后台、真实用户数据。AI 可以辅助写代码,但不应该绕过开发、测试、审核流程。
2. 每次只让 AI 做一个明确任务
比如:
请修复登录按钮重复提交的问题。
只修改登录表单相关代码,不要重构其他模块。
不要这样写:
帮我优化整个系统。
范围越大,失控概率越高。
3. 让 AI 先读代码,再写代码
一个比较稳的 prompt 是:
先阅读相关文件,说明你对当前实现的理解。
不要修改代码。
等我确认后,再给出修改方案。
这一步可以过滤掉很多误解。
4. 保留 Git diff review
AI 改完代码后,一定要看 diff。重点看:
-
有没有改无关文件;
-
有没有删除已有逻辑;
-
有没有引入新依赖;
-
有没有硬编码;
-
有没有绕过异常处理;
-
有没有影响安全逻辑。
5. 测试不能省
AI 生成代码不等于代码正确。至少要跑:
-
lint;
-
单元测试;
-
相关接口测试;
-
前端关键流程测试;
-
必要时手工验证。
总结
Vibe Coding 的核心不是“让 AI 替你写完所有代码”,而是把 AI 放进一个更可控的开发流程里。
比较稳定的思路是:
-
用 Coding Agent 负责执行;
-
用 AGENTS.md / CLAUDE.md 说明项目规则;
-
用 Superpowers / Skills 约束工作流程;
-
用 Context7 解决文档和 API 时效问题;
-
用 Serena / Repomix 管理代码上下文;
-
用 Playwright MCP / Chrome DevTools MCP 做前端验证;
-
用 Spec Kit 把复杂需求先规格化;
-
最后用测试和人工 review 收口。
工具本身会不断变化,但这套思路相对稳定:
先给上下文,再给规则;先拆任务,再写代码;先跑验证,再合并结果。
这样使用 AI 写代码,体验会比单纯“丢一句需求给模型”稳定很多。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)