技能
技能(Skill)是一种能力封装机制,用于将专业知识(如编码经验、常见问题、解决方案等)组织为可复用的模块。技能本质上是由指令、脚本和资源构成的集合,智能体可按需动态加载这些专业化的“技能包”,从而提升特定任务的执行能力与执行效率。
| 对比维度 | 规则(Rule) | 技能(Skill) | MCP Server |
|---|---|---|---|
| 定义 | 用于约束智能体的行为方式。 | 用于描述如何完成特定任务。 | 提供外部工具的调用能力。 |
| 加载方式 | 在对话开始时加载到上下文中,持续参与推理。 | 按需加载,减少上下文占用。 | 不参与推理过程,按需调用外部接口。 |
| 使用场景 | 定义代码规范、输出格式、团队协作约定等。 例如:代码必须符合PEP8规范。 | 封装测试流程、开发任务、复杂业务逻辑等。 例如:执行UI自动化测试。 | 连接外部系统,执行具体操作。 例如:控制浏览器操作。 |
| 关键区别 | 控制智能体“应该怎么做”,是行为边界。 | 解决“如何完成任务”,是流程指导。 | 提供“调用工具的能力”,是执行能力。 |
技能的目录结构
skill-name/
├── SKILL.md (必填)
│ ├── YAML frontmatter 元数据 (必填)
│ │ ├── name: (必填)
│ │ └── description: (必填)
│ └── Markdown 指令 (必填)
└── Bundled Resources/ 捆绑资源 (选填)
├── scripts/ - 可执行代码 (Python/Bash 等)
├── references/ - 旨在根据需要加载到上下文中的文档
└── assets/ - 输出中使用的文件 (模板、图标、字体等) | 参数名称 | 说明 |
|---|---|
| skill-name | 整个技能的根目录,skill-name需要替换成实际的技能名称(比如data-analysis-skill)。技能名称由小写字母、数字和连字符(-)组成,开头和结尾不能是连字符,且连字符不可连续使用,长度1~64字符。 |
| SKILL.md | SKILL.md文件名不可修改。它是技能的核心描述文件,相当于技能的“说明书”,必须包含以下两部分:
|
| Bundled Resources(可选) | 存放技能配套资源的目录,非必填,但能让技能更完整。
|
编写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)代码智能体支持项目级和个人级两类技能。用户可根据具体开发场景与协作需求,选择最适合的技能进行设置,实现灵活高效的代码管理。
| 级别 | 作用域 | 开关状态 | 存放位置 | 备注 |
|---|---|---|---|---|
| 个人级 | 全项目 | 默认开启 | 本地的“~/.codeartsdoer/skills/” | 由用户添加 |
| 项目级 | 当前项目 | 默认开启 | 项目根目录的“./.codeartsdoer/skills/” | 由用户添加 |
添加技能
华为云码道支持添加项目级与个人级两种类型的技能。除了直接创建技能外,您还可通过导入现有文件或从技能市场安装来快速集成技能。多种途径灵活高效,助您轻松扩展开发能力。
华为云码道不支持将AI生成的技能保存至云端。
市场上已上线多款开箱即用的技能,可帮助您快速提升开发效率。以下将介绍如何查找并添加这些技能。
- 参考快速启动操作,登录华为云码道。
- 打开华为云码道聊天窗口。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
,打开华为云码道聊天窗口。 - Visual Studio Code:单击Visual Studio Code侧边栏图标
,打开华为云码道聊天窗口。 - JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标
,打开华为云码道聊天窗口。
不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
- 在聊天界面中,单击设置图标
,进入智能体设置页面。 - 在左侧导航栏中单击“技能与规则”,进入技能与规则页面。
- 单击“市场”,进入“市场”页签,查找技能。
表4 查找技能 查找方式
具体步骤
来源
市场中的技能主要来源于官方和优选。
- 官方:华为云码道提供的技能。
- 优选:经筛选的第三方技能。
在页面顶部的“全部来源”下拉框中,选择技能的来源,查看对应来源的技能列表。您还可以在搜索框中输入技能名称或者关键字快速查找技能。
名称
在页面右上角单击“按名称”后的排序图标,按名称排序查找技能。
更新时间
在页面右上角单击“最近更新”后的排序图标,按更新时间排序查找技能。
- 添加技能。
- 通过以下任一方式,弹出选择技能安装位置对话框。
- 在指定技能后,单击添加图标
。 - 单击指定技能的名称,进入技能详情页面。在技能详情页右上角,单击“添加”。
若已创建/导入的技能名称和市场中已有技能重名,该技能在市场中将显示为“已安装”。
- 在指定技能后,单击添加图标
- 选择该技能的安装位置(项目级或个人级),单击“确定”。
安装成功后,该技能后的
变为“已安装”。
- 通过以下任一方式,弹出选择技能安装位置对话框。
- (可选)根据实际场景,执行更新技能、修改技能安装位置和卸载技能的操作。
表5 管理技能 操作
具体步骤
更新技能
若已创建/导入的技能名称和市场中已有技能重名,且二者版本不同,该技能在市场中将显示为“已安装”且“待更新”。若执行更新操作,会以市场中技能的内容覆盖原先的内容。
通过以下任一方式,更新技能。
- 将鼠标悬浮在待更新技能上,单击更新图标
。更新成功后,该技能右上角的“待更新”标识将自动消失。 - 单击待更新技能的名称,进入技能详情页面。在右上角单击“更新”。更新成功后,该技能右上角的“待更新”标识将自动消失。
修改技能安装位置
卸载技能
通过以下任一方式,卸载技能。
- 将鼠标悬浮在待卸载技能上,单击卸载图标
。卸载成功后,
变为
。 - 单击待卸载技能的名称,进入技能详情页面。在右上角单击“卸载”。卸载成功后,右上角“卸载”和“项目级”/“个人级”按钮变为“添加”。
- 将鼠标悬浮在待更新技能上,单击更新图标
为当前项目定制的技能,随代码库一并分发,确保团队成员在统一规范下协作开发,提升一致性与交付效率。项目级技能添加后即生效,何时使用由智能体决定。
- 参考快速启动操作,登录华为云码道。
- 打开华为云码道聊天窗口。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
,打开华为云码道聊天窗口。 - Visual Studio Code:单击Visual Studio Code侧边栏图标
,打开华为云码道聊天窗口。 - JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标
,打开华为云码道聊天窗口。
不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
- 在聊天界面中,单击设置图标
,进入智能体设置页面。 - 选择“技能与规则”,在项目级页签中单击技能后的
,在弹出的对话框中选择“手动创建”。 - 参考表6设置项目级技能参数,然后单击“确定”。
- 查看技能。
项目级技能创建完成后,在项目根目录的“./.codeartsdoer/skills”下,可查看到已创建的技能。
图1 查看项目级技能
根据您的使用习惯和偏好设定个人级技能,华为云码道将始终遵循这些技能,在所有项目中为您提供更贴合个人风格的输出。个人级技能添加后即生效,何时使用由智能体决定。
- 参考快速启动操作,登录华为云码道。
- 打开华为云码道聊天窗口。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
,打开华为云码道聊天窗口。 - Visual Studio Code:单击Visual Studio Code侧边栏图标
,打开华为云码道聊天窗口。 - JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标
,打开华为云码道聊天窗口。
不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
- 在聊天界面中,单击设置图标
,进入智能体设置页面。 - 选择“技能与规则”,在个人级页签中单击技能后的
,在弹出的对话框中选择“手动创建”。 - 参考表7设置个人级技能参数,然后单击“确定”。
- 查看技能。
个人级技能创建完成后,在本地的“~/.codeartsdoer/skills”目录下,可查看到已创建的技能。
图2 查看个人级技能
将已获取的本地技能包导入到华为云码道中,即可便捷地调用和使用相关功能。
导入前,请对照技能的目录结构及编写SKILL.md中内容,验证技能包是否符合标准。例如,每个技能文件夹的根目录均须包含对应的SKILL.md文件,此文件中须包含YAML格式的技能名称与描述等。如果技能包不符合规范,请调整后再导入,否则可能会导入失败。
- 参考快速启动操作,登录华为云码道。
- 打开华为云码道聊天窗口。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
,打开华为云码道聊天窗口。 - Visual Studio Code:单击Visual Studio Code侧边栏图标
,打开华为云码道聊天窗口。 - JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标
,打开华为云码道聊天窗口。
不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
- 在聊天界面中,单击设置图标
,进入智能体设置页面。 - 在左侧导航栏单击“技能与规则”,进入技能与规则页面。
- 在“项目级”或“个人级”页签中,单击技能后的

