Hacker News 中文摘要

RSS订阅

Ask HN:如何管理技能文件 -- Ask HN: How do you manage skills files?

我做的第一个技能是技能改进技能,它要求始终调用本技能;如果人工智能在使用其他技能时遇到困难并发现该技能需要返工,就执行改进,并把笔记写进版本文件,再备份到共享文件夹或外接硬盘。这些技能让我的工具更好用、更省钱、更快。我还让它写今后可直接使用的脚本,比如查询回答问题所需信息。但还缺更好的团队分享方式。

正文

我在手机上,但第一个做的技能是一个“技能改进”技能。它规定如果 AI 在别的技能里受挫但找到办法,就需要重构那个技能,并总是用这个技能在版本文件里记录笔记,然后备份到共享文件夹或外接硬盘。技能让我的工具更好、更便宜、更快。我还加了条:它应该写脚本供将来直接用来查信息回答问题。希望有更好的团队共享方式,但还没顾上。

Image 1

用本地 Git(无远程)防止预加载到提示词,分五步: 1. 一个“技能查找”技能加载在提示词里,用 Git 搜索,免去导入所有摘要。 2. 每个 agent 有私有仓库,含 main(生产)和 draft-<技能名> 分支。 3. 共享仓库类似,但组内 agent 都能访问。 4. 找不到时回退到用 harness 机制搜技能。 5. 定时审计,找出垃圾技能或从未改过的草稿,按月分类让我决定。 这样兼容现有技能文件夹,移除 Git 和查找技能无损,且能懒加载不用的技能,给提示词瘦身。

