【HarmonyOS AI】DevEco CLI、Skills、知识库运用AI Coding提效详解

90 阅读8分钟

【HarmonyOS AI】DevEco CLI、Skills、知识库运用AI Coding提效详解

一、前言

CLI 是命令行工具,Command Line Interface 的缩写。今年智能体大爆炸之后,又开始流行,在GUI(图形界面)没出来前,计算机古早时代,都是CLI的使用方式,现在智能体操作很多,为了调用方便,直接给AI用CLI。用户使用自然语言让AI去干活,比GUI方便。

这篇记录的是一次完整的 DevEco CLI 接入过程: 从装 CLI、配 Skills、解决 C 盘空间问题,到用知识库和 Skills 辅助写了个登录界面,最后编译推送到 Mate 60 Pro 真机上跑起来。以下是AI写的登录页面: 在这里插入图片描述

所有命令都是实际验证过的,来源会标清楚。踩过的坑也会明确标出来,避免后人再踩一遍。


并且我把整个安装和配置链路,封装了一个Skills技能包,大家可以直接安装我这个技能包,完成下面的详细步骤:

并且我把整个安装和配置链路,封装了一个Skills技能包,大家可以直接安装我这个技能包,完成下面的详细步骤:

并且我把整个安装和配置链路,封装了一个Skills技能包,大家可以直接安装我这个技能包,完成下面的详细步骤:

技能包位置:D:\deveco-cli-setup

安装方式:把目录复制到你的 AI 助手,让它去复制到 skills 加载路径。(有的智能体需要重启/刷新加载)

使用方式:对 AI 说"配置鸿蒙开发环境"

1、核心能力 环境配置自动化

装 CLI → 选 Skills → 配 MCP → 建项目,全程 AI 带路 每一步有报错,AI 自动查 FAQ 给修复方案

2、Skills 智能推荐 只做手机 App?装 8 个开发编码 Bundle 就够了 要做折叠屏?AI 自动加上多设备适配 Bundle 要集成华为登录?单独装平台服务 Bundle 里的账号 Skill 不确定?全装 33 个,省心

3、避坑内置 命令混用、hvigor 缓存、签名配置等 10 个常见错误,AI 提前拦 在这里插入图片描述

二、安装 DevEco CLI

在这里插入图片描述

1、 确认 npm 全局安装路径

先看一下 npm 全局包装哪儿了,最好装到 D 盘:

npm config get prefix
# 输出:D:\DevTools\npm-global

如果不在 D 盘,可以改:

npm config set prefix "D:\你的路径"

2、 安装 CLI

npm install -g @deveco/deveco-cli@latest

验证一下:

devecocli --version
# 输出:1.2.0

三、验证核心能力

在这里插入图片描述

装完先看一眼支持哪些命令:

devecocli --help

实际验证过的命令:

命令功能验证状态
build构建项目✅ 已验证
run构建并运行到设备✅ 已验证
device管理连接设备✅ 已验证
emulator管理模拟器✅ 已验证
skills管理 Skills✅ 已验证
docs搜索本地文档✅ 已验证
log获取设备日志✅ 已验证
create创建新项目✅ 已验证
init配置 MCP/Agent✅ 已验证
serve启动辅助协议服务器✅ 已验证

⚠️ 我没找到CLI自动签名的方式,只能靠IDE 配置自动完成。有开发证书那种比较方便,直接让智能体加进去就行了。


四、安装 Skills 到 D 盘(智能体默认都装在C盘,很吃空间)

1、 查看有哪些 Skills

devecocli skills list

首次执行会从远程拉列表,一共 33 个。

3、 安装核心 Skills

默认会装到 Agent 配置目录(C 盘),通过 --path 指定装到 D 盘:

mkdir D:\xxx-skills

devecocli skills add --skill hmos-arkts-syntax-checker --path D:\xxx-skills
devecocli skills add --skill hmos-arkui-develop-skill --path D:\xxx-skills
devecocli skills add --skill hmos-arkts-knowledge-retriever --path D:\xxx-skills
devecocli skills add --skill hmos-memleak-analysis --path D:\xxx-skills
devecocli skills add --skill hmos-jscrash-analysis --path D:\xxx-skills

Skills 实际装在 D 盘,后面通过符号链接让 xxx智能体 从 C 盘加载。这样既省 C 盘空间,又不影响 xxx智能体 识别。

4、符号链接解决 C 盘空间问题