- 在弹出的对话框中,选择“导入”。
- 在“上传”对话框中,选择本地的技能zip包,每次仅支持上传一个zip包,该zip包中可存放多个技能文件夹,单击“确定”。
导入成功后,技能名称将显示在技能列表中。
例如:如需一次性导入“docx”和“pptx”两类技能至华为云码道,可将两类技能文件夹放入同一个zip包中,再上传该zip包,即可实现批量上传功能。
使用技能
- 参考快速启动操作,登录华为云码道。
- 打开华为云码道聊天窗口。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
,打开华为云码道聊天窗口。 - Visual Studio Code:单击Visual Studio Code侧边栏图标
,打开华为云码道聊天窗口。 - JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标
,打开华为云码道聊天窗口。
不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
- 在聊天界面的输入框下方选择“智能体”,切换到智能体模式。右侧显示当前选用的模型,您可在下拉框中切换不同大语言模型。 图3 切换到智能体模式
- 在聊天窗口的输入框中,输入以下内容,单击发送图标
。 使用skill-creator生成一个绘图过程需要遵守的规范,名称为drawing-standards,内容如下: - 横轴为x轴 - 纵轴为y轴 - 原点O(0,0)必须清晰标注 - 坐标轴箭头、刻度和单位长度要统一 - 刻度线是细实线 - 轴线是稍粗实线
- 查看技能调用结果。 图4 技能调用结果
管理技能
- 启用和禁用技能:创建技能后,在华为云码道设置页面的中,可通过开关启用或禁用项目级、个人级的技能。 图5 启动和禁用技能
创建项目级技能时,华为云码道会在项目目录的相应路径下生成一个名为“ProjectSkillStatus.txt”的文件,以记录项目中各个技能的开关状态。每一行记录一个技能的状态,格式为技能名=true(表示启用)或技能名=false(表示禁用)。
删除某个技能后,“ProjectSkillStatus.txt”文件中对应的记录也会同步移除,确保文件内容与项目状态保持一致。
图6 ProjectSkillStatus文件示例
- 编辑和删除技能:在华为云码道设置页面的中,将鼠标悬浮在对应的技能上,通过单击
或
,来编辑或删除项目级、个人级技能。 图7 编辑和删除技能