【Skills 系统从入门到精通】第 10 篇:全平台统一体验——CLI / Gateway / Dashboard 中的 Skills
本篇你将学到
- Skills 系统的三个运行界面:终端 CLI、消息网关、Web Dashboard
- 每个界面中技能操作的完整命令对照
- 平台间的行为差异与注意事项
- 安全敏感操作的平台限制
- 多平台协同使用的最佳实践
读完本篇,你将能够在任何平台上熟练使用 Skills,并理解各平台的差异和限制。
一、三个运行界面
1.1 界面概览
Skills 系统设计为跨平台一致——无论你在哪个界面使用,核心功能相同。但三个界面在交互方式上有各自的特色:
| 界面 | 入口 | 交互方式 | Skills 特色 |
|---|---|---|---|
| CLI / TUI | 终端运行hermes | 命令行交互 | 斜杠命令、技能管理、开发调试 |
| Gateway | Telegram / Discord / Slack / … | 消息平台聊天 | 移动端使用、通知推送、语音交互 |
| Dashboard | 浏览器访问 Web 界面 | 图形化操作 | 可视化浏览、Learn 面板、一键安装 |
1.2 设计理念:一套技能,多平台运行
Skills 系统的核心设计理念是平台无关——一份 SKILL.md 文件在所有平台上表现一致:
技能的发现、加载、执行逻辑在消息处理层统一实现,不依赖各平台的特定机制。这意味着:
- 你在 CLI 中创建的技能,自动在 Gateway 平台上也可用
- 你在 Telegram 中通过
/skills install安装的技能,在 CLI 中也能使用 - 技能的修改在所有平台上同时生效(可能需要重开会话)
二、CLI / TUI 中的 Skills
2.1 交互式会话操作
在终端中运行hermes进入交互式会话后,所有技能操作通过斜杠命令完成:
# 技能调用 /excalidraw 画一个系统架构图 /gif-search funny cats /github-code-review 审查最新提交 # 多技能堆叠 /test-driven-development /github-pr-workflow 实现登录接口 # Bundle 调用 /backend-dev 实现注册接口 # 自然语言触发 帮我画一个微服务架构图 # /learn 自动生成 /learn ~/projects/my-sdk/docs/ # 查看技能 /skills # 技能管理界面 /skill excalidraw # 加载查看特定技能 /bundles # 查看 Bundle 列表2.2 CLI 专属操作
部分操作只在 CLI 中可用(或在 CLI 中最方便):
# 技能管理(非交互式)hermes skills list# 列出所有技能hermes skills inspect<name># 查看技能详情hermes skills browse# 浏览 Hubhermes skills search<query># 搜索技能hermes skillsinstall<id># 安装技能hermes skills check# 检查更新hermes skills update# 更新技能hermes skills uninstall<name># 卸载技能hermes skills audit# 安全审计hermes skills reset<name># 重置技能# Bundle 管理hermes bundles list# 列出 Bundlehermes bundles create<name># 创建 Bundlehermes bundles show<name># 查看 Bundlehermes bundles delete<name># 删除 Bundlehermes bundles reload# 重新加载# Hub 管理hermes skills tap list# 查看 Taphermes skills tapadd<org/repo># 添加 Taphermes skills tap remove<org/repo># 移除 Tap2.3 CLI 的独特优势
完整的技能生命周期管理:所有管理命令(安装、卸载、更新、审计)在 CLI 中最完整。
单次查询模式:适合脚本和自动化:
hermes chat-q"分析 /var/log/syslog 中的错误"--toolsetsskills直接文件操作:可以直接查看和编辑技能文件:
cat~/.hermes/skills/creative/excalidraw/SKILL.mdvim~/.hermes/skill-bundles/my-bundle.yaml完整的安全审批:写入审批门控的 diff 查看在 CLI 中体验最好——终端可以显示完整的 unified diff。
三、Gateway 中的 Skills
3.1 消息平台调用
在 Telegram、Discord、Slack 等消息平台上,技能调用方式与 CLI 完全相同——使用斜杠命令:
# Telegram 中 /excalidraw 画一个流程图 /github-code-review 审查代码 # Discord 中 /gif-search happy dance /arxiv 搜索 transformer 最新论文 # 多技能堆叠 /tdd /github-pr-workflow 修复 #123 issue3.2 Gateway 中的技能安装
在消息平台中也可以搜索和安装技能:
# 搜索技能 /skills search kubernetes # 浏览 Hub /skills browse # 安装 /skills install openai/skills/k8s # 检查更新 /skills check # 更新 /skills update # 查看已安装 /skills list3.3 Gateway 的独特特性
移动端使用:消息平台通常有手机客户端,意味着你可以在手机上调用技能——在通勤时让 Agent 帮你审查代码、搜索论文。
通知推送:技能执行完成后,结果直接推送到你的聊天窗口。长任务完成后你立即收到通知。
语音交互:在支持语音的消息平台上,你可以用语音描述需求,Agent 转录后自动触发技能。
媒体交付:技能产出的图片、文档、音频可以通过消息平台原生方式交付——图片直接显示为图片气泡,音频可以直接播放。
# 在 Telegram 中调用技能生成图表 /excalidraw 画一个用户增长曲线图 → 返回的图片直接在 Telegram 中显示为图片消息 → 如果加上 [[as_document]],则作为文件附件发送(保持原图质量)3.4 Gateway 的安全限制
安全变量不在聊天中输入
当技能需要 API Key 等敏感信息时,Gateway 平台不会在聊天中询问或显示这些信息。取而代之的是提示:
此技能需要 TENOR_API_KEY。 请在本地运行 `hermes setup` 或编辑 ~/.hermes/.env 来配置。这个设计防止了在聊天记录中泄露密钥。
命令审批的差异
在 Gateway 中,危险命令的审批通过/approve和/deny斜杠命令完成:
Agent: 需要执行 rm -rf /tmp/old-logs,是否允许? 用户:/approve四、Dashboard 中的 Skills
4.1 Web 界面操作
Dashboard 是 Hermes 的 Web 管理界面。在浏览器中可以完成大部分技能操作。
Skills 页面:
- 按分类浏览所有已安装技能
- 搜索技能
- 点击技能查看详情
- 一键启用/禁用技能
- 从 Hub 安装新技能
Learn 面板:
Dashboard 的 Skills 页面有一个“Learn a skill”按钮,打开后面板提供:
- 目录输入框:输入本地路径
- URL 输入框:输入在线文档地址
- 文本框:输入文字描述
填写后点击执行,等同于在聊天中输入/learn命令。
4.2 Dashboard 的独特优势
可视化浏览:分类浏览、搜索过滤比命令行更直观。适合探索"有哪些可用技能"。
Diff 查看:写入审批的 diff 在 Dashboard 中可以高亮显示,比纯文本更易读。
一站式管理:技能安装、配置修改、会话管理、使用统计都在一个界面完成。
五、平台差异详解
5.1 功能对照表
| 功能 | CLI | Gateway | Dashboard |
|---|---|---|---|
| 斜杠命令调用 | ✅ | ✅ | ✅ |
| 多技能堆叠 | ✅ | ✅ | ✅ |
| Bundle 调用 | ✅ | ✅ | ✅ |
| 自然语言触发 | ✅ | ✅ | ✅ |
| /learn | ✅ | ✅ | ✅(面板) |
| 技能安装/卸载 | ✅ | ✅(只读推荐) | ✅ |
| 安全审批 diff | ✅(最佳) | ✅(截断显示) | ✅(高亮) |
| API Key 输入 | ✅(安全提示) | ❌(不输入) | ✅ |
| 单次查询模式 | ✅ | ❌ | ❌ |
| 文件直接编辑 | ✅ | ❌ | ❌ |
| 移动端使用 | ❌ | ✅ | ✅(响应式) |
| 通知推送 | ❌ | ✅ | ❌ |
| 语音交互 | ❌ | ✅(部分平台) | ❌ |
| 媒体交付 | ❌ | ✅(原生) | ✅(下载) |
5.2 行为差异
技能缓存与重载
技能在会话启动时加载并缓存。中途安装或修改的技能在当前会话中不生效:
| 操作 | CLI | Gateway | Dashboard |
|---|---|---|---|
| 新会话生效 | /new或重启 | /restart或等待新会话 | 刷新页面或新对话 |
消息长度限制
消息平台对单条消息有长度限制。技能输出的长文本可能被截断或分条发送:
| 平台 | 单条消息限制 | 处理方式 |
|---|---|---|
| CLI | 无限制 | 完整显示 |
| Telegram | 4096 字符 | 自动分条发送 |
| Discord | 2000 字符 | 自动分条发送 |
| Slack | 40000 字符 | 通常不分条 |
当技能输出超过限制时,Agent 会自动截取关键部分发送,完整内容保存到文件或建议在 CLI 中查看。
六、多平台协同最佳实践
6.1 典型的多平台工作流
一个高效的多平台使用模式:
6.2 保持技能同步
由于所有平台共享同一个~/.hermes/skills/目录,技能修改自动在所有平台生效。但需要注意缓存:
# 修改技能后,重载各平台# CLI/new# 开新会话# Gateway/restart# 重启网关(或在 Gateway 管理界面操作)# Dashboard刷新页面 / 新对话6.3 平台特定的技能配置
有些技能可能只适合特定平台。使用platforms字段或技能配置可以控制:
# macOS 专属技能platforms:[macos]# 只在 CLI 启用(通过 hermes skills config 配置)# 在 Telegram 中禁用某些开发专用技能关于平台级技能配置的详细操作,将在第四模块第 16 篇讲解。
第二模块总结
至此,第二模块(使用 Skills)的六篇全部完成。回顾本模块的知识脉络:
通过这六篇,你已经掌握了 Skills 的全部使用方法。接下来的第三模块将深入 SKILL.md 文件的格式规范——为第五模块"编写自己的技能"打下基础。
下篇预告
从下一篇开始进入第三模块"SKILL.md 格式规范"。第 11 篇将从 SKILL.md 的整体结构开始——Frontmatter 和 Body 的分工、必填字段与可选字段、文件大小限制与分拆策略。
如果本篇内容对你有帮助,欢迎点赞收藏!有任何疑问,欢迎在评论区交流。