上周在不同项目复用自制技能,喜欢 AI 提议的方案:打包成插件并把 Git 仓库作为市场。安装轻松,不用搞符号链接,因为同代码库在不同平台会乱。命令如下: - codex plugin marketplace add "https://path-to-my-git-repo" - codex plugin add agent-tools@mycompany - claude plugin marketplace add "https://path-to-my-git-repo" - claude plugin install agent-tools@mycompany 让 AI 生成市场的 .json 文件,还没做但应该和安装一样简单。更新命令: - claude plugin marketplace update mycompany - claude plugin update agent-tools@mycompany

  • 我不找技能,我造技能。
  • 用符号链接装到所有 coding harness,放在软件仓库里管理。frontmatter 的渐进披露搞定其余。
  • 确保技能通过 AI 评估,就像集成测试证明行为,能优化流程。我尽量让技能主要是自然语言和它调用的小巧快工具之间的翻译。
  • 新问题出现才改,不无故改。如果技能代表团队或个人的定制工作流,就不会被模型能力吃掉。我过去写过相关心智模型(https://alexhans.github.io/posts/series/evals/building-agent-skills-incrementally.html)。

大家总说评估,但很难实操,不然花在评估上的时间会是建技能本身的百倍。比如有个调试技能,除了琐碎事,怎么写评估?

你不用评估。如果想用技能逼 AI 满足硬性标准,没用。硬性标准需要确定性检查,比如钩子。规范文档方面,无论试什么工具都没达到我的标准:易验证、简洁、小规格。所以我建了 Yamlet(https://github.com/RicardoMonteiroSimoes/Yamlet),先用于 claude code,后扩展到 pi.dev。现在有专用 docker 镜像只装 Yamlet 插件,写规范时就启动,产出 .yaml 方便 git 和 diff。

技能只应记录 LLM 自己没表现或做不到的行为。拿失败案例(比如用 gdb)写技能,再针对那案例测。

也有技能帮 LLM 做本来能做的事但更快(省去不必要探索)。这类技能的失败案例或许是“慢”。很多失败会烧大量 token 时间,因为 LLM 很固执。也许加个上限(轮次、超时)也有助。

参考 Claude 托管 agent 的技能架构,有渐进暴露:技能有触发标题、触发时加载的索引文件,以及触发后才可用但默认不加载的附加文件和脚本。

我不用的。一切按仓库组织,选含所需上下文的目录给 agent。改 homelab 就丢进 homelab 仓库。常用操作有 shell 脚本提速。我有几个系统提示词,按目标选:实现功能、搜网页、或一次性短命令。

我不用任何技能,大家觉得哪些最有用?通用任务模型自己能搞,项目或环境特定的就写进 readme 或 agents.md。

我做的技能是“公司/项目里我喜欢的做法”:查测试库、git 分支命名、提交信息风格、哪些云资源可查日志等。教模型 git、python 文档里已有的没意义,它们本就知道。

技能靠简短描述决定是否读进上下文,技能本身可能很长……

我尽量让 agents/Claude.md 极小,只放不变的高级“真理”:技术栈、不变量、文件结构、些脚本。技能用于常做的事。跑变异测试、类型检查、lint 等,不必每次复制提示词,用 /tests 就行。也有偶用的专项技能,如 ux、某优化的文本技能。

看信息量。agents.md 总进上下文。做 UI 时详细测试或流程信息可能多余,技能按需拉取。

agents.md 适合高层事实,但复杂构建、测试模式等大量信息每请求都加载不好,卸到技能里确保只在用时进上下文。

从 Readme 链到独立 docs 文件如何?像给人分文件,上下文成本低,基本就是 Claude “记忆”功能的做法。

那种拆分基本就是技能,加些何时加载的说明。不同 harness 可能等价,但读 readme 链接是否比技能(只是美化的 readme)容易,不确定。

我用技能把活卸给子 agent。配置技能用特定模型,在 harness 强制,不靠编排模型自觉委派,也省上下文。今天 Fable 要从带 EULA 的网页下 zip 再取磁盘镜像里的文件,这项目常发生。我让 Fable 出个适合 Haiku 的技能/脚本组合,现在分析时极低成本完成。

内部叫让东西“确定性”。我广泛用技能,配合 SOP、脚本、MCP。例:SessionMiner 通过 Claude 和 Kiro 的会话后钩子安装,分析会话、成果、是否该转技能,总结决定并要么发消息让我跟进新技能/工具,要么记录方法供未来识别趋势。久了攒出可复用技能库,标出流程缺陷。另一通信分析技能,去年夏开始用,扫我各处在线活动,跟踪承诺、确保跟进漏掉的人,按自定目标打分。作为自闭症兼未服药 ADHD 但事业尚可的人,它让我更高效跟踪工作,尤其关键却无聊的事。

你太信任只是预测下一个 token 的东西的判断力了。目标合理,但我不确定能托付到那种程度。也许重点不是这个,而是看 LLM 认为什么对,从中学习。可能不对,但能告诉你常人怎么想,有用,只是绕弯。

当然是非通用任务,比如环境要的特定工具。常把不熟的框架/库文档做成技能,注重地道实现用法。代码能跑不够,要“顺向”“走正门”。模型默认太爱重造轮子和打补丁。

我有几个技能写项目约定(如写计划、写生成 HTML 的代码),但可能等同 docs 目录里链自 AGENTS.md 的 .md 文件。

若每天重复某提示多次,可存成技能。

Claude 重复几次后会自动做。我有 plan-to-epic 技能,为每个里程碑建 Jira epic 和票,帮 agent 持久化上下文,也因我不擅长争“曝光度”,可随时指认所有工作。

不是为了存提示,而是确保用某些已审查的实现法,比如总带测试文档。缓存脚本免得每次重造引入错误。

有人问最有用技能是啥,我每天至少增删改一个,没这些文件没法干活。常见:看 AI 花太多时间 token 做完某事,立刻让 Cursor 存成技能,下次提“做{简说任务},你以前做过类似存为技能”就行,不用记名。

我少用法是当“快捷键”。比如常发“fetch origin 并 rebase 到 origin/master 解冲突”,做成叫 rebase 的技能文件加一句描述,下次打“/reb-tab-enter”。

网上能找到、认为会被模型改进取代的通用技能无用甚至有害,因模型恋上下文。有用的是项目特定工作流,放项目仓库大家用和改进。

我在服务器跑 AI,所有技能和相关信息存 Wiki。Agent 只被指示开头查 Wiki (MCP) 取上下文。

说明:我最终手工筛选。多数会话存 Zed。大功能后让前沿 agent 过一遍提改进。通常用 Gemini,因擅删减文本;Claude/GPT 总想加字。结果技能更小但更“actionable”,逼 agent 按有效方式做。

提交到 git 让全队用。每仓库技能不同,我至少每周更新两次。有加监控、调试、写码、审码、技术设计评审等技能。skills.sh 上大多对我无用,偶尔逛逛找灵感。好用的新增范式是“怎么做 X”,如“加日志”“审代码”,框不出就不加。少即多,别加太多,我只 9 个(很多人从市场装数百)。

我也这么用,效果极好。我在专有代码库,多冷门定制工具、怪细节和历史 quirks。技能让 agent 跳过“学习”阶段,不必读工具文档、看现有库学风格,直接干。训练数据多的代码不太需要。但注意:技能仓库要极仔细,错误会散到所有新代码。

主要问题是技能需跨项目跨成员受控编辑,Git 不够,我建了工具 capshelf(https://github.com/genged/capshelf)。新项目用 $ capshelf add security-review 从仓库加;新技能用 $ capshelf promote security-review 提升给大家装。它锁内容哈希防意外编辑,也支持 MCP 和 agent 配置。

技能在两个权威 Git 仓库(私和公)。Agent 按我要求改,用自写 sync-agent-skill 脚本同步到所有 coding agent 的 ~/.claude/skills/、~/.codex/skills 等,确保无本地改动。

只要技能是上下文指引(给作者、项目等)而非裸能力,就不易被模型吃掉。我在中央位置(如 dotfile)维护,用 guix home 同步到各 harness(codex, pi, antigravity, Claude Code, Deepseek 等)的技能夹。设成双向链接而非默认只读,可从任意 harness 编辑扩充。技能因格式统一好用,其他功能烦点。编辑:这本身就是有用技能例子——写个技能管理技能让 agent 正确接线编辑。其他妙技:渲染 latex、cetz 图、jujutsu、guix、审码、写作反馈。

用 chezmoi 当 dotfiles 管理:.agents/skills/ 目录并软链到 .claude/skills/。全局 AGENTS.md 里写条:让 agent 解释做事时的挫败并建议技能/工具改进。我尽量让 AGENTS.md 小,仍在找平衡。

技能放仓库,agent 工作流每两周查内容是否偏离文档,偏了就开 PR。仓库也是 Claude 插件。最大问题是跨用户保持更新,我写了个小 Go 程序管跨 harness。

技能放 Home Manager 仓库,通过配置装到 .claude/.codex 等。它们是指令如 git 提交、合并、写文(无 AI 味)、特定库 API 文档,不管用 agent 会做错我被注意到。有时不遵循,我也有技能:让 agent 凭对注意力和 LLM 的了解,评估指令和错误,诊断为何没遵循,据诊断改进技能。

我有仓库 Loadouts & Summons,主技能 capsule,所有技能/MCP/CLI 在内,软链到所有开发机免 MCP。capsule 渐进暴露几十个技能/工具,如 $capsule plannotator [args]。有的 harness 仅人调用,有的让模型调,顶层描述暗示内容。最大上下文/会话起点控制和能力扩展。

技能只是“技术哥”对简单 markdown 指令文件的称呼,别复杂化。记下想复用的,如“加 API 端点要做 x y z”“建 GitHub PR 标 Æ 和 Å”,免得重复。多在模型自己推不出时加,被动不主动。多数公开技能无用且过复杂,人花太多时间搞 harness 而非做东西。编辑:但可受公开启发,如“grill me”技能逼 agent 问澄清问题,点子好。

我认为技能远不止 markdown 指令文件,是强脚本引擎。组织:markdown 指令,但工作拆成脚本+指令混合。确定性的活做成 python 脚本 API,逻辑思考在指令,并教 agent 用 API。近乎普通脚本但运行时是 harness,业务逻辑可代码+人力智能组合。边界处理和验证用辅助函数,agent 只被令调用。极强大,自动化新方式,逼我重思计算机工作。

真问:有证明有用的技能吗?上下文是?对我,LLM 通常做一事产出持久工件,提示过期不需了。偶发重复任务也少,提示嵌在编排代码里,也无用。你说“加端点”例子,我直接扔提交 ID 说“再做一次”,行,且不脱钩知识与代码。

我们有公司管技能,帮 coding agent 找仓库间关系、约定、架构、高层决策。应可移植,分发目前尴尬。有 bootstrap 脚本部署到每人“个人”技能。codex 和 claude code 钩子每次启动试刷新。

我最近彻底改了仓库技能设置。原用项目内 claude.md 控任务执行,但它只在会话初读,感觉指令没贯彻。改为按技能单位管常用功能,不按项目组织,而是集成进各仓库通用技能。技能散多项目数量涨后难追踪,终不用。也认为 Claude 进步后能替大部分技能,注册无数技能反而降性能。

为何这么想?“我相信技能终将被模型能力吃掉,但那前只想找更好管理法。”

怎么找技能:社区技能收藏保持短,只几个名家(mattpocock, mcollina, trailsofbit),看新发布或 matt 发 YouTube。自己写的放私有 GitHub。多用 /commands 类技能,立刻知是否管用。社区技能用包管理器,如 vercel-labs/skills、withastro/rosie。我也自建了 ski(https://github.com/osrim/ski),有更新命令和安全扫描。

技能放 dotfiles 仓库,软链到主目录和要用项目,项目特定的进项目。

有人说技能终被模型能力吃,但模型能力填不上定制技能能填的未知空白。模型可能聪明地 whoami 翻 .ssh 找密钥连 bob,但技能文件直接说“用密钥 Z 用户 X 连 bob”,免掉无用推断。只要信息有效,简洁高密技能在耗 token 上总胜出,消除整个调查阶段。

同意。我的理念:通用 coding agent 越来越好,技能越来越无用,且进步速度远超人们定制。这基于写码经验,agent 已熟工程约定;其他任务如独特腔调营销文案可能不同。目前我技能极简——常发单句提示如“删掉这仓库文档里所有 slam poetry”。常共享,全放团队可访问仓库。不强迫用,随便改加,共享和参与比统一做法重要。

我说被吃的是“通用”技能如设计批评、审码等。定制的当然替不了也不高效。这类我自己建维,原问是通用技能网上到处是,你们怎么管?

你觉得通用技能有用吗?我不确定用过,看时多是 YouTuber 赚钱加 Substack。大家贬 MCP,但我觉自定义客户端 MCP 工具有用。

能用代码确定表达就别让 agent 做,更快更便宜确定。比如常拷 A 到 B,写脚本让 agent 通过技能调用,这就是 harness 起点。终会建传统方式做多、仅把合适或难用代码表达的任务委派模型的定制软件。

任何技能直接加进工具本身,py 工具放 PWD,不搞 MCP。

我写了个小命令行工具,把技能包装到 agent 特定项目夹,像 brew 等包管理器。技能编译进二进制,不愁位置,拷工具就能移机。确保管用?大多试错。有人试自动研究法,我觉得不值。

我有 docs/ 放应用所需技能文档,当 ADR 帮 AI 理解系统部分。

我发现随模型发布技能效用递减。我们弃用技能,绕 agent 建了确定性 harness。

评论

社区普遍分享用 Git 仓库与符号链接管理自定义技能的经验,强调少而精且贴合项目工作流;少数人认为技能终将被模型吞噬或已无意义,分歧主轴是技能应作为持久外部知识还是终将被模型内生能力取代。

认为技能终将被模型能力取代或已不再有用

  • 个别人指出通用技能可被模型自身覆盖,大量注册技能反而消耗上下文并降低性能,或直言技能已无用(少数人) > 一旦模型足够先进,它能取代大部分技能,管理无数技能实则拖累表现(@vkvkakal)

认为技能应是项目特定的轻量指令且少而精

  • 较多人认为有用技能描述团队或项目独有工作流,应存于项目仓库供改进;公共市场技能常过度复杂无用,应仅在模型推断失败时补充,且数量宜少不宜多(较多人) > 有用的技能描述你项目特有的工作流,可放在仓库里让大家优化,通用技能从网上找的可能有害(@Kwpolska)

用 dotfiles 与符号链接集中管理并跨代理同步

  • 较多人将技能存于中央 Git 仓库(如 dotfiles),通过符号链接到各编码代理的技能目录实现跨机器复用,也有人用轻量包管理器(较多人) > 我把技能放在独立仓库,符号链接到本地项目,项目特定的则放进项目里(@pletnes)

团队需借助仓库与工具统一分发并防止漂移

  • 较多团队将技能提交 Git 供全员使用,并借启动脚本、定时代理工作流或小型二进制工具同步、检测内容偏离、锁定哈希,确保多成员一致(较多人) > 技能放仓库,代理工作流每两周检查是否偏离文档并提 PR,再用 Go 工具跨平台同步(@theletterf)

技能的可靠性要靠任务反馈与自动化评测保障

  • 较多人通过在配置中让代理反馈挫折、观察执行错误、试错或编写类集成测试的 AI 评测来精进技能,有人设计技能令模型自我诊断未遵指令原因(较多人) > 我把技能当作类似集成测试的 AI 评测来证明行为,借此优化流程(@alexhans)

有价值的补充

  • 可编写一个“技能管理技能”让代理自动接线并编辑各代理的技能目录,实现双向同步(@ssivark)
  • 精巧技能示例:令代理依据注意力机制诊断自身为何不遵指令并提出改进;或强制代理先问澄清问题的“grill me”类技能(@winternewt、@matsemann)
  • 部分工具(chezmoi、home manager、capshelf)支持双向同步与哈希锁定,避免意外编辑破坏流程(@jameshiew、@mstr32)