更新时间:2026-04-30 GMT+08:00
分享

技能

技能(Skill)是一种能力封装机制,用于将专业知识(如编码经验、常见问题、解决方案等)组织为可复用的模块。技能本质上是由指令、脚本和资源构成的集合,智能体可按需动态加载这些专业化的“技能包”,从而提升特定任务的执行能力与执行效率。

表1 技能与其他功能的对比

对比维度

规则(Rule)

技能(Skill)

MCP Server

定义

用于约束智能体的行为方式。

用于描述如何完成特定任务。

提供外部工具的调用能力。

加载方式

在对话开始时加载到上下文中,持续参与推理。

按需加载,减少上下文占用。

不参与推理过程,按需调用外部接口。

使用场景

定义代码规范、输出格式、团队协作约定等。

例如:代码必须符合PEP8规范。

封装测试流程、开发任务、复杂业务逻辑等。

例如:执行UI自动化测试。

连接外部系统,执行具体操作。

例如:控制浏览器操作。

关键区别

控制智能体“应该怎么做”,是行为边界。

解决“如何完成任务”,是流程指导。

提供“调用工具的能力”,是执行能力。

技能的目录结构

技能是一个包含必需的SKILL.md文件和其他可选的捆绑资源的结构化目录,打包完成特定任务所需的知识和工具。
skill-name/
├── SKILL.md (必填)
│   ├── YAML frontmatter 元数据 (必填)
│   │   ├── name: (必填)
│   │   └── description: (必填)
│   └── Markdown 指令 (必填)
└── Bundled Resources/ 捆绑资源 (选填)
    ├── scripts/      - 可执行代码 (Python/Bash 等)
    ├── references/   - 旨在根据需要加载到上下文中的文档
    └── assets/       - 输出中使用的文件 (模板、图标、字体等)
表2 技能参数说明

参数名称

说明

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模板等,直接在智能体生成的输出中使用,不需要被加载到上下文窗口。

编写SKILL.md

创建一个带有YAML frontmatter和Markdown内容的SKILL.md文件,样例如下:

---
name: safe-file-reader
description: Read files without making changes. Use when you need read-only files access.
---

# Safe File Reader

This Skill provides read-only file access.

## Instructions

1. Use Read to view file contents
2. Use Grep to search within files
3. Use Glob to find files by pattern

添加支持文件

在SKILL.md同级目录下创建其他文件,样例如下:

my-skill/
├── SKILL.md
├── reference.md
├── examples.md
├── scripts/
│   └── helper.py
└── templates/
    └── template.txt

在SKILL.md中写明引用这些支持文件,样例如下:

For advanced usage, see [reference.md](reference.md).

Run the helper script:
```bash
python scripts/helper.py input.txt
```

技能级别

华为云码道(CodeArts)代码智能体支持项目级个人级两类技能。用户可根据具体开发场景与协作需求,选择最适合的技能进行设置,实现灵活高效的代码管理。

表3 技能级别

级别

作用域

开关状态

存放位置

备注

个人级

全项目

默认开启

本地的“~/.codeartsdoer/skills/”

由用户添加

项目级

当前项目

默认开启

项目根目录的“./.codeartsdoer/skills/”

由用户添加

添加技能

华为云码道支持添加项目级个人两种类型的技能。除了直接创建技能外,您还可通过导入现有文件技能市场安装来快速集成技能。多种途径灵活高效,助您轻松扩展开发能力。

华为云码道不支持将AI生成的技能保存至云端。

