我本以为 AI 只靠提示词,直到看了它这个设计
龚哥 | 天天跟 Hermes 聊天的人
我天天用 Hermes Agent,一直觉得它的行为挺聪明。做开发任务知道看仓库里的代码规范,查资料知道去哪个网站翻。我一直以为是提示词写得好。直到翻了翻它的技能系统,才发现背后的设计比我猜的巧妙多了。
它把所有知识做成所谓“Skills”,每个技能就是一份文档,告诉 AI 什么时候该干什么事。听上去好像没什么,但细节我想拿出来聊聊。
为什么不是一次全塞给 AI
最让我觉得有意思的设计,是“渐进式披露”。简单说,AI 每次对话不会把所有技能文档一口气读完。那得烧多少 token。想法很直接:先看目录,再按需读详情。
具体讲分三个层级。Level 0 是一张技能清单,大概占 3000 tokens。 拿我配的那个写诗技能举例子,AI 先看到一句话简介“会用古诗风格写任何主题”。如果我觉得用得上,再让它读完整版。里面写了触发规则、格式要求、常见坑。还不够的话,读具体的参考文件。这三个级别加起来,从 3k tokens 左右起步,到具体文件才往上加。
说白了不是我不舍得花 token。问题是 AI 的输出质量跟上下文长度有关系,塞太多无关东西进去到底容易跑偏。只给用得着的,对话更稳。
斜杠一敲,技能就来了
玩法挺直白。在聊天框里打 / 加上技能名字,直接触发。我写了个 /deploy-check,敲完 AI 自动加载部署检查流程。不想用斜杠也行,自然说话它也能识别。只不过斜杠更明确。
还有 Skill Bundle,把几个技能绑一起。我搞了个 /backend-dev,把 github-code-review、TDD 流程、PR 合并规范捆一块。敲一下,三口活全加载了。做前端项目的另一个 bundle,互不干扰。
技能自己写也简单。就是一个 Markdown 文件,开头用 YAML 写 name、description、platforms 这些元信息,下面写正文。我一般分四块:什么情况触发、具体步骤、踩过的坑、怎么验证对不对。
| --- name: deploy-check description: Production deployment checklist platforms: [linux, macos] --- ## Trigger User asks to deploy to production. ## Steps 1. Run tests 2. Tag release 3. Push to prod branch ## Gotchas Database migration must run BEFORE code deploy. |
技能从哪来:Hub 生态有点意思
官方有 Skills Hub,好几个来源可以装技能。official/ 前缀的 官方有几十个可选技能包直接装。skills.sh 是 skills.sh,Vercel 搞的公开目录,社区贡献的都在那。还有一种 well-known 机制,网站发布 /.well-known/skills/index.json,AI 自己发现这个网站支持什么技能。
最有趣的其实是 browse.sh。它打包了 200 多个网站的自动化技能。Airbnb 查房源、Amazon 比价、arXiv 搜论文,什么都有。装一个技能,AI 就会操作那个网站。我装了 arXiv 技能,让它找最近 NLP 论文,它真的去翻页面拿摘要回来。
直接贴一个 SKILL.md 的 URL 也能装,从 GitHub 仓库直接装也行。用 config.yaml 配置 external_dirs,指向本地的技能目录,多个工具共享一套。
最让我意外:AI 做完事自己存技能
有一回做复杂的数据库迁移,AI 帮我一步步走完。结果它自动调用了 skill_manage 工具,把整个过程存成了一个技能文件。下次再做迁移,一个命令就搞定。
它存的时候还知道用 patch 操作。patch 只写变化部分,比整个文件重写省 token。设计这种细节的人,大概率自己也抠过 token 账单。
还有 fallback_for_toolsets。比如我配了 duckduckgo-search 技能,平常浏览器工具开着时不显示。但把网络工具关了,它自动冒出来。用则有,不用则不显。
Hub 下载的技能会经过安全扫描。查数据泄露、提示注入、破坏性命令、供应链风险。不过自己写的技能就自己负责了。
用下来最大感受是,这个设计不把 AI 当百科全书,而是当一个有工具箱的人。你要什么它拿什么,不用背着一整座图书馆跟你聊天。你手上也有正在用的 AI 工具吗?有没有类似这样让你觉得“哦还能这样”的设计细节?
⭐点赞、转发、关注和推荐一键三连⭐
夜雨聆风