skills装多了反而变笨

装的 skills 越多,该用的那个越容易被挤出清单

配置教程

📖 项目简介

这不是一个要下载的项目。Codex 开工前会把已安装 skills 的名字、介绍和路径放进一份清单,挑中某一个,才去读它的 SKILL.md 全文。这份清单最多占模型上下文的 2%;上下文长度未知时,上限是 8000 个字符。

skills 一多,Codex 先把介绍砍短;再多,就把一部分 skills 整条从清单里拿掉,并在界面上给一行警告。介绍被砍掉关键触发词之后,你明明装了专门做这件事的 skill,它也会自己从头做。

项目目录、用户目录和系统自带的 skills 都会算进同一份清单。两个 skill 同名时不会合并,清单里会出现两份。下面四步是官方文档里的关法,不用删文件。

✨ 核心亮点

📏
清单只占 2%
开工前的 skills 清单有硬上限,不会把每个 SKILL.md 全文塞进上下文。
✂️
先砍介绍,再拿掉整条
装得越多,介绍越短。超限后一部分 skills 直接不出现在初始清单里。
⏸️
关掉不用删
config.toml 里写 enabled = false,重启后这条 skill 不再占清单。
👉
点名就不猜
输入 $ 加 skill 名字,强制调用。不靠被砍短的介绍去匹配。

🧩 它能做什么、输出什么

项目说明
输入已安装的 skills:项目目录、用户目录、管理员目录、系统自带
适用类型skills 越装越多、该触发的 skill 经常不被调用
输出一份变短的清单。挑中后才读取对应 SKILL.md 全文
语言 / 兼容Codex CLI、IDE 扩展、ChatGPT 桌面版里的 Codex
规格 / 容量初始清单 ≤ 上下文的 2%;上下文未知时 ≤ 8000 字符

🖥️ 环境要求

环境建议配置
操作系统Windows、macOS、Linux,跟 Codex 本机安装一致
运行环境已登录的 Codex。改配置后要重启一次
硬件无额外要求,不跑本地模型
低配方案只留常用 skills,其余 enabled = false
关键文件用户目录下的 .codex/config.toml,以及每个 skill 的 SKILL.md、agents/openai.yaml

🚀 如何使用

💡
先用 /skills 看清单,再关掉用不上的,最后把触发词放到介绍最前面。急用时直接 $ 点名。
1

先看自己装了哪些

在 Codex 里输入 /skills。项目里的、用户目录里的、系统自带的都会列出来。同名的会出现两份,不会合并。

codex /skills
2

关掉用不上的,不用删文件

在用户目录的 Codex 配置文件里,按 skill 的 SKILL.md 路径写一条。改完重启 Codex。path 换成你机器上的真实路径。

toml [[skills.config]] path = "/path/to/skill/SKILL.md" enabled = false
3

偶尔才用的,关掉自动调用

在这个 skill 目录里的 agents/openai.yaml 加上 policy。之后只有你点名才会用,不会被一句话误触发。文档没有说这一项会把它移出初始清单,腾地方仍然靠上一步的 enabled = false。

yaml policy: allow_implicit_invocation: false

两个开关的差别:

写法作用
enabled = false这条 skill 不再参与,重启后生效
allow_implicit_invocation: false保留 skill,但只有 $ 点名才调用
4

自己写的 skill,触发词放最前面

介绍会被从后面砍。把「什么时候用」和触发词写在 description 开头,再写一句什么时候不该用。砍短之后,前面那句还在。

markdown --- name: cover-skill description: 做封面时使用。用户要封面、海报、首帧图时触发。不要用来改代码。 ---
5

结合 Codex 使用

在 Codex 输入框里打 $,点这个 skill 的名字。这是显式调用,不依赖被砍短的介绍去猜。

✅
同一句话,清单短的时候会命中该用的 skill;清单被砍短时,它经常自己从头做。

🎯 典型应用场景

🎨
做封面却自己写代码
装了封面 skill,它仍从头画一页。
📦
插件一次性装太多
插件目录里的 skills 也会进同一份清单。
📁
仓库自带一大包
在项目目录里启动,仓库 skills 和用户 skills 叠在一起。
👥
同名出现两份
项目里和用户目录里各有一个同名 skill,清单不合并。
⚠️
警告被划走
descriptions were shortened 那一行就是清单已经不够用。
🎯
只想稳定触发一个
把其余的关掉,或用 $ 直接点名。

📈 清单是怎么被砍的

情况官方规则 / 公开反馈
初始清单上限不超过模型上下文的 2%;上下文未知时 8000 字符
超限时先做什么先缩短每条 skill 的介绍
仍然放不下一部分 skills 不进入初始清单,并显示警告
公开反馈GitHub issue 24299:119 个 skills 里 103 个介绍被砍。那是当时更小上限下的记录,不是现在每台机器都会出现的数字
🧠
挑中某个 skill 之后,仍然会读取它的 SKILL.md 全文。变笨发生在挑选之前,不是读到全文之后。

❓ 常见问题

Q: 和「模型变笨」有什么区别?

模型还是同一个。变的是挑选用哪个 skill 时能看到的介绍。介绍被砍短或整条被拿掉,它就匹配不上。

Q: 关掉自动调用,能腾出清单空间吗?

文档只说 allow_implicit_invocation 为 false 时不会按你的话自动调用,显式 $ 点名仍然可用。腾清单空间用 enabled = false。

Q: 改了 config.toml 没有生效?

path 必须指向那个 skill 的 SKILL.md,并且重启 Codex。配置改动不会在当前会话里立刻生效。

Q: 需要显卡吗?

不需要。这是 Codex 客户端怎么列 skills,不在本机跑模型。

Q: 系统自带的 skill 能关吗?

可以。用 /skills 找到它的路径,同样写一条 enabled = false。不要直接删安装目录里的文件,更新时可能被装回来。

Q: 怎么保证这次一定用到某个 skill?

输入 $ 加上它的名字。这是显式调用,不靠介绍去猜。

Q: 119 个、103 个是官方指标吗?

不是。那是 GitHub issue 24299 里一位用户贴出的日志:当时清单上限更小,119 个 skills 里 103 个介绍被砍。现在的上限是上下文的 2%。数字用来说明「装多了会被砍」,不能当成你机器上的计数。

Q: 可以商用吗?

这里写的是 Codex 自带的配置方法,没有单独的软件包。Codex 本身按你的订阅协议使用。