上周调好的一套规矩——提交信息按什么格式写、改完代码跑哪几条测试、发布前核对哪些字段——这周开个新会话,模型又变回一张白纸。你复制粘贴过去,第三遍之后自己都懒得维护了,因为知道下次还得再来一遍。
技能包(Skill)这类东西就是冲这个场景来的:把「每次都要重复交代的经验」写成文件,让智能体在需要的时候自己去读。garden-skills 是个人开发者做的一个技能包框架,本文不讨论它有多少 star,而是围绕「个人经验怎么变成可复用技能」这条主线,拆开它的机制、算清接入成本,最后给一份适合与不适合的判断清单。仓库的星标数、许可证、最近提交时间这类数据会变,采用前请以仓库页面为准。
从提示词到技能,改变的是存在形式
提示词存在聊天窗口里,技能存在文件系统里。这个差别听起来不大,影响却不小:技能可以进 git,改了哪一版、回滚到哪一版,提交记录能回答;同一个文件在多处可以复用;它还能按需加载,不必把全部上下文塞进系统提示,智能体判断相关再打开。
搜索到的资料里,有项目把自己的定位写成 “Skills are infrastructure, not prompts”,这句话把差别说得很直白——提示词是对话的一部分,技能则是可以被引用、依赖、替换的基础设施。基础设施的评判标准也随之变了:它好不好用,不能只看它写得漂亮不漂亮,还要看它可不可靠、可不可控。
一个技能包框架通常由什么组成
清单文件决定「什么时候用」
大多数实现都有一个入口清单文件(常见命名是 SKILL.md),它同时服务两个读者:告诉人这个技能做什么,告诉智能体什么时候该打开它。后者更关键,也更容易写坏。
写得差的描述是「帮助处理文档」;写得好的描述会写清触发条件——「当需要对表格做清洗、保留原始数据并生成可重算的汇总公式时使用」。智能体匹配的是触发条件,不是自我介绍。如果你自己整理技能时总觉得「装了但没被用上」,九成问题出在这一行。
scripts/ 决定「能做什么」
技能不只是说明文字,它通常还可以携带脚本和资源文件,智能体会照着执行。这是技能真正省事的地方,也是风险所在:一段说明最多让模型说错话,一个脚本可以让它在你的机器上做事。
加载路径决定「在哪能用」
这一点在跨客户端时经常出问题。资料中的实测提到,Claude Code 走专门的 Skill 工具加载技能,Codex 则像读普通文件一样用 shell 读 SKILL.md。由此带来两个直接后果:在 Codex 里,如果沙箱或目录权限不允许读那个路径,技能就完全用不上;在 Claude Code 里,看运行记录中有没有 Skill 工具调用,就能确认是否真的命中了。
同一次实测还发现,体量较大的技能包在 Claude Code 里可能需要先经过路由入口(例如 /router)才会加载,Codex 反而能自动加载。同一份文件,两个客户端表现可以完全不同。所以,文档里写「支持多客户端」和你机器上能不能触发,是两件事,必须自己跑一遍。