xxx智能体 默认从 C:\Users\<用户名>\.xxx智能体\skills\ 加载 Skills,但我们把 Skills 装到了 D 盘。解决办法是建个符号链接,让 C 盘路径指向 D 盘实际目录。

需要管理员权限的 PowerShell。

# 1. 备份原有 Skills(如果有的话)
cp -r C:\Users\woody\.xxx智能体\skills D:\xxx智能体-skills-backup

# 2. 删掉 C 盘的 skills 目录
rm -rf C:\Users\woody\.xxx智能体\skills

# 3. 创建符号链接(C 盘路径 → D 盘实际目录)
New-Item -ItemType SymbolicLink `
  -Path "C:\Users\woody\.xxx智能体\skills" `
  -Target "D:\xxx智能体-skills"

验证一下:

ls -la C:\Users\woody\.xxx智能体\skills
# 输出:lrwxrwxrwx 1 woody 197609 19 Jul 22 12:14 skills -> /d/xxx智能体-skills

注意:Windows 创建符号链接需要管理员权限,而且目标目录必须先存在。如果 xxx智能体 正在跑,需要先关掉再操作。

5、配置 MCP

DevEco CLI 内置了 MCP 服务器(devecocli serve mcp),不需要额外装 CodeGenie MCP。Skills 通过 MCP 调用 DevEco Studio 的能力。

cd D:\DevTools\deveco-projects\xxTestApp
devecocli init --mcp --agent opencode --project .

会在项目下生成 .opencode/opencode.json

{
  "mcp": {
    "deveco-mcp": {
      "type": "local",
      "command": ["devecocli", "serve", "mcp"],
      "environment": {
        "PROJECT_PATH": "D:\\DevTools\\deveco-projects\\xxTestApp"
      },
      "enabled": true
    }
  }
}

6、创建项目

mkdir D:\DevTools\deveco-projects
cd D:\DevTools\deveco-projects
devecocli create --app-name xxTestApp

生成的项目结构:

xxTestApp/
├── AppScope/
├── entry/
│   ├── src/main/ets/
│   │   ├── entryability/
│   │   └── pages/
│   │       └── Index.ets
│   └── build-profile.json5
├── hvigor/
├── build-profile.json5
└── oh-package.json5

7、IDE 自动签名

DevEco CLI 没有独立的 sign 命令,签名通过 build-profile.json5 配置。

操作步骤:

  1. DevEco Studio → File → Open → 选项目目录
  2. Build → Build Hap(s)/App(s) → 勾选"自动签名"
  3. IDE 会自动改 build-profile.json5,加上签名配置

签名后的 build-profile.json5 大概长这样:

{
  "app": {
    "signingConfigs": [{
      "name": "default",
      "type": "p12",
      "path": "./.idea/.../auto_debug.p12",
      "storePassword": "...",
      "keyAlias": "...",
      "keyPassword": "..."
    }]
  }
}

8、用知识库和 Skills 开发登录界面

在index.ets界面,写一个登录界面UI布局。使用 DevEco CLI 的 docs 和 skills 命令。

登录界面:
账号密码输入框
登录按钮
需要验证码/手机号登录
风格偏好(商务)

在这里插入图片描述

8.1 检索 ArkUI 组件文档

# 搜索 TextInput 组件
devecocli docs search "TextInput" --format json

# 读取 Button API 详情
devecocli docs read "API参考/ArkUI_方舟UI框架/ArkTS组件/按钮与选择/Button/ts-basic-components-button"

返回的是结构化 JSON,包含 title、documentId、content、url。

8.2 查看 ArkUI 开发 Skill

Skill 位置:C:\Users\woody\.xxx智能体\skills\hmos-arkui-develop-skill\

核心参考资料:

  • references/quick-apis/02-basic-components.md — 基础组件速查
  • references/quick-apis/16-enums.md — 枚举值定义

8.3 写登录界面代码

基于知识库检索结果,写了个包含这些功能的登录页:

  • 账号密码登录 / 手机号验证码登录 切换
  • TextInput 输入框(带图标、密码隐藏)
  • Button 登录按钮(带加载状态)
  • Checkbox 用户协议勾选
  • 第三方登录入口(华为账号、微信)

关键组件用法(来自官方文档验证):

// TextInput 带图标和密码模式
TextInput({ placeholder: '请输入密码', controller: this.pwdController })
  .type(InputType.Password)
  .prefixIcon({ src: $r('app.media.ic_password'), color: '#999' })

