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

【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技能包,大家可以直接安装我这个技能包,完成下面的详细步骤:

https://download.csdn.net/download/u010949451/93165494

bash 复制代码
技能包位置: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 盘:

bash 复制代码
npm config get prefix
# 输出:D:\DevTools\npm-global

如果不在 D 盘,可以改:

bash 复制代码
npm config set prefix "D:\你的路径"

2、 安装 CLI

bash 复制代码
npm install -g @deveco/deveco-cli@latest

验证一下:

bash 复制代码
devecocli --version
# 输出:1.2.0

三、验证核心能力

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

bash 复制代码
devecocli --help

实际验证过的命令:

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

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


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

1、 查看有哪些 Skills

bash 复制代码
devecocli skills list

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

3、 安装核心 Skills

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

bash 复制代码
mkdir D:\workbuddy-skills

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

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

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

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

需要管理员权限的 PowerShell。

powershell 复制代码
# 1. 备份原有 Skills(如果有的话)
cp -r C:\Users\woody\.workbuddy\skills D:\workbuddy-skills-backup

# 2. 删掉 C 盘的 skills 目录
rm -rf C:\Users\woody\.workbuddy\skills

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

验证一下:

bash 复制代码
ls -la C:\Users\woody\.workbuddy\skills
# 输出:lrwxrwxrwx 1 woody 197609 19 Jul 22 12:14 skills -> /d/workbuddy-skills

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

5、配置 MCP

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

bash 复制代码
cd D:\DevTools\deveco-projects\WorkBuddyTestApp
devecocli init --mcp --agent opencode --project .

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

json 复制代码
{
  "mcp": {
    "deveco-mcp": {
      "type": "local",
      "command": ["devecocli", "serve", "mcp"],
      "environment": {
        "PROJECT_PATH": "D:\\DevTools\\deveco-projects\\WorkBuddyTestApp"
      },
      "enabled": true
    }
  }
}

6、创建项目

bash 复制代码
mkdir D:\DevTools\deveco-projects
cd D:\DevTools\deveco-projects
devecocli create --app-name WorkBuddyTestApp

生成的项目结构:

复制代码
WorkBuddyTestApp/
├── 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 大概长这样:

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

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

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

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

8.1 检索 ArkUI 组件文档

bash 复制代码
# 搜索 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\.workbuddy\skills\hmos-arkui-develop-skill\

核心参考资料:

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

8.3 写登录界面代码

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

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

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

typescript 复制代码
// 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、构建项目

bash 复制代码
cd D:\DevTools\deveco-projects\WorkBuddyTestApp
devecocli build --build-mode debug

预期输出:

复制代码
> hvigor BUILD SUCCESSFUL in 272 ms
Build completed successfully

2、别直接调 node hvigorw.js

错误做法:

bash 复制代码
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 查看连接设备

bash 复制代码
devecocli device list
# 输出:29Q022392xxxxx    HUAWEI Mate 60 Pro    connected

10.2 运行到设备

bash 复制代码
devecocli run --device "29Q0223927001481"

预期输出:

复制代码
Build completed successfully.
Installing artifacts to device 29Q0223927001481...
App installed successfully
Launching com.example.workbuddytestapp/EntryAbility...
Application 'com.example.workbuddytestapp': start ability successfully.

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

11.1 内存泄漏静态扫描

bash 复制代码
python "C:/Users/woody/.workbuddy/skills/hmos-memleak-analysis/scripts/filter_risk_func.py" \
  "D:/DevTools/deveco-projects/WorkBuddyTestApp/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:\workbuddy-skills + 符号链接
hvigor 缓存错误 ENOENT: no such file hvigor.js 缓存指向旧 DevEco Studio 路径 devecocli build,别直接调 node hvigorw.js
ButtonStyleMode 写错 编译失败 写成 TEXT 而非 TEXTUAL 查官方文档确认枚举值
SymbolGlyph 图标名错误 编译失败 用了不存在的系统图标名 devecocli docs search 确认有效图标名
ohpm 不在 PATH ohpm: command not found ohpm 没加系统环境变量 用完整路径:D:\...\DevEco Studio\tools\ohpm\bin\ohpm.bat
模拟器镜像未下载 system image file cannot be found 首次使用需下载镜像 devecocli emulator download "Mate X7" 或 IDE 下载

最终状态

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

关键命令速查

bash 复制代码
# 安装 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:\workbuddy-skills

# 配置 MCP
devecocli init --mcp --agent opencode --project .
相关推荐
Old Uncle Tom1 小时前
银行用户画像 -- 金融目标与需求意图
前端·人工智能·金融
码农学院1 小时前
AIO与GEO融合趋势:从内容生成到智能搜索优化的技术演进
人工智能
半亩码田1 小时前
【.NET新特性·第8篇】.NET 9 AI 构建基块:Microsoft.Extensions.AI
人工智能·microsoft·.net
IT_陈寒1 小时前
Vue的响应式让我加班到凌晨3点,原来问题出在这
前端·人工智能·后端
东方小月1 小时前
从0开发一个 Coding Agent(一):前言
前端·人工智能·typescript
ZENERGY-众壹1 小时前
AI 诊断光伏组件热斑:从 10% 功率偏差到深度学习建模的实战复盘
人工智能·深度学习·光伏运维·逆变器api·能源数字化
中微极客1 小时前
2026 RAG框架横评:LlamaIndex凭检索称霸
人工智能
通问AI1 小时前
影视飓风122人参保事件背后的技术视角:AI替代岗位的量化分析
人工智能
LadenKiller1 小时前
近期AI训练量化表达,解释改写检查要按顺序
人工智能·python