个人经验变成可复用技能,通常卡在三处
粒度。很多人第一反应是把整个工作流做成一个大技能,结果触发条件写得又长又模糊,模型要么不触发,要么在不相干的场合触发。更实际的做法是按任务切:一个技能负责「把发票整理成台账」,另一个负责「发布前核对字段」,彼此不重叠。
隐含前提。自己写的技能常常省略那些「不用说也知道」的信息:文件放在哪、用哪个 Python 环境、目标表叫什么名。对你自己这些是常识,对智能体是缺失参数。能被别人复用的技能,往往要补上大量看起来啰嗦的路径与默认值。
验证。技能写完不等于能用。有效的做法是准备两三个已知答案的小任务,跑一遍看它是否被触发、结果是否正确。没做过这一步就对外发布,等于把调试试错成本转移给了使用者。
和官方技能、企业级方案比,差在哪
生态里这三类东西经常被混为一谈,其实定位差别很大:
| 维度 | 个人技能包框架 | 官方或厂商维护的技能集 | 企业级技能注册中心 |
|---|---|---|---|
| 主要价值 | 贴合个人工作流,改起来快 | 覆盖面广,与自家客户端配合紧 | 统一发布、版本管理与权限治理 |
| 治理能力 | 通常依赖作者自觉 | 官方维护节奏 | 有 RBAC、审计日志、私有化部署 |
| 典型代表 | garden-skills 这类个人项目 | 随客户端分发的文档处理类技能 | 如自托管注册中心类项目,支持 Docker、Kubernetes 部署与包版本管理 |
| 主要风险 | 维护中断、无签名校验 | 通用性强但未必贴合你的细节 | 部署与运维成本高 |
这张表不是给个人项目下判决。个人框架的优势恰恰在于它不需要讨好所有人:作者按自己每天的工作方式打磨,细节往往比通用方案更贴近真实场景。代价也明确——没有签名校验,没有强制版本治理,文档质量取决于作者当天的心情。
接入前的核验清单
拿到任何一个第三方技能包(包括 garden-skills),建议按下面几项过一遍,每项都是几分钟内可完成的动作:
- 文档完整度:README 是否写清安装路径(例如
~/.claude/skills/下建目录),是否说明适用哪些客户端,是否给出一次最小可运行示例。只有一句「克隆即可用」的,基本要自己摸索。 - 维护状态:看最近提交时间与 issue 回复情况。一个三个月没动但功能封闭的项目,可能比每周更新但频繁改结构的项目更稳。
- 许可证:仓库根目录有没有 LICENSE 文件。没有明确许可证,在法律上通常意味着保留所有权利,不适合直接放进公司项目或二次分发。
- 脚本内容:把
scripts/里的每个脚本打开读一遍,看不懂的不要装。在技能目录里搜一下curl、wget、rm -rf、ssh、nc这类命令,以及有没有向陌生地址发送数据的代码。 - 清单文件是否越界:检查
SKILL.md有没有让智能体读取~/.ssh、环境变量、密钥文件,或者「顺便」执行别的命令。 - 可复用性:把技能里硬编码的路径、账号、内部系统名替换成占位符,看它是否还成立。替换一圈下来改动超过三成的,说明它更像个人配置而不是可复用技能。
安全这块不是危言耸听:技能里的脚本是会被执行的,装之前读一遍的成本,远低于事后排查的成本。

谁适合接,谁不必
适合接的人:
- 每天用 Claude Code、Codex 这类工具干活,且已有几条稳定重复的流程;
- 愿意读脚本、能自己改路径和参数,出问题能定位到具体文件;
- 接受「先自己用,再考虑分享」的节奏,不指望开箱即用。
可以先不接的人:
- 想要成品解决方案,不愿意读代码;
- 团队协作场景需要权限分级、审计记录、版本回滚,这类需求个人框架基本无法满足,应该直接看企业级注册中心方向;
- 没有维护 fork 的精力。第三方个人项目随时可能停更,接了就要接受「以后自己接手」的可能性。
如果想看这个领域还有哪些项目在做什么,可以翻一下社区维护的 awesome-agent-skills 列表,里面按方向收录了技能集、注册中心和构建工具,横向比较比单看一个仓库更有判断力。关于不同客户端的加载路径与触发方式,这篇实测记录有较细的对照,接入前值得先读,能省掉不少「装了却没反应」的排查时间。
一个低成本的试法
不要一上来就把整套工作流搬进去。挑一件你本周至少做过三次的重复小事,写成一个技能:一个清单文件描述触发条件,一个脚本或几行操作步骤,跑两三个已知答案的任务验证。跑通了,再考虑第二个。
判断一个技能包框架值不值得长期用,标准不是它有多少技能、多少 star,而是它有没有让你少复制粘贴几次。如果一周后你还在手动交代同一件事,那这套框架对你就不成立——不管它写得多好。

评论列表 (1条):
加载更多评论 Loading...