Skills

Hermes Agent 的技能开发指南

技能是把 Hermes 从"开箱能用"推向"越用越强"的关键机制。这一页专门讲怎么写技能、 有哪些类型的技能、开发流程怎么走,以及最容易踩的坑。

技能认知

先搞清技能是什么,不是什么

技能是什么

技能是 Hermes 的能力单元,把一组可复用的操作、知识和流程打包成 agent 可以直接调用的模块。

技能为什么重要

没有技能的 Hermes 每次面对类似任务都需要重新"临场发挥";有了技能之后,成功模式可以被固定和复用。

技能与工具的区别

工具是单点动作(读文件、发请求),技能是封装了逻辑的完整能力单元(执行研究工作流、生成周报)。

技能的运行方式

技能在 Hermes 的沙箱中运行,可以访问已授权的文件、网络和工具资源,输出结果返回给主 agent。

技能分类

不同任务适合不同类型的技能

信息处理型

对输入信息进行分析、转换和结构化输出。

  • 文档摘要技能
  • 数据格式转换技能
  • 多语言翻译技能
这类技能的核心价值是降低重复劳动,适合输入输出模式相对固定的场景。
研究工作流型

按固定步骤完成资料收集、整理和结论生成。

  • 竞品调研技能
  • 技术方案评估技能
  • 行业趋势跟踪技能
这类技能的价值来自把经验流程固化,让每次执行的结果质量更稳定。
自动化操作型

在授权范围内执行具体动作并返回操作结果。

  • 定时巡检技能
  • 数据备份技能
  • 部署验证技能
这类技能需要最严格的权限声明,因为直接作用于外部环境的修改。
协作编排型

协调多个子任务或子 agent 完成复杂工作。

  • 多源数据聚合技能
  • 跨步骤项目推进技能
  • 多 agent 协作调度技能
这类技能相当于"元技能",用来管理其他技能的调用顺序和结果合并。

开发流程

从想法到可调用技能,通常走这五步

定义明确技能边界

先写清楚技能负责什么、不负责什么、输入输出格式。边界清晰的技能更容易测试和维护。

实现编写技能代码

按 Hermes 技能规范编写实现代码,声明需要的权限和资源。遵循单一职责原则,一个技能只做一件事。

测试在隔离环境中验证

在沙箱中单独测试技能的行为,确认输入输出符合预期,再在完整 Hermes 系统中集成。

注册注册并分配权限

将技能注册到 Hermes 配置中,分配最小必要的权限。注册后通过任务验证技能是否能被正确调用。

迭代根据使用反馈持续改进

技能不是一次写完就结束。在实际使用中观察它的调用频率、成功率和结果质量,持续优化。

最佳实践

值得长期坚持的几条技能编写原则

一个技能只做一件完整的事

技能应该封装一个可独立完成的任务单元,而不是把多个不相关的操作塞进同一个技能。

声明必要的最小权限

明确声明技能需要的文件、网络和执行权限。权限声明既是为了安全,也是让调用者理解技能的边界。

为技能编写清晰的描述

Hermes 的模型通过技能描述来判断何时调用它。描述应该说明技能的功能、适用条件和输出格式。

技能应该可重复且可预测

给定相同输入,技能应产生一致输出。避免在技能中引入随机性或依赖不可控的外部状态。

记录技能的调用日志

每个技能调用都应该记录输入、输出、耗时和状态。这些日志是后续排查问题和优化技能的依据。

常见误区

这些写法最容易让技能的价值打折扣

技能做得太大

一个技能试图做太多事,会导致边界模糊、难以测试、调用场景受限。保持技能聚焦。

技能描述写得太模糊

如果 Hermes 看不懂技能什么时候该用,技能写了也等于没用。描述应该具体到触发条件。

权限声明过于宽松

为图方便声明多余权限,一旦技能被滥用或误用,危害范围会被放大。

技能写完不测试就上线

未经测试的技能在真实工作流中失败时,排查成本往往高于写技能本身。