AgentHarness 课程

自定义Skills开发

3.5K字·9分钟·
Skill开发、触发机制、工具集成、SKILL.md、最佳实践

自定义 Skills 开发

掌握 WorkBuddy 自定义 Skills 的开发方法,扩展 AI 的能力边界。

学习目标

  • 理解 Skills vs MCP 的区别
  • 掌握触发机制设计
  • 学会工具集成方法
  • 了解开发最佳实践

核心内容

1. Skills vs MCP

理解 Skills 和 MCP 的区别是开发自定义技能的基础:

维度SkillsMCP
定义AI 行为指令集工具调用协议
作用约束 AI 如何工作扩展 AI 能力边界
形式Markdown + YAML代码服务
示例"代码审查专家""GitHub API"

Skills 的特点

  • 定义 AI 的行为模式和角色
  • 包含指令、规则和工作流程
  • 通过触发词激活
  • 以 Markdown 和 YAML 格式定义

MCP 的特点

  • 提供标准化的工具调用接口
  • 扩展 AI 的实际操作能力
  • 以代码服务形式实现
  • 通过配置文件集成

两者互补:Skills 定义 "做什么",MCP 提供 "怎么做" 的能力。

2. 触发机制设计

触发机制决定了 Skill 何时被激活,支持多种触发方式:

基本触发

triggers:
  - review code
  - code review
  - 代码审查

条件触发

triggers:
  - pattern: "审查.*代码"
    condition: "file_type == 'python'"
  - pattern: "review.*code"
    condition: "language == 'javascript'"

触发词设计原则

  • 简洁明了:使用简短、易记的触发词
  • 避免冲突:确保触发词不会与其他 Skill 冲突
  • 支持多语言:为中英文用户提供触发词
  • 模式匹配:支持正则表达式实现灵活匹配

好的触发机制能确保 Skill 在正确的时间被激活,提供精准的服务。

3. 工具集成方法

Skills 可以集成外部工具,扩展 AI 的实际操作能力:

工具集成配置

tools:
  - name: eslint
    command: "npx eslint {file}"
    when: "file_type == 'javascript'"
  - name: pylint
    command: "pylint {file}"
    when: "file_type == 'python'"

集成步骤

  1. 识别工具需求:确定 Skill 需要哪些外部工具
  2. 配置工具命令:定义工具的调用命令和参数
  3. 设置执行条件:指定工具在什么情况下执行
  4. 处理工具输出:解析工具返回的结果

常见集成场景

  • 代码质量检查工具(ESLint、Pylint)
  • 测试框架(Jest、Pytest)
  • 构建工具(Webpack、Vite)
  • 部署工具(Docker、Kubernetes)

工具集成让 Skill 不仅能提供建议,还能执行实际操作。

4. 开发最佳实践

遵循最佳实践能提高 Skill 的质量和可维护性:

目录结构

.skills/
├── code-review/
│   ├── SKILL.md          # 主文件
│   ├── references/       # 参考资料
│   │   └── best-practices.md
│   └── templates/        # 模板文件
│       └── review-template.md
├── data-analysis/
│   └── SKILL.md
└── content-writing/
    └── SKILL.md

SKILL.md 格式

---
name: code-review
description: 专业的代码审查技能
triggers:
  - review code
  - code review
  - 代码审查
---
# 代码审查专家
## 角色定义
你是一位资深的代码审查专家,专注于...
## 审查维度
1. **代码质量**
   - 命名规范
   - 代码结构
   - 注释完整
2. **安全性**
   - SQL 注入
   - XSS 攻击
   - 敏感信息泄露
3. **性能**
   - 时间复杂度
   - 空间复杂度
   - 数据库查询

开发流程

  1. 创建 Skill 目录和主文件
  2. 定义角色和技能范围
  3. 设计触发词和条件
  4. 集成必要的工具
  5. 测试和调试
  6. 文档化和共享

调试技巧

  • 查看日志输出,确认 Skill 被正确激活
  • 检查触发词匹配逻辑
  • 验证指令执行效果
  • 测试边界条件和异常情况

实操练习

练习 1:创建自定义 Skill

目标:创建一个 "代码审查专家" Skill,能够自动审查代码质量

步骤

  1. 创建 Skill 目录

    mkdir -p .skills/code-review
    cd .skills/code-review
    
  2. 创建 SKILL.md 文件

    ---
    name: code-review
    description: 专业的代码审查技能
    triggers:
      - review code
      - code review
      - 代码审查
    ---
    # 代码审查专家
    ## 角色定义
    你是一位资深的代码审查专家,专注于发现代码中的问题并提供改进建议。
    ## 审查维度
    1. **代码质量**
       - 命名规范
       - 代码结构
       - 注释完整
    2. **安全性**
       - SQL 注入风险
       - XSS 攻击漏洞
       - 敏感信息泄露
    3. **性能**
       - 时间复杂度
       - 空间复杂度
       - 数据库查询优化
    ## 审查流程
    1. 理解代码上下文和功能
    2. 逐行检查代码质量
    3. 识别潜在问题和风险
    4. 提供具体的改进建议
    5. 生成审查报告
    
  3. 添加参考资料: 创建 references/best-practices.md,包含编码最佳实践

  4. 测试 Skill

    • 在 WorkBuddy 中输入 "review code" 或 "代码审查"
    • 提供一段代码让 Skill 审查
    • 验证审查结果的质量和准确性
  5. 优化和迭代

    • 根据测试结果调整触发词
    • 完善审查维度和标准
    • 添加更多参考资料

总结

关键要点...

下一步

  • 完成练习
  • 查看相关文档
  • 尝试实际应用