你的AI助手是不是也这样:昨天刚纠正的错误,今天照犯不误;上周敲定的代码规范,这周忘得一干二净。一位把Claude Code当" entire engineering team(完整工程团队)"用的开发者,花了三周时间做了件狠事——不是换工具,是给工具"长记性"。

他最终写了23条技能规则。效果?用他自己的话说,"像从跟实习生配对,变成了跟资深工程师合作"。

痛点:AI的"金鱼记忆"工程灾难

痛点:AI的"金鱼记忆"工程灾难

Pharaoh(化名)的日常开发流程几乎完全托管给Claude Code。写代码、调试、重构、审计——全包。但有个致命bug始终修不好:每次新开对话,AI就"失忆"。

昨天刚教的教训,今天归零。 codebase(代码库)的上下文、架构决策、个人偏好,全部蒸发。

他举了个具体例子。某次让Claude重构一个模块,AI顺手把错误处理逻辑删了——因为"看起来没用到"。Pharaoh纠正:这里的错误处理是防御性设计,删了会埋雷。下次对话,Claude又删了。第三次,还删。

"不是它蠢,是它真的没有记忆。"

这像极了带实习生:你讲一遍,他点头;第二天同样的问题,再问一遍。区别在于,人类实习生会成长,AI不会——除非你把"成长"写进它的系统提示里。

解法:把"经验"变成可加载的技能

解法:把"经验"变成可加载的技能

Pharaoh的解决方案叫"Skills(技能)"——Claude Code支持的一种持久化指令系统。简单说,就是把那些反复出现的教训、规范、偏好,写成结构化规则,让AI每次启动时自动加载。

他花了三周迭代,最终沉淀出23条技能。分类很务实:

代码风格类:比如"永远用显式错误处理,不要隐式忽略";"异步函数必须带超时机制"。

架构决策类:比如"这个项目的ORM用Prisma,不许换";"微服务边界按业务域划分,别按技术层"。

个人偏好类:比如"变量命名用camelCase,但数据库字段用snake_case";"注释要说明为什么,而非做什么"。

每条技能都是"触发条件+具体动作"的格式。不是泛泛的"写干净的代码",而是"遇到Promise时,检查是否处理了rejection;如果没处理,补try-catch或.catch()"。

Pharaoh打了个比方:以前AI是"每次考试都带空白脑子进考场",现在是"允许带一张自己整理的作弊小抄"。

效果:从"实习生"到"资深工程师"的体感差异

23条技能上线后,变化是渐进的,但某个时刻突然质变。

Pharaoh注意到,Claude开始主动引用技能里的规则。比如他让加个API端点,AI回复:"根据技能#7,这个端点需要 rate limiting(速率限制);根据技能#12,认证中间件要放在路由层而非控制器层。"

更意外的是"负向能力"——AI开始知道什么不该做。以前它热衷于"优化",把别人写的代码改得面目全非;现在它会问:"这段代码虽然看起来冗余,但技能#3提到这是兼容旧版本的补丁,要保留吗?"

开发节奏变了。以前30%时间在纠正AI,现在10%不到。省下的精力,Pharaoh用来写更多技能——形成正向循环。

他对比了前后两个月的代码提交记录。同样复杂度的功能,迭代轮次从平均4.2轮降到1.7轮。不是AI变聪明了,是"上下文"终于能跨会话存活了。

启示:Prompt工程的下一代是"上下文工程"

启示:Prompt工程的下一代是"上下文工程"

这件事的微妙之处在于,Pharaoh没碰模型本身。Claude 3.5 Sonnet还是那个模型,能力边界没变。变的是"输入质量"——通过结构化、持久化的上下文,把通用AI调教成领域专家。

这指向一个被低估的事实:当前AI的瓶颈往往不是"推理能力",而是"记忆管理"。

人类工程师的价值,一半在写代码,一半在"知道什么情况下该用什么模式"。这些隐性知识以前没法传给AI,因为每次对话都是孤岛。Skills系统(以及类似的OpenAI Custom Instructions、Cursor Rules)本质上是在造"记忆接口"。

Pharaoh有个观察:23条技能里,真正高频触发的只有8条左右。但他坚持保留全部——因为"低频但关键"的规则,恰恰是AI最容易踩坑的地方。比如那条"生产环境禁用console.log,必须用结构化日志",一年可能只救一次场,但救的是生产事故。

他最后补了一句:这23条还在进化。每发现一个新错误模式,就评估是否值得写成技能。"我的目标是让Claude犯的错误,都是我还没遇到过的。"

你的AI助手今天犯了什么昨天教过的错?如果只能写一条"技能"让它记住,你会从哪条开始?