市场上已上线多款开箱即用的技能,可帮助您快速提升开发效率。以下将介绍如何查找并添加这些技能。

  1. 参考快速启动操作,登录华为云码道。
  2. 打开华为云码道聊天窗口。

    • 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标 ,打开华为云码道聊天窗口。
    • Visual Studio Code:单击Visual Studio Code侧边栏图标 ,打开华为云码道聊天窗口。
    • JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标 ,打开华为云码道聊天窗口。

    不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。

  3. 在聊天界面中,单击设置图标 ,进入智能体设置页面。
  4. 在左侧导航栏中单击“技能与规则”,进入技能与规则页面。
  5. 单击“市场”,进入“市场”页签,查找技能。

    表4 查找技能

    查找方式

    具体步骤

    来源

    市场中的技能主要来源于官方优选

    • 官方:华为云码道提供的技能。
    • 优选:经筛选的第三方技能。

    在页面顶部的“全部来源”下拉框中,选择技能的来源,查看对应来源的技能列表。您还可以在搜索框中输入技能名称或者关键字快速查找技能。

    名称

    在页面右上角单击“按名称”后的排序图标,按名称排序查找技能。

    更新时间

    在页面右上角单击“最近更新”后的排序图标,按更新时间排序查找技能。

  6. 添加技能。

    1. 通过以下任一方式,弹出选择技能安装位置对话框。
      • 在指定技能后,单击添加图标
      • 单击指定技能的名称,进入技能详情页面。在技能详情页右上角,单击“添加”。

      若已创建/导入的技能名称和市场中已有技能重名,该技能在市场中将显示为“已安装”。

    2. 选择该技能的安装位置(项目级个人级),单击“确定”。

      安装成功后,该技能后的 变为“已安装”。

  7. (可选)根据实际场景,执行更新技能、修改技能安装位置和卸载技能的操作。

    表5 管理技能

    操作

    具体步骤

    更新技能

    若已创建/导入的技能名称和市场中已有技能重名,且二者版本不同,该技能在市场中将显示为“已安装”且“待更新”。若执行更新操作,会以市场中技能的内容覆盖原先的内容。

    通过以下任一方式,更新技能。

    • 将鼠标悬浮在待更新技能上,单击更新图标 。更新成功后,该技能右上角的“待更新”标识将自动消失。
    • 单击待更新技能的名称,进入技能详情页面。在右上角单击“更新”。更新成功后,该技能右上角的“待更新”标识将自动消失。

    修改技能安装位置

    1. 单击待修改安装位置的技能名称,进入技能详情页面。
    2. 在右上角单击技能安装位置(项目级/个人级),在弹出对话框中选择目标安装位置。

      当技能安装位置由原先位置变为修改后的位置时,表示修改成功。

    卸载技能

    通过以下任一方式,卸载技能。

    • 将鼠标悬浮在待卸载技能上,单击卸载图标 。卸载成功后, 变为
    • 单击待卸载技能的名称,进入技能详情页面。在右上角单击“卸载”。卸载成功后,右上角“卸载”和“项目级”/“个人级”按钮变为“添加”。

当前项目定制的技能,随代码库一并分发,确保团队成员在统一规范下协作开发,提升一致性与交付效率。项目级技能添加后即生效,何时使用由智能体决定。

  1. 参考快速启动操作,登录华为云码道。
  2. 打开华为云码道聊天窗口。

    • 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标 ,打开华为云码道聊天窗口。
    • Visual Studio Code:单击Visual Studio Code侧边栏图标 ,打开华为云码道聊天窗口。
    • JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标 ,打开华为云码道聊天窗口。

    不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。

  3. 在聊天界面中,单击设置图标 ,进入智能体设置页面。
  4. 选择“技能与规则”,在项目级页签中单击技能后的 ,在弹出的对话框中选择“手动创建”。
  5. 参考表6设置项目级技能参数,然后单击“确定”。

    表6 项目级技能参数说明

    参数

    说明

    Skill名称

    新建项目级技能的名称,例如data-cleaner-skill。

    命名规则:由小写字母、数字和连字符(-)组成,开头和结尾不能是连字符,且连字符不可连续使用,长度1~64字符。

    Skill描述

    技能的描述信息,长度不超过1024字符。

    指令

    技能的指令,用于详细说明技能的使用方法、参数、示例和依赖等。长度不超过50000字符。

  6. 查看技能。

    项目级技能创建完成后,在项目根目录的“./.codeartsdoer/skills”下,可查看到已创建的技能。

    图1 查看项目级技能

