Hermes Skills 示例

通过自定义 Hermes 技能,将重复性任务封装为一键命令,提升个人工作效率与系统一致性。

为什么需要自定义技能?

开发者的日常工作中充满重复性任务,如部署博客、格式化代码、备份数据等。通过将这些任务封装为 Hermes 技能(Skills),可以实现一键执行,节省时间。

技能的基础结构

Hermes 技能由以下部分组成:

  • 元数据:技能名称、描述、触发条件(YAML 前言)。
  • 步骤:具体的执行逻辑,支持工具调用和条件分支。
  • 引用文件:如脚本、模板或配置文件(可选)。

技能存储在 ~/.hermes/skills/ 目录下,每个技能是一个子目录,包含 SKILL.md 文件。

创建第一个技能:自动部署 Hugo 博客

第一步:创建技能目录

mkdir -p ~/.hermes/skills/deploy-blog
cd ~/.hermes/skills/deploy-blog

第二步:编写 SKILL.md

---
name: deploy-blog
description: "一键构建并部署 Hugo 博客到 Vercel"
---
1. 进入博客目录:
   ```bash
   cd /root/hugo-blog
  1. 构建静态文件:

    hugo --minify
    
  2. 部署到 Vercel:

    npx vercel deploy --prod --yes
    

### 第三步:测试技能
```bash
hermes run deploy-blog

进阶技巧

1. 动态参数传递

在技能步骤中使用变量:

hermes run deploy-blog --env "production"

并在 SKILL.md 中引用:

npx vercel deploy --prod --env {{env}} --yes

2. 多步骤工作流

将复杂任务分解为子步骤,Hermes 会按顺序执行:

1. 备份数据库
   ```bash
   mysqldump -u user -p db_name > backup.sql
  1. 压缩备份文件

    gzip backup.sql
    
  2. 上传到云存储

    aws s3 cp backup.sql.gz s3://my-backups/
    

### 3. 错误处理
在技能中添加错误检查逻辑:
```bash
if [ $? -ne 0 ]; then
  echo "部署失败,请检查日志!"
  exit 1
fi

常见问题

Q: 如何调试技能? A: 使用 hermes run --debug <skill-name> 查看详细日志。

Q: 技能存储在哪里? A: 默认在 ~/.hermes/skills/,可通过 hermes skills path 查看。

实战案例:博客图片优化技能

一键压缩博客目录下所有图片并替换原文件:

#!/bin/bash
find /root/hugo-blog/static/images -type f \( -iname "*.jpg" -o -iname "*.png" \) \
  -exec sh -c 'cwebp -q 80 "$0" -o "${0%.*}.webp" && rm "$0"' {} \;

封装为技能后,只需运行 hermes run optimize-images


💡 提示:将常用的技能添加到 ~/.bashrc~/.zshrc 中,以便在任意目录下调用。