AgentHarness 课程
Hermes 专题/课程概述

第三十九课:Skills 技能系统

Skills使用Skills开发与AGENTS.md的关系

学习目标

  • 了解 Skills 的概念和作用
  • 掌握 Skills 的使用方法
  • 学会开发自定义 Skills
  • 理解 Skills 与 AGENTS.md 的关系

一、什么是 Skills

Skills 是可复用的任务指令包,包含特定任务的指导、资源和脚本。它就像是给代理的"技能书",告诉代理如何完成特定类型的任务。

1.1 Skills 的组成

一个完整的 Skill 包含以下部分:

  • SKILL.md:Skill 定义文件,包含触发条件、操作步骤、验证方法
  • references/:参考文档,提供详细的技术信息
  • templates/:模板文件,用于生成代码或文档
  • scripts/:脚本文件,用于自动化操作
  • assets/:资源文件,如图片、配置等

1.2 Skills 的价值

Skills 的核心价值在于知识复用和质量保证:

  • 复用最佳实践:将成功的经验固化为 Skill,避免重复造轮子
  • 提高效率:代理可以快速执行已知任务,无需每次重新探索
  • 保证质量:Skill 经过验证,输出质量有保障
  • 知识传承:团队成员可以共享 Skills,降低学习成本

1.3 Skills 的特点

  • 按需加载:Skills 不会预先注入上下文,只有在需要时才加载
  • 独立封装:每个 Skill 是独立的,互不干扰
  • 可组合:多个 Skills 可以组合使用
  • 可版本化:Skills 可以版本管理,支持回滚

二、使用 Skills

2.1 浏览 Skills

在交互会话中输入 /skills 浏览可用 Skills。显示内容包括:

  • Skill 名称
  • 描述信息
  • 触发条件
  • 使用示例

2.2 自动加载

当代理识别到匹配的任务时,会自动加载对应的 Skill。匹配方式:

  • 关键词匹配:用户输入包含特定关键词
  • 任务类型匹配:任务符合特定模式
  • 上下文匹配:当前上下文触发特定 Skill

2.3 手动使用

也可以手动指定使用某个 Skill:

> 使用 skill: code-review 审查这段代码

2.4 Skill 加载机制

Skills 按需加载,不会预先注入到上下文中。加载过程:

  1. 分析用户输入
  2. 匹配触发条件
  3. 加载 SKILL.md 内容
  4. 注入到工具结果中
  5. 代理按照 Skill 指导执行

三、开发 Skills

3.1 Skill 文件结构

my-skill/
├── SKILL.md          # Skill 定义(必需)
├── references/       # 参考文档(可选)
│   └── api-docs.md
├── templates/        # 模板文件(可选)
│   └── component.tsx
├── scripts/          # 脚本文件(可选)
│   └── validate.sh
└── assets/           # 资源文件(可选)
    └── config.json

3.2 SKILL.md 格式

---
name: code-review
description: 代码审查技能,提供全面的代码质量检查
triggers:
  - "审查代码"
  - "code review"
  - "检查代码质量"
version: 1.0.0
author: team
---

# 代码审查技能

## 功能描述
对代码进行全面的质量检查,包括:
- 代码风格检查
- 安全漏洞扫描
- 性能优化建议
- 最佳实践检查

## 操作步骤
1. 读取目标代码文件
2. 运行静态分析工具
3. 检查代码风格
4. 扫描安全漏洞
5. 生成审查报告

## 验证方法
- 检查报告是否包含所有检查项
- 验证建议是否可操作
- 确认没有遗漏重要问题

## 参考资料
- [代码审查最佳实践](references/best-practices.md)
- [安全检查清单](references/security-checklist.md)

3.3 触发条件

定义什么时候使用这个 Skill:

  • 关键词匹配:用户输入包含特定关键词
  • 正则表达式:用户输入匹配特定模式
  • 任务类型:任务属于特定类型

3.4 操作步骤

详细描述如何执行任务:

  • 具体的命令和参数
  • 需要检查的文件和目录
  • 验证方法和标准
  • 错误处理方式

3.5 验证方法

定义如何验证任务完成:

  • 输出格式检查
  • 结果正确性验证
  • 质量标准检查

四、Skills 与 AGENTS.md 的关系

4.1 互补关系

  • AGENTS.md:项目级指令,定义项目规范和通用规则
  • Skills:任务级指令,定义特定任务的执行方法

4.2 协同工作

  • AGENTS.md 提供项目上下文,告诉代理项目的技术栈、规范、约定
  • Skills 提供任务执行细节,告诉代理如何完成特定任务
  • 两者结合,代理可以高效完成任务

4.3 优先级

当 Skills 与 AGENTS.md 冲突时:

  • Skills 的优先级更高,因为 Skills 更具体
  • 但 AGENTS.md 的项目规范仍然有效
  • Skills 应该遵循 AGENTS.md 的通用规范

4.4 使用建议

  • 在 AGENTS.md 中定义通用规范
  • 在 Skills 中定义具体任务的执行方法
  • 避免在 Skills 中重复 AGENTS.md 的内容

五、Skills 管理

5.1 安装 Skills

从 Skills Hub 安装:

harness skill install <skill-name>

安装过程:

  1. 从 Hub 下载 Skill 包
  2. 验证完整性
  3. 安装到本地 Skills 目录
  4. 注册到 Skills 索引

5.2 创建 Skills

使用 harness 命令创建:

harness skill create <skill-name>

创建过程:

  1. 生成 SKILL.md 模板
  2. 创建目录结构
  3. 添加到 Skills 索引

5.3 更新 Skills

harness skill update <skill-name>

更新过程:

  1. 检查是否有新版本
  2. 下载新版本
  3. 备份旧版本
  4. 安装新版本

5.4 分享 Skills

将 Skill 发布到 Skills Hub:

harness skill publish <skill-name>

发布过程:

  1. 验证 Skill 质量
  2. 上传到 Hub
  3. 更新版本号

六、最佳实践

6.1 设计原则

  • 单一职责:每个 Skill 只做一件事,避免过于复杂
  • 可复用:Skill 应该可以在多个项目中使用
  • 可测试:Skill 的输出应该可以验证
  • 文档完善:提供清晰的使用说明和示例

6.2 编写技巧

  • 使用清晰的语言描述操作步骤
  • 提供具体的示例和代码片段
  • 包含错误处理和边界情况
  • 定义明确的验证标准

6.3 维护建议

  • 定期更新 Skill,保持与最新技术同步
  • 收集用户反馈,持续改进
  • 版本管理,支持回滚
  • 监控使用情况,优化性能

七、本课小结

要点说明
Skills可复用的任务指令包
使用/skills 浏览,按需加载
开发SKILL.md + 资源文件
与 AGENTS.md互补关系,Skills 优先级更高
管理install/create/update/publish

下一步

下一课我们将了解 Codex Cloud。