根据您的使用习惯和偏好设定个人级技能,华为云码道将始终遵循这些技能,在所有项目中为您提供更贴合个人风格的输出。个人级技能添加后即生效,何时使用由智能体决定。

  1. 参考快速启动操作,登录华为云码道。
  2. 打开华为云码道聊天窗口。

    • 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标 ,打开华为云码道聊天窗口。
    • Visual Studio Code:单击Visual Studio Code侧边栏图标 ,打开华为云码道聊天窗口。
    • JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标 ,打开华为云码道聊天窗口。

    不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。

  3. 在聊天界面中,单击设置图标 ,进入智能体设置页面。
  4. 选择“技能与规则”,在个人级页签中单击技能后的 ,在弹出的对话框中选择“手动创建”。
  5. 参考表7设置个人级技能参数,然后单击“确定”。

    表7 个人级技能参数说明

    参数

    说明

    Skill名称

    新建个人级技能的名称,例如data-validator-skill。

    命名规则:由小写字母、数字和连字符(-)组成,开头和结尾不能是连字符,且连字符不可连续使用,长度1~64字符。

    Skill描述

    技能的描述信息,长度不超过1024字符。

    指令

    技能的指令,用于详细说明技能的使用方法、参数、示例和依赖等。长度不超过50000字符。

  6. 查看技能。

    个人级技能创建完成后,在本地的“~/.codeartsdoer/skills”目录下,可查看到已创建的技能。

    图2 查看个人级技能

将已获取的本地技能包导入到华为云码道中,即可便捷地调用和使用相关功能。

导入前,请对照技能的目录结构编写SKILL.md中内容,验证技能包是否符合标准。例如,每个技能文件夹的根目录均须包含对应的SKILL.md文件,此文件中须包含YAML格式的技能名称与描述等。如果技能包不符合规范,请调整后再导入,否则可能会导入失败。

  1. 参考快速启动操作,登录华为云码道。
  2. 打开华为云码道聊天窗口。

    • 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标 ,打开华为云码道聊天窗口。
    • Visual Studio Code:单击Visual Studio Code侧边栏图标 ,打开华为云码道聊天窗口。
    • JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标 ,打开华为云码道聊天窗口。

    不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。

  3. 在聊天界面中,单击设置图标 ,进入智能体设置页面。
  4. 在左侧导航栏单击“技能与规则”,进入技能与规则页面。
  5. “项目级”“个人级”页签中,单击技能后的
  6. 在弹出的对话框中,选择“导入”。
  7. 在“上传”对话框中,选择本地的技能zip包,每次仅支持上传一个zip包,该zip包中可存放多个技能文件夹,单击“确定”。

    导入成功后,技能名称将显示在技能列表中。

    例如:如需一次性导入“docx”和“pptx”两类技能至华为云码道,可将两类技能文件夹放入同一个zip包中,再上传该zip包,即可实现批量上传功能。

使用技能

  1. 参考快速启动操作,登录华为云码道。
  2. 打开华为云码道聊天窗口。

    • 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标 ,打开华为云码道聊天窗口。
    • Visual Studio Code:单击Visual Studio Code侧边栏图标 ,打开华为云码道聊天窗口。
    • JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标 ,打开华为云码道聊天窗口。

    不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。

  3. 在聊天界面的输入框下方选择“智能体”,切换到智能体模式。右侧显示当前选用的模型,您可在下拉框中切换不同大语言模型。

    图3 切换到智能体模式

  4. 在聊天窗口的输入框中,输入以下内容,单击发送图标

    使用skill-creator生成一个绘图过程需要遵守的规范,名称为drawing-standards,内容如下:
    - 横轴为x轴
    - 纵轴为y轴
    - 原点O(0,0)必须清晰标注
    - 坐标轴箭头、刻度和单位长度要统一
    - 刻度线是细实线
    - 轴线是稍粗实线

  5. 查看技能调用结果。

    图4 技能调用结果

管理技能

  • 启用和禁用技能:创建技能后,在华为云码道设置页面的技能与规则中,可通过开关启用或禁用项目级、个人级的技能。
    图5 启动和禁用技能

    创建项目级技能时,华为云码道会在项目目录的相应路径下生成一个名为“ProjectSkillStatus.txt”的文件,以记录项目中各个技能的开关状态。每一行记录一个技能的状态,格式为技能名=true(表示启用)或技能名=false(表示禁用)

    删除某个技能后,“ProjectSkillStatus.txt”文件中对应的记录也会同步移除,确保文件内容与项目状态保持一致。

    图6 ProjectSkillStatus文件示例
  • 编辑和删除技能:在华为云码道设置页面的技能与规则中,将鼠标悬浮在对应的技能上,通过单击 ,来编辑或删除项目级、个人级技能。
    图7 编辑和删除技能

相关文档