Files
CyberStrikeAI/skills/README.md
2026-01-16 00:18:16 +08:00

125 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Skills 系统使用指南
## 概述
Skills系统允许你为角色配置专业知识和技能文档。当角色执行任务时系统会将技能名称添加到系统提示词中作为推荐提示AI智能体可以通过 `read_skill` 工具按需获取技能的详细内容。
## Skills结构
每个skill是一个目录包含一个`SKILL.md`文件:
```
skills/
├── sql-injection-testing/
│ └── SKILL.md
├── xss-testing/
│ └── SKILL.md
└── ...
```
## SKILL.md格式
SKILL.md文件支持YAML front matter格式可选
```markdown
---
name: skill-name
description: Skill的简短描述
version: 1.0.0
---
# Skill标题
这里是skill的详细内容可以包含
- 测试方法
- 工具使用
- 最佳实践
- 示例代码
- 等等...
```
如果不使用front matter整个文件内容都会被作为skill内容。
## 在角色中配置Skills
在角色配置文件中添加`skills`字段:
```yaml
name: 渗透测试
description: 专业渗透测试专家
user_prompt: 你是一个专业的网络安全渗透测试专家...
tools:
- nmap
- sqlmap
- burpsuite
skills:
- sql-injection-testing
- xss-testing
enabled: true
```
`skills`字段是一个字符串数组每个字符串是skill目录的名称。
## 工作原理
1. **加载阶段**:系统启动时,会扫描`skills_dir`目录下的所有skill目录
2. **执行阶段**:当使用某个角色执行任务时:
- 系统会将角色配置的skill名称添加到系统提示词中作为推荐提示
- **注意**skill的详细内容不会自动注入到系统提示词中
- AI智能体需要根据任务需要主动调用 `read_skill` 工具获取技能的详细内容
3. **按需调用**AI可以通过以下工具访问skills
- `list_skills`: 获取所有可用的skills列表
- `read_skill`: 读取指定skill的详细内容
这样AI可以在执行任务过程中根据实际需要自主调用相关skills获取专业知识。即使角色没有配置skillsAI也可以通过这些工具按需访问任何可用的skill。
## 示例Skills
### sql-injection-testing
包含SQL注入测试的专业方法、工具使用、绕过技术等。
### xss-testing
包含XSS测试的各种类型、payload、绕过技术等。
## 创建自定义Skill
1.`skills`目录下创建新目录,例如`my-skill`
2. 在该目录下创建`SKILL.md`文件
3. 编写skill内容
4. 在角色配置中添加该skill名称
```bash
mkdir -p skills/my-skill
cat > skills/my-skill/SKILL.md << 'EOF'
---
name: my-skill
description: 我的自定义技能
---
# 我的自定义技能
这里是技能内容...
EOF
```
## 注意事项
- **重要**Skill的详细内容不会自动注入到系统提示词中只有技能名称会作为提示添加
- AI智能体需要通过 `read_skill` 工具主动获取技能内容这样可以节省token并提高灵活性
- Skill内容应该清晰、结构化便于AI理解
- 可以包含代码示例、命令示例等
- 建议每个skill专注于一个特定领域或技能
- 建议在skill的YAML front matter中提供清晰的 `description`帮助AI判断是否需要读取该skill
## 配置
`config.yaml`中配置skills目录
```yaml
skills_dir: skills # 相对于配置文件所在目录
```
如果未配置,默认使用`skills`目录。