150+ 技能精简到 52 个,一次 AI Agent 技能体系的「断舍离」
下午花了点时间,把 OpenClaw 上的技能库搬到了 Codex。不是简单的复制粘贴——150 多个技能里,真正值得留下的只有 52 个。剩下的,要么功能重叠,要么早已过时。
这篇文章记录整个搬家过程:怎么盘点、怎么分批、踩了什么坑、最终留下了什么。
为什么要搬?
OpenClaw 是我自建的 AI Agent 平台,跑了大半年,技能越攒越多,到 150+ 的时候出了问题:
- 选择困难:每次让 Agent 干活,它要在 150 个技能里挑,经常挑错
- 维护成本:技能之间依赖关系乱如麻,改一个崩一片
- 启动变慢:技能列表太长,上下文窗口吃紧
Codex 的技能机制更简单——一个目录、一个 SKILL.md、一段 YAML frontmatter。没有复杂的依赖声明,没有运行时注册。技能就是文档,文档就是技能。
简单,就是优势。
搬家前的盘点
搬家之前先做了一次「大扫除」。OpenClaw 的技能分散在两个目录:
~/.openclaw/workspace/skills/:主力目录,120+ 个~/.openclaw/skills/:早期实验,30+ 个
很多技能是同一功能的多个版本,比如股票分析就有 4 个不同版本。内容创作类更是重灾区——写作、润色、排版、SEO,每个环节都有两三个技能在竞争。
盘点结论:真正独立、有价值的技能不到 60 个。
五批搬家策略
没有一口气全搬,而是分成五批,按优先级逐批迁移:
第一批:工具类(10 个)
最基础的能力——文件转换、图片生成、drawio 画图、joke 讲笑话。这些是 Agent 的「手脚」,先搬。
第二批:内容创作(12 个)
写作、调研、文案、编辑、SEO、站点架构。合并了重复项,比如原来有三个写作技能,最后只留了一个 content-research-writer。
第三批:LeisureLinux 专用(5 个)
公众号写作计划、排版引擎、Markdown 转微信文章、去 AI 痕迹。这些是公众号生产线的核心。
第四批:阅读与学习(8 个)
微信读书、电子书下载、找书、NotebookLM、费曼学习法。知识输入链路。
第五批:金融分析(17 个)
A 股技术分析、东方财富数据、同花顺系列(行情/财务/行业/基金/期货/可转债/ETF 筛选)。这是最大的一批,也是最有价值的一批。
踩坑记录坑一:YAML frontmatter 缺失
搬过来之后,Codex 报了四个警告:
⚠ diary-writer/SKILL.md: missing YAML frontmatter delimited by --- ⚠ ebook-download/SKILL.md: missing YAML frontmatter delimited by --- ⚠ find-the-book/SKILL.md: missing YAML frontmatter delimited by --- ⚠ markdown-to-wechat-article/SKILL.md: missing YAML frontmatter delimited by ---
Codex 要求每个 SKILL.md 必须以 —— 包裹的 YAML frontmatter 开头,包含 name 和 description 字段。OpenClaw 没有这个要求。
修复很简单——给每个文件加上:
name: diary-writer description: 一个简单的日记记录系统...
四个文件,两分钟搞定。但如果不修复,Codex 就不会加载这些技能。
教训:不同平台对「技能」的定义不同,搬家不是复制文件,是适配协议。
坑二:技能描述太长
有些 OpenClaw 技能的描述写了几百字,Codex 的技能列表会把所有描述加载到上下文里。描述太长,直接挤占有效 token。
解决:每个技能的 description 压缩到 1-2 句话,说清楚「什么时候用」就行。
坑三:路径依赖
OpenClaw 的技能经常引用 ~/.openclaw/workspace/ 下的脚本和配置。搬到 Codex 后路径全变了。
解决:把依赖的脚本也搬过来,或者改成相对路径。对于公众号发布脚本 wechat_draft_api.py,它跑在 wpad.lan 上,本地只需要知道调用方式就行。
搬家后的成果
最终 Codex 里留下 52 个技能,按类别分布:
| 类别 | 数量 | 代表技能 |
|---|---|---|
| 工具类 | 8 | drawio-generator, md-to-image, x2md |
| 内容创作 | 10 | content-research-writer, copywriting, humanizer-zh |
| LeisureLinux | 5 | leisurelinux-writing, gzh-design, markdown-to-wechat-article |
| 阅读学习 | 6 | 微信读书, ebook-download, feynman-learning |
| 金融分析 | 17 | hithink-* 系列, stock-analysis, eastmoney-stock |
| 企业微信 | 6 | wecomcli-* 系列 |
从 150+ 到 52,砍掉了 2/3。但实际能力没缩水——因为砍掉的都是重复和低价值的。
几点反思
1. 少即是多
技能不是越多越好。Agent 的选择能力和人类一样——选项太多反而决策瘫痪。52 个技能,每个都有明确的触发场景,Agent 用起来反而更准。
2. Frontmatter 很重要
看似形式主义的 YAML 头,实际上是技能的「身份证」。没有它,Codex 不知道这个技能叫什么、什么时候该用。写技能的时候,先想清楚 description,这比写正文更重要。
3. 分批迁移是对的
一口气搬 150 个技能,出了问题根本没法排查。分五批,每批验证通过再搬下一批。遇到问题也能快速定位是哪一类的问题。
4. 搬家是重构的好时机
不是把所有东西原封不动搬过去,而是借机清理、合并、精简。这才是「搬家」的真正价值——不是换个地方堆东西,是换个活法。
下一步
52 个技能已经就位,接下来要做的是:
- 给每个技能写测试用例,确保触发条件准确
- 建立技能版本管理,跟踪每次修改
- 定期复盘,砍掉不再使用的技能
AI Agent 的技能管理,本质上和代码仓库管理是一样的——持续集成、持续清理、持续进化。
━━━ ━━━ ━━━
你在管理 AI Agent 技能时遇到过什么问题?是技能太多挑花眼,还是技能之间打架?留言聊聊。