// Button 样式
Button('登录', { type: ButtonType.Capsule })
  .backgroundColor('#007DFF')
  .width('100%')

// 切换按钮(文本样式)
Button('获取验证码', { buttonStyle: ButtonStyleMode.TEXTUAL })

9、构建与避坑

1、构建项目

cd D:\DevTools\deveco-projects\xxTestApp
devecocli build --build-mode debug

预期输出:

> hvigor BUILD SUCCESSFUL in 272 ms
Build completed successfully

2、别直接调 node hvigorw.js

错误做法:

node hvigorw.js assembleHap --mode debug
# 报错:> hvigor ERROR: ENOENT: no such file ...\node_modules\@ohos\hvigor\bin\hvigor.js

原因:hvigor 缓存里的符号链接指向了旧的 DevEco Studio 路径(D:\CodeAPP\DevEcoStudio\),但实际装在新路径(D:\HarmonyOS\IDE\...)。

正确做法:始终用 devecocli build,它会自动处理缓存和路径问题。

10、推送到真机

10.1 查看连接设备

devecocli device list
# 输出:29Q022392xxxxx    HUAWEI Mate 60 Pro    connected

10.2 运行到设备

devecocli run --device "29Q0223927001481"

预期输出:

Build completed successfully.
Installing artifacts to device 29Q0223927001481...
App installed successfully
Launching com.example.xxtestapp/EntryAbility...
Application 'com.example.xxtestapp': start ability successfully.

11、Skills 测试(崩溃分析 + 内存泄漏)

11.1 内存泄漏静态扫描

python "C:/Users/woody/.xxx智能体/skills/hmos-memleak-analysis/scripts/filter_risk_func.py" \
  "D:/DevTools/deveco-projects/xxTestApp/entry/src/main/ets"

扫描结果示例(检测到故意写的泄漏代码):

Found 2 potential leak(s):

  [LOW] LeakTestPage.ets:11
    API: setInterval  ->  missing: clearInterval
    code: this.timerId = setInterval(() => {
    category: Common

  [HIGH] LeakTestPage.ets:16
    API: .on('netAvailable')  ->  missing: .off('netAvailable')
    code: netConn.on('netAvailable', (data) => {
    category: EventListener

11.2 JS Crash 日志分析

Skill 文件:hmos-jscrash-analysis/SKILL.md

核心能力:

  • 按 Reason / Error name / Error message 三级根因匹配
  • 定位第一个应用栈帧
  • 输出修复建议

故障模式库:references/fault-mode-library.md


完整踩坑记录

现象原因解决
命令名混用deveco-cli 不存在源文件写法不一致统一用 devecocli
Skills 装到 C 盘C 盘空间不足默认装到 Agent 目录--path D:\xxx智能体-skills + 符号链接
hvigor 缓存错误ENOENT: no such file hvigor.js缓存指向旧 DevEco Studio 路径devecocli build,别直接调 node hvigorw.js
ButtonStyleMode 写错编译失败写成 TEXT 而非 TEXTUAL查官方文档确认枚举值
SymbolGlyph 图标名错误编译失败用了不存在的系统图标名devecocli docs search 确认有效图标名
ohpm 不在 PATHohpm: command not foundohpm 没加系统环境变量用完整路径:D:\...\DevEco Studio\tools\ohpm\bin\ohpm.bat
模拟器镜像未下载system image file cannot be found首次使用需下载镜像devecocli emulator download "Mate X7" 或 IDE 下载

最终状态

组件状态位置
DevEco CLI✅ v1.2.0D:\DevTools\npm-global\
本地知识库✅ 已就绪CLI 内置
Skills✅ 15 个D:\xxx智能体-skills\(符号链接)
MCP 配置✅ 已配置.opencode/opencode.json
测试项目✅ 已运行D:\DevTools\deveco-projects\xxTestApp\
真机部署✅ 成功HUAWEI Mate 60 Pro

关键命令速查

# 安装 CLI
npm install -g @deveco/deveco-cli@latest

# 查看帮助
devecocli --help

# 创建项目
devecocli create --app-name MyApp

# 构建(始终用这个,别直接调 hvigor)
devecocli build --build-mode debug

# 运行到设备
devecocli run --device "设备ID"

# 查看设备
devecocli device list

# 搜索文档
devecocli docs search "TextInput" --format json

# 安装 Skill 到 D 盘
devecocli skills add --skill hmos-arkts-syntax-checker --path D:\xxx智能体-skills

# 配置 MCP
devecocli init --mcp --agent opencode --project .