
# 技能
#### 配置目录
技能按作用范围可分为项目级和个人级。
| 类型  | 作用域             | 存放位置                                                                                                                                                        |
|:---|:---|:---|
| 项目级 | 仅针对当前项目生效，存储在本地 | 项目根目录/.codeartsdoer/skills                                                                                                                                  |
| 个人级 | 当前用户下的所有项目      | \~/.codeartsdoer/skills "\~"表示当前用户的主目录，Windows下等同于"C:\\Users\\用户名\\"，macOS下等同于"/Users/用户名/"，Linux下等同于"/home/用户名/" |
   
**若存在名称相同的技能，技能调用优先级为：项目级 \> 个人级。**
#### 技能的目录结构
技能是一个包含**必需的SKILL.md文件** 和其他**可选的捆绑资源** 的结构化目录，打包完成特定任务所需的知识和工具。
```
skill-name/
├── SKILL.md (必填)
│   ├── YAML frontmatter 元数据 (必填)
│   │   ├── name: (必填)
│   │   └── description: (必填)
│   └── Markdown 指令 (必填)
└── Bundled Resources/ 捆绑资源 (选填)
    ├── scripts/      - 可执行代码 (Python/Bash 等)
    ├── references/   - 旨在根据需要加载到上下文中的文档
    └── assets/       - 输出中使用的文件 (模板、图标、字体等)
```
表1技能参数说明 
| 参数名称                  | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|
| skill-name            | 整个技能的根目录，skill-name需要替换成实际的技能名称（比如data-analysis-skill）。技能名称由小写字母、数字和连字符（-）组成，开头和结尾不能是连字符，且连字符不可连续使用，长度1\~64字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| SKILL.md              | **SKILL.md文件名不可修改。**它是技能的核心描述文件，相当于技能的"说明书"，必须包含以下两部分： - **YAML frontmatter元数据** ：放在SKILL.md文件的最顶部，以"---"首尾包裹，是AI可解析的结构化信息。包含name和description两个字段。 - **name** ：技能名称，由小写字母、数字和连字符（-）组成，开头和结尾不能是连字符，且连字符不可连续使用，长度1\~64字符。**name必须与skill-name保持一致**。  - **description**：技能描述，长度不超过1024字符。该字段对华为云码道代码智能体识别技能的使用场景至关重要，需清晰描述技能功能及适用触发条件。    - **Markdown指令**：YAML元数据下方的Markdown内容，用于详细说明技能的使用方法、参数、示例和依赖等。   |
| Bundled Resources（可选） | 存放技能配套资源的目录，非必填，但能让技能更完整。 - **scripts/** ：存放技能的可执行脚本，例如Python脚本、Shell脚本等，实现**确定性操作**。  - **references/** ：存放技能依赖的参考文档，例如API文档、领域知识、公司政策等，是给智能体的**知识库**，这些文档会在技能执行时按需加载到上下文。  - **assets/**：存放资源文件，例如字体资源、公司Logo、PPT模板等，直接在智能体生成的输出中使用，不需要被加载到上下文窗口。                                                                                                                                                                                                                                                                                                                                                            |
   
#### 示例
本文以Windows系统为例，创建个人级技能，在".codeartsdoer/skills"下创建"test"文件夹，在该文件夹下创建"SKILL.md"文件，写入如下内容。
```
---
name: test
description: add a "test" after each answer
---
#回答增加后缀
在每个回答结束的时候加上“测试”
```
编写示例后，可在[TUI下启动]或者[CLI下启动]进行验证。
 #### TUI下启动
1. 编写示例后，进入TUI开发模式，输入"/skills"可查看技能列表。 
   图1查看技能   
   ![](https://support.huaweicloud.com/usermanual-cli/zh-cn_image_0000002679672235.png "点击放大")
   
   
2. 选中"test"技能后，输入指令"测试一下"并回车，"test"技能生效。
 
 #### CLI下启动
1. 打开CMD，输入如下指令： 
   ```
   codearts run add a "test" after each answer
   ```
   
   
2. 回显如下信息，表明test技能已生效。 
   ```
   C:\Users\用户名>codearts run add a "test" after each answer
   > build · GLM-5.2
   → Skill "test"
   已加载该技能。现在起，我会在每个回答末尾加上“测试”。
   ```
   
   
 
