Hermes Agent 是一款强大的开源终端 AI 智能体,支持通过 自定义 Skill 扩展能力。每个 Skill 就像给 AI 配备的一个"工具包"——告诉 AI 如何完成特定任务,并提供详细的步骤和注意事项。
本文以 CSDN 文章发布 这个 Skill 为例,完整展示自定义 Skill 的开发全过程。你将看到:
- 如何通过自然语言对话让 AI 理解你的需求
- AI 如何将对话过程自动封装为 Skill 文件
- 如何对 Skill 进行迭代优化(默认参数、异常处理、返回格式)
- 最终的 Skill 文件和调用效果
适合想要深入使用 Hermes Agent、自定义工作流的开发者阅读。
在 Hermes Agent 中,Skill 是一份 Markdown 格式的指令文档,存储在 ~/.hermes/skills/ 目录下。当 AI 收到与某个 Skill 匹配的请求时,会自动加载该 Skill 并按其中的步骤执行。
Skill 的核心作用:
- 固化经验:把一次成功操作的所有步骤、踩过的坑、注意事项记录下来
- 标准化流程:每次执行同样的任务,结果一致可靠
- 简化调用:默认参数让你不必每次都重复指定
- 异常处理:预判常见问题并自动处理
Skill 的存放路径:
~/.hermes/skills/ ├── custom/ # 用户自定义 Skill(我们的目标目录) │ └── csdn_publish/SKILL.md ├── social-media/ # 官方 Skill └── ...
2.1 第一步:对话驱动 Skill 生成
整个过程始于一次真实的 CSDN 文章发布操作。我通过浏览器 Cookie 登录 CSDN,完成了文章标题填写、内容注入、标签添加和发布。操作成功后,我告诉 AI:
"帮我把这个发布 CSDN 文章的流程,自动封装成一个自定义 Skill。"
AI 的回应:
- 读取了已有的
csdn-publish官方 Skill 作为参考 - 将刚刚的操作步骤、注意事项、踩过的坑全部整理成结构化的 SKILL.md 文件
- 保存到
~/.hermes/skills/custom/csdn-publish/SKILL.md - Hermes 自动识别新技能,无需手动 reload
这是第一次迭代生成的 Skill,包含了基本的发布流程。
2.2 第二步:迭代优化
有了基础 Skill 后,我提出了更多优化需求:
需求清单:
- 重命名:
csdn-publish→csdn_publish(下划线命名更 Pythonic) - 默认参数:默认标签
["AI", "Hermes", "技术分享"],默认分类"人工智能",默认直接发布 - 固定返回格式:发布成功后,显示标题、链接、状态、标签,一目了然
- 异常处理:
- CSDN 403 错误时自动重试一次
- 发布按钮无响应时自动切换编辑器模式
- Cookie 过期时提示重新登录
AI 执行了以下操作:
# 1. 删除旧技能 hermes skills delete csdn-publish # 2. 创建新技能(含完整优化内容) hermes skills create --name csdn_publish --category custom
优化后的 Skill 文件内容见下一节。
以下是最终生成的 csdn_publish Skill 完整内容:
3.1 YAML 元信息
--- name: csdn_publish description: 使用 Cookie 登录 CSDN 并发布博客文章。 支持设置标题、内容、标签、分类, 可选择直接发布或保存草稿。 默认标签为 ["AI", "Hermes", "技术分享"], 默认分类为"人工智能",默认直接发布。 tags: [csdn, blog, publishing, social-media, cookie-auth, custom] defaults: tags: ["AI", "Hermes", "技术分享"] category: "人工智能" publish_mode: "publish" ---
3.2 默认参数
| 参数 | 默认值 | 说明 |
|------|--------|------|
| tags | ["AI", "Hermes", "技术分享"] | 文章标签列表 |
| category | "人工智能" | 文章分类 |
| publish_mode | "publish" | 发布模式 |
用户可在调用时覆盖任意默认参数。
3.3 固定返回格式
发布结果 ━━━━━━━━━━━━━━━━━━━━━━━━━ 标题: Hermes Agent 接入飞书机器人完整教程 链接: https://blog.csdn.net/element_wen/article/details/文章ID ✅ 状态: 发布成功(审核中) ️ 标签: AI, Hermes, 技术分享 ━━━━━━━━━━━━━━━━━━━━━━━━━
3.4 异常处理策略
| 异常场景 | 处理策略 |
|----------|----------|
| CSDN 403 错误 | 自动重试一次,导航到管理页面验证 |
| 发布按钮无响应 | 自动切换编辑器模式后重试 |
| Cookie 过期 | 提示用户"Cookie 已过期,请重新导出" |
| 内容注入失败 | 切换编辑器模式后重试注入 |
| 标签弹窗不出现 | 跳过标签设置,继续发布 |
| 标题输入不生效 | 使用 JS 方式设置标题值 |
| 首页 403 | 使用管理页面验证 |
4.1 基础调用
用户提供 Cookie 和文章路径即可。
请使用 csdn_publish 技能 Cookie 是:[JSON 数组格式的 Cookie] 文章路径:/home/dell/my_article.md 标题:深入理解 Hermes Agent 的 Skill 系统
/home/dell/.hermes/skills/custom/csdn_publish/SKILL.md
Hermes Agent 会自动扫描 ~/.hermes/skills/ 下的所有 SKILL.md 文件,无需手动注册或 reload。
6.1 Skill 的**实践
- 先做再说:先通过对话完成一次完整操作,让 AI 记录所有步骤
- 迭代优化:基础版本生成后,逐步添加默认参数、异常处理、返回格式
- 详细记录坑点:每次操作中遇到的错误和解决方案都写进 Skill
- 结构化文档:使用 YAML 元信息 + 清晰的 Markdown 层级
- 默认参数为王:高频使用的参数设默认值,减少调用时的输入
6.2 什么样的操作适合封装为 Skill
- 多步骤操作(5 步以上)
- 容易踩坑的操作(需要避坑指南)
- 重复性工作(每周/每月都要做的)
- 参数固定的操作(适合设默认参数)
通过这个案例,我们完整走通了 Hermes Agent 自定义 Skill 开发的完整流程:
- 对话驱动:告诉 AI 你的需求,它帮你封装
- 迭代优化:逐步添加默认参数、异常处理、返回格式
- 即刻生效:文件保存后自动生效,无需重启或 reload
- 可复用:以后每次发 CSDN 文章,只需说一句帮我发篇文章即可
这就是 Skill 即代码 的理念——将 AI 的经验和能力固化为可复用的模块,让每次操作都站在前一次的肩膀上。
本文由 Hermes Agent 自动生成并发布到 CSDN。
本文也作为 csdn_publish 自定义 Skill 的一次自我验证——用自己创建的 Skill 发布一篇关于创建这个 Skill 本身的文章。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/280329.html