我不再追求写出更好的提示词,我开始设计更好的 AI 技能。
过去两年,人们一直痴迷于提示工程(prompt engineering)。他们希望通过更好的提示词来获得更好的回复。
在与 AI 编程智能体(AI coding agents)合作后,我意识到了一些不同的东西。未来不在于更好的提示词,而在于设计可复用的 AI 能力。
Claude Skills 就代表了这种转变。
我们经常编写很长的提示词。你告诉 AI 扮演架构师,告诉它使用 TypeScript,告诉它编写测试。它确实能很好地工作一次,但明天你还得再次粘贴那段冗长的文本。最终,你的提示词会变成一份 700 行的文档。没人想去维护那种东西。
不要每次都告诉 AI 该如何工作。将这些知识封装起来,一次即可。
一个提示词只适用于一次对话。而一个技能(skill)可以适用于无限次的对话。
最好的技能遵循软件工程原则。
- 糟糕的技能:辅助开发。
- 优秀的技能:从 PDF 表单中提取结构化数据。
一个优秀的技能应该只做好一件事情。
不要试图用一个巨大的文件处理所有事情。要拆分职责。使用参考文件和脚本。这就像软件中的“懒加载”(lazy loading)。AI 仅在需要时才加载上下文。
不要让 AI 去做那些代码处理得更好的工作。
- AI 应该负责推理。
- 代码应该负责计算。
不要让 AI 去解析 PDF,请使用解析器。不要让 AI 去计算数值,请运行 Python。不要让 AI 去排序数据,请执行脚本。
使用“渐进式披露”(progressive disclosure)。不要在实习生的第一天就给他一本 500 页的手册。先给他一页。只有当他需要时,再给他更多。
这会带来:
- 更快的响应速度
- 更低的 Token 消耗
- 更集中的注意力
- 更少的幻觉
许多开发者试图构建一个“超级提示词”。他们希望一个提示词就能构建网站、编写后端并修复 Bug。这是糟糕的设计。这就像编写一个承担所有职责的单一类(class)。
更小、更专注的技能效果更好。
如果你无法用一句话解释一个技能的用途,说明它的职责过重了。
我们正在从“构建软件”转向“设计行为”。我们的新技术栈如下:
- Frontend(前端)
- Backend(后端)
- AI Agent(AI 智能体)
- Skills(技能)
- Tools(工具)
技能并不会让 AI 实现自主。它们封装了专业知识。你仍然负责决定架构、安全性和质量,而技能则是将这些决策封装起来。
提示工程教会了我们如何提问。技能工程(Skill engineering)则教会了 AI 如何解决问题。
AI 领域的赢家将不仅仅拥有最聪明的模型,他们还将拥有最优质的可复用知识库。
Optional learning community: https://t.me/GyaanSetuAi
