创建自定义技能
本指南将教你如何从零开始创建一个 CountBot 技能,包括文件结构、配置管理和最佳实践。
致谢 anthropics/skills
CountBot 的技能系统设计深受 anthropics/skills 的启发。感谢 Anthropic 团队开创性的 Agent Skills 机制,为整个行业提供了规范与示例。CountBot 在此基础上,增加了图形化配置界面和中文友好的开发体验。
目录
什么是技能
技能(Skills) 是 CountBot 的扩展机制,用于教会 AI 如何完成特定任务。技能本质上是:
- 文档 - 包含使用说明和示例的 Markdown 文件
- 🐍 脚本 - 可选的 Python 脚本实现具体功能
- ⚙️ 配置 - 可选的配置文件(API Key、参数等)
技能让 AI 能够:
- 调用外部 API(搜索、地图、天气等)
- 执行复杂的数据处理
- 生成特定格式的内容
- 与第三方服务集成
技能 vs 工具
理解技能和工具的区别很重要:
| 维度 | 工具(Tools) | 技能(Skills) |
|---|---|---|
| 定义 | 内置的系统能力 | 外部扩展的功能 |
| 调用方式 | LLM 直接调用 | 通过 exec 工具执行 |
| 实现语言 | Python(内置) | 任意语言(通常 Python) |
| 配置 | 系统配置 | 独立配置文件 |
| 示例 | read_file, exec, web_fetch | 天气查询、图片生成、邮件管理 |
工作流程:
用户: "查询北京天气"
↓
AI: 使用 read_file 读取 weather 技能文档
↓
AI: 阅读文档中的命令示例
↓
AI: 使用 exec 工具执行命令
↓
返回结果给用户
快速开始
1. 创建技能目录
技能存放在 workspace/skills/ 目录下:
workspace/skills/
└── my-skill/ # 技能名称(小写,连字符分隔)
├── SKILL.md # 必需:技能文档
├── scripts/ # 可选:Python 脚本
│ ├── main.py
│ └── config.json # 可选:配置文件
└── README.md # 可选:开发文档
2. 创建 SKILL.md
最简单的技能只需要一个 SKILL.md 文件:
---
name: my-skill
description: 我的第一个技能
metadata: {"CountBot": {"always": false}}
---
# 我的技能
这个技能用于演示如何创建自定义技能。
## 使用方法
直接在对话中提到相关功能,AI 会自动读取并使用这个技能。
## 示例
用户: "使用我的技能"
AI: 我会读取这个文档并按照说明操作
3. 重载技能
创建完成后,在 CountBot Web UI 中:
- 进入「设置」→「技能管理」
- 点击「重载技能」按钮
- 新技能会出现在列表中
4. 使用图形化配置(可选)
CountBot 提供了图形化配置界面,无需手动编辑 JSON 文件:
-
打开技能管理
- 点击右上角的「技能」图标
- 或进入「设置」→「技能管理」
-
查看技能列表
- 显示所有已加载的技能
- 可以启用/禁用技能
- 查看技能详情
-
配置技能
- 点击技能卡片的「配置」按钮
- 在图形化界面中填写配置项
- 支持的字段类型:
- 文本输入(API Key、URL 等)
- 密码输入(自动隐藏)
- 数字输入(带范围验证)
- 布尔开关
- 下拉选择
- 嵌套对象
-
保存配置
- 点击「保存」按钮
- 配置自动写入
scripts/config.json - 自动验证配置格式
图形化配置的优势:
- 无需手动编辑 JSON 文件
- 自动验证配置格式
- 敏感信息自动隐藏
- 提供字段说明和帮助文档
- 支持配置自动修复