我给 AI 做了场入职培训

AI 这个"员工"我也是下定决心给他好好培训一下了。

败家子 AI

起因是我发现之前的一些项目都是 AI 写的,但是都是通过单点提效的方式生成的,导致各个文件之间没有规范,且重复的逻辑也相当多,一个维护了3-4个月项目,他的项目体量也是相当大,最关键的是连原始需求都丢了,导致让 AI 去改动都出了不少问题。

麻烦的事来了,这些烂摊子都交到了我的手上,而当我想让 AI 增加功能的时候,我发现一个 258K 的上下文,一轮对话就能消耗 18% 左右,这不是花钱如流水嘛~

而最大的问题是出在多轮对话上。按照这个消耗的速度,平均 5-6 轮对话就需要压缩一次上下文,一旦压缩上下文后,就会出现 AI 容易把之前的一些需求细节给忘了,导致多次返工,项目还越改越失控~

所以我决定要最大程度的改变一下这个现状,否则养着这么个"败家子",那地主家也没有余粮啊!

skills 的诞生

如果要让 AI 能理解好我每一个项目,势必需要一个 Skills 来帮助它生成文档,当它需要了解项目的时候就从文档中去读取,并且给他划好边界,做好方案文档,免得到时候多轮对话后忘记了我们的原始需求。

好了,现在这个 Skills 的核心功能已经有了,下面就需要考虑生成什么样的文档才能帮助 AI 更好的理解项目,理解需求。

首先第一个就是入口文件 AGENTS.md,这是项目级 AI 的协作规则,让 AI 进入这个项目后,第一眼就知道应该读什么,哪些事能做,哪些事不能乱做。

第二个 docs/architecture.md 解决的是:这个项目的技术栈、目录边界、核心模块、数据流和高风险链路是什么。

第三个 docs/runbook.md 解决的是:这个项目怎么启动、怎么测试、怎么构建、怎么排错。

第四个 docs/specs/ 解决的是:中高风险需求不要直接开改,先把目标、非目标、影响范围和验收标准写清楚。

第五个 docs/decisions/ 解决的是:重要技术决策要留下原因,不要让后来的 AI 只看到结果,看不到当时为什么这么选。

这样设计的重点不是为了生成的文档好看,而是为了减少 AI 的猜测空间。

AI 要解决的是后续开发里最关键的几个问题:

这个项目怎么跑?

哪些地方是核心链路?

哪些文件修改前必须先读?

哪些逻辑不能凭感觉动?

改完之后用什么命令验证?

需求边界不清时,应该先写方案还是直接改代码?

这些问题如果不提前靠文档解决掉,后面每一次开发都会重新付费,付 token,付时间,也付返工成本。

文档能有用吗

有些人可能觉得 Skills 貌似是个很高级的东西,应该有很多脚本、命令,只靠生成一些文档能有作用吗?

其实完全不是这样,文档只是输出形式,重要的是解决如何让 AI 在行动前知道边界的问题。

当然很多人会对文档这个形式产生质疑我也是能够理解的,因为很多人都很讨厌写文档,尤其是程序员,毕竟程序员最讨厌的四件事就是:写文档,写注释,别人不写文档,别人不写注释。

但是吧,我想说给 AI 用的文档,和给人看的汇报文档不是一回事。

一个没有边界的 AI,很容易把积极理解成扩大范围。

一个没有上下文的 AI,很容易把重构当成顺手优化。

一个没有项目记忆的 AI,很容易在多轮对话后忘掉最初的需求。

所以我写的 project-onboarding 这个 Skills 的核心,就是为了让 AI 把项目中最影响后续协作的部分固定下来。

它不需要记住每一行代码。

它只需要知道哪里危险,哪里稳定,哪里可以扩展,哪里需要先确认。

这才是项目级 AI 协作的基础设施。

用上 Skills 后有什么变化

我也对比了一下没有 project-onboarding 生成文档之前的项目和生成文档之后的项目,结果的差异性还是比较明显的。

当我让 AI 增加一个支付的 Provider 的时候,AI 会先识别这是高风险改动,然后追问 Provider 的接入方式、回调处理、环境变量、验收标准。方案确认后,它会先写进 docs/specs/,再按方案实施,最后根据 docs/runbook.md 做验证。

这个时候 AI 就不再是凭感觉工作,而是在项目约束里工作。

当然它仍然会犯错,但错误会更容易被限制在一个范围内。

让然它仍然需要读取上下文,但不会每次都从零开始。

当然它仍然需要人来判断方向,但人不用一直重复解释基础背景,并且告诉他上一轮对话的结果是什么。

我们暂时也没办法把 AI 变成一个万能工程师,但是通过这个 Skills 至少能让它从一个临时外包,变成一个知道项目规矩的协作者。

AI 还有更多的潜力

所以当项目越来越复杂的时候,AI 能不能帮上忙,不只取决于它有多聪明,也取决于你有没有给它建立一套工作秩序。

它不一定马上变成王牌工程师。

但至少,稍微给它做个入职培训,别再让它每次都像第一天上班一样。

相关推荐
玩嵌入式的菜鸡2 小时前
网页访问单片机设备---基于mqtt
前端·javascript·css
前端一小卒2 小时前
我用 Claude Code 的 Superpowers 技能链写了个服务,部署前差点把服务器搞炸
前端·javascript·后端
滑雪的企鹅.3 小时前
HTML头部元信息避坑指南大纲
前端·html
一拳不是超人3 小时前
老婆天天吵吵要买塔罗牌,我直接用 AI 2 小时写了个在线塔罗牌
前端·ai编程
小兵张健5 小时前
30天减20斤挑战:少一斤发100红包(4)
程序员
excel5 小时前
如何解决 Nuxt DevTools 中关于 unstorage 包的报错
前端
Rust研习社5 小时前
使用 Axum 构建高性能异步 Web 服务
开发语言·前端·网络·后端·http·rust
C澒5 小时前
AI 生码 - API2Code:接口智能匹配与 API 自动化生码全链路设计
前端·低代码·ai编程
浔川python社6 小时前
HTML头部元信息避坑指南技术文章大纲
前端·html