之前写过一篇文章:https://lichuanyang.top/posts/26060/ . 教大家构建与Agent无关的工作流,随时能拉起不同的Agent工作,从而能顺畅用上各个Agent提供的免费、试用套餐。这么实践下来,一个明显会变得繁琐的事情就是对于skill的管理。因此,我又写了一个工具,实现在不同Agent、不同项目间管理skills.

鉴于目前Agent的生态还比较凌乱,大家各干各的,skill的存放目录也自己定自己的。

比如 Cursor 放在 ~/.cursor/skills,Claude Code 放在 ~/.claude/skills,Trae 放在 ~/.trae/skills,OpenCode 放在 ~/.config/opencode/skills,还有 Windsurf、Qoder、Hermes 等等,每家都有自己的路径约定。

社区也在试图定义通用的.agents/skill这样目录,有点作用,但不大。

当然,skill管理的问题,也不全是使用多Agent带来的。因为skill这种东西,天然就就有非常大的适用范围区别。有的skill是适用于公司的项目的,有的是适用于自己的项目的,有的适用范围还更窄一点,只适用于若干范围内的几个项目,还有的skill, 比如汇总新闻的,我想只配在某个agent里。

你要是问,不对skill做这些精细化的管理,行不行?那确实也没什么大问题,无非就是agent每次检索技能,多花点token. 但做技术的强迫症,还是希望把这些东西管的细一些,在不需要agent调起的地方,就压根别让agent能看到这些skill.

基于此,设计了pks这个工具。核心思路是在一个集中的地方管理所有的skill, 然后,按照需求,将skill写入agent的skill目录或者项目目录下。

具体来说,支持以下功能

全局管理:所有 skill 集中存放在 ~/.local/share/pks/skills/ 下,用 pks list 查看,用 pks new 创建新 skill。

项目级安装:在项目目录下执行 pks init 初始化后,可以用 pks install 把全局 skill 安装到当前项目的 .skills/ 目录。

Agent 级安装:用 pks install-to <agent> <skill> 把 skill 直接装到指定 agent 的 skill 目录(比如 ~/.cursor/skills/)。

双向同步:在项目里改了 skill 文件,用 pks push 把改动推回全局库。

实际使用上,我大概有这么些使用场景:

有一些skill是小范围适用的,比如相关的几个有限的工程,这时候,我不会将skill放到agent的配置里,而是会放到项目中,使用pks install命令,可以把本地技能库中的skill, 放到工程目录下。然后可以在AGENTS.md文件中指引agent去skill目录下找技能,对于支持项目内技能的agent, 也可以使用pks link命令,将agent对应的项目内技能目录,比如.opencode/skills, 软链到skills目录下;

有些skill, 比如收集新闻的skill, 我只想让它在部分agent中出现,这样就执行pks install-to命令, 将其装到agent的skill目录下。

有时候skill文件需要修改,我会先在某个项目下进行修改,然后执行pks push, 将命令写回技能库。

这样,对于skill, 就有了一个比较妥善合理的处理流程。

项目地址在: https://github.com/lcy362/personal-skills-manager , 欢迎试用。 大家有什么其他关于skill管理的经验,也欢迎提出。