andrej-karpathy-skills的codex适配改造
2026/7/24 11:55:55 网站建设 项目流程

如有错误欢迎指正

前言

andrej-karpathy-skills是什么?

它是以karpathy总结的AI写代码时的缺陷为灵感,开发的一款skill,主要是为了约束AI而制定的一些规则。可以理解为让AI在执行之前需要进行的一些思考,从而提高AI的工作效能。

当使用openspec或者其他的规范驱动开发模式时,这个skill会有较大的帮助(等我走完openspec流程之后再详细写一篇哈哈哈哈)。但是从我的观察来看,这个skill目前好像没有支持codex,所以打算自己尝试把它接入到codex中,其实没什么难的,但是可以通过这个来理解一个skill它需要什么。(看来还是claude code的适配度更好啊~~)

如果有兴趣可以去官方仓库看看https://github.com/multica-ai/andrej-karpathy-skills

如何在codex开发一款skill

对于所有的AI工具,无论是claude code还是codex,识别一个skill的条件就两个:目录+格式。skill目录要放在官方定义的skill目录中,其次就是skill内部结构也要符合官方定义,只有这两个条件满足了,这个skill才能被正确识别。

目录要求

对于codex来说,skill存放的目录在$CODEX_HOME/skills/(如果配置了$CODEX_HOME)~/.codex/skills/

对于skills的目录位置可以看这篇文章Claude Code、Codex、OpenCode 对 Skills 的支持现状对比

我就没有配置$CODEX_HOME,所以我的skills应该放在C:\Users\用户名\.codex\skills这个文件夹下。

如果你安装了codex,打开这个目录会发现这个文件夹。

这个文件夹中存放的skill是官方skill,我们自己的skill跟这个文件夹是平级的。如下图。

skill结构要求

对于几乎任何AI工具来说,SKILL.md都是必须的,当AI工具启动时会去读取skills目录,然后会去读取SKILL.md文档。所以当有新skill时,如果想让AI工具加载skill,必须重启这个AI工具。

这个文档中定义了这个skill的name,description以及skill的整个工作流。

  • name:skill的名字,使用小写字母、数字和连字符(-),这里要注意name要和文件夹的名字一样。比如父目录名是qwer-qwer,那么name也必须是qwer-qwer。
  • description:用于精确描述skill的作用,codex会根据这个决定何时调用这个skill。

所以可以说在改造的时候加上一个SKILL.md就可以了。但是因为后续想要在openspec模式下使用这个skill,还需要加上自己的工作流和公司的一些规范,所以这里不单单是只需要一个SKILL.md文档。

虽然理论上只有一个SKILL.md文档就可以了,但是一般codex的skill都具有如下的结构。

│ README.md │ SKILL.md │ ├─agents │ openai.yaml//补充 UI 展示名称、调用策略和工具依赖声明 │ └─references//按需读取的长文档或者其他规则

实践记录

理论具备,开始实践。

skill结构

首先先从官方仓库下clone或者fork一份andrej-karpathy-skills,其实不fork也行,因为这个andrej-karpathy-skills最关键的就是那一份claude.md文档,直接拷贝下来另存为principles.md即可(这个名字随便)。因为我后续还要加上自己的工作流,所以没有直接将其命名为SKILL.md,如果没有额外的需求,到这里这个skill就已经适配codex了(是不是很简单~~),可以直接跳到验证部分。

不过我还是建议不要直接命名为SKILL.md,方便后续扩展。

另存为principles.md之后,将其放到references目录下,这个目录下还可以放其他的规则文件,比如personal.md用来定义自己开发时的一些固定规则,company.md可以放一些公司的规则等等,只要在SKILL.md中定义清楚什么情况下需要去遵循这些规则就行。比如说开发时必须遵循personal.md这个规则,使用公司组件时遵循company.md规则(这里可以结合MCP使用,后续开发好MCP后还会出文章,这里可以忽略)。但是要注意skill不要超出token上下文窗口。

这些要求比如说使用规则的时机,文件的名字都可以直接丢给codex,让它按照codex的skill的标准结构生成就行,最后生成的目录如下。

│ README.md │ SKILL.md │ ├─agents │ openai.yaml │ └─references company.md examples.md personal.md principles.md

验证

在codex终端输入/karpthy-guidelines或者$karpthy-guidelines,可以识别到就说明skill接入成功了。但是后续这个skill的效果还需要在使用的过程中不断的调整。

一些小tips

软链接

当我们本地开发完一个skill后,可能需要它可以在不同的AI工具上使用,但是每次都将其复制到不同的skills目录下比较麻烦,后续同步skills功能也比较麻烦,这个时候我们就可以使用软链接的方式,这样skill在本机中其实只有一份,但是不同的工具都可以访问到这个skill。

不过我在实践中发现在进行链接的时候最好使用New-Item(如下)来链接,不然codex可能识别不到。

New-Item -ItemType Junction ` -Path "C:\Users\Administrator\.codex\skills\karpathy-guidelines" ` -Target "D:\mydearagent\skills\andrej-karpathy-skills-gj\skills\karpathy-guidelines"

使用cdoex cli

当使用codex桌面端进行开发时,有些问题可能不会显示出来,而使用codex cli进行开发时会把错误打印出来。就比如在重启加载skill时,桌面端可能并不会有什么反应,而使用cli就可能会报如下的错误,一眼就能看出问题出在哪里。

⚠ Skipped loading 1 skill(s) due to invalid SKILL.md files. ⚠ D:\mydearagent\skills\andrej-karpathy-skills-gj\skills\karpathy-guidelines\SKILL.md: missing YAML frontmatter delimited by ---

看官方

刚开始学习时,在网络上找的学习文章真的会看的一脸懵逼,因为这些文章可能对于初学者来说确实不好理解,这个时候我们就要去看官方怎么说。就比如skill的结构,我也有在github上找到andrej-karpathy-skills对于codex的适配方案,但是是以plugin的形式,越看越😵。这个时候就可以去看官方已经支持的skill,它们绝对是最标准的版本。或者使用skill-creator这个skill来创建一个skill,它创建出来的结构也是最标准的版本。
这里放上官方skill的仓库GitHub - openai/skills: Skills Catalog for Codex · GitHub

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询