小红书连载 · 实战记 #01

装了 94 个 AI 技能,一半根本不触发——我的自救全过程

几百个 Claude Code 技能总有一半不触发?先别怪算法——多半是「预算悬崖」让它没看见。诊断到 L0–L5 分层改造,附我自建的路由工具鉴技。

2026-07-10
ClaudeCode AI编程 独立开发 效率工具
装了 94 个 AI 技能,一半根本不触发——我的自救全过程

先说结论:如果你也给 Claude Code 装了一堆 skill,却发现“该用的经常想不起来用”,大概率不是它笨,是它根本没看见

我用一个周末把这事从头查了一遍,还顺手写了个 700 来行的小工具自救。全过程都在这,照着做当天就能见效。

先亮个我自己的数字

我现在装了 94 个 skill。用我自己写的盘点工具跑一下:全部塞进上下文,要吃掉 约 30 万 token

这是什么概念?模型的注意力就那么点,你把 94 份“说明书”一次性怼给它,它当然记不住谁是谁。“经常不加载”的第一现场,其实是可见性,不是匹配。

图2:94 个技能,全装进去要 30 万 token
图2:94 个技能,全装进去要 30 万 token

病灶在两层,别一上来就怪算法

我把症状拆成两层,一层一层对:

  • 第一层·触发:skill 压根没进模型视野。它启动时只读每个技能的一段简介,塞进一个有字符预算的区块,超了的直接被静默丢掉——不报错,你还以为它在。
  • 第二层·路由:就算进了视野、被触发了,模型面对你几十个 md/csv 的裸文件夹,也可能翻错、翻不到。
图3:病灶在两层——看不见 & 匹配不到
图3:病灶在两层——看不见 & 匹配不到

最扎心的一个机制:预算悬崖

我查到 Claude Code 给技能简介留的预算,默认大约只有上下文的 1%(经验值约 16000 字符)。超过这条线的技能,整条被丢弃

社区有个实测特别直观:装了 63 个 skill,系统里只显示 "Showing 42 of 63"——三分之一的技能,模型压根看不见。

更阴的是:预算按累计总量砍。你新加一个啰嗦的技能,可能把另一个挤下悬崖。这就是“加了新技能,老技能反而失灵”的真相。

图4:预算悬崖——一半技能静默掉下去了
图4:预算悬崖——一半技能静默掉下去了

别人怎么解决:三条路,答案很一致

我没闭门造车,先看了业界怎么做:

  1. Anthropic 官方:不预载,给模型一个“搜索工具”,按需搜、按需装——省了 85% 的定义体积,准确率还不降反升。
  2. Claude Code 作者:早期用过向量库,后来退回“现场 grep + 一张先验地图”,理由是精确、零维护、永不过期。
  3. 2026 工程共识:关键词打底 + 向量补充的混合检索,纯向量已经不是最优解。

三条路压成一句话:把“模型会不会想起来”这个玄学,改造成一次确定性的检索调用。

图5:业界三条收敛路线
图5:业界三条收敛路线

向量查询靠谱吗?靠谱,但排第四

我一度也想直接上向量数据库。查完发现那是“给瞎子配更贵的眼镜”。

向量能治的是换个说法搜不到跨语言(我的库中日英混杂,这点它真有用);但它治不了预算截断、治不了烂描述——那俩才是我的头号病因。

所以判决是:向量缓刑,先用关键词(BM25)吃掉七八成查询,成本只有向量方案的十分之一。真出现“换说法就 miss”的缺口,再叠上去。

图6:向量能治什么、治不了什么
图6:向量能治什么、治不了什么

我的自救工具:鉴技(SkillScope)

思路照抄官方那套“搜索工具”,只是自己动手。核心就一件事:预算里只留一个“路由技能”,任何任务先查目录、拿到路径、再读对应文件。几百变一。

我写出来的是个 702 行、零依赖的 Node 小工具

  • 扫全部 94 个技能,生成一份秒级重建、永不陈旧的目录索引;
  • 自然语言进、“该用哪个技能”出,中日英混排都能切词;
  • 挂上 UserPromptSubmit 钩子——每轮对话自动注入 Top-3 候选,治的正是“多轮聊到后面模型忘了调技能”这个死穴。模型可以不听,但不可能“没看见”;
  • 18 条断言全绿才准上线,专门混了 10 条“不该触发任何技能”的负样本防误触。
图7:鉴技长什么样
图7:鉴技长什么样

改造分五层,关键是“按性价比排序”

  • L0 描述卫生(半天,免费):把简介从“功能说明书”改成纯触发条件,触发词前置、压到 150 字以内、中英双语(我用中文提问,纯英文描述天然少一半命中)。
  • L1 收敛候选:几百个技能不该同时在场,分全局/项目/库房三级,90 天没调用的进库房。
  • L2 主动路由:就是上面那个鉴技,这层是心脏。
  • L3 文件地图:每个技能里写清“什么情况读哪个文件”,csv 声明 schema、只用脚本查、别整表塞进上下文。
  • L4 检索引擎:ripgrep → SQLite FTS5(主力)→ 混合向量(按需)。
  • L5 评测闭环:50 条真实查询做金标集,每动一层跑一遍,没有数字一切优化都是玄学。
图8:L0→L5 五道防线,按性价比修
图8:L0→L5 五道防线,按性价比修

今天就能上手的 3 步

  1. 跑一行脚本,量一下你有几个技能掉下了预算悬崖;
  2. 把最常用的 20 个技能,描述改成双语纯触发条件;
  3. 写一个路由技能 + 一个钩子,让每轮自动给你推候选。
图9:今天就能上手的 3 步
图9:今天就能上手的 3 步

就这三步,我的“经常不触发”基本就没了。

再啰嗦三句我踩过的坑:先修免费的(别一上来买向量库);描述是触发器不是简介(写得越全模型越爱跳过正文);一定要有负样本(只测“该触发”很容易自嗨)。

工具我开源了,评论区或主页能找到。下一篇写鉴技那 18 条测试怎么设计的,尤其那 10 条负样本——它们比正样本更能暴露问题。觉得有用点个关注,是我继续写的动力。