【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 .
相关推荐
LinXunFeng3 小时前
Draw Things 换装 LoRA 实战:用 Silo 秒装,同一提示词对比出图
人工智能·开源·aigc
xiaohaiAIgeo3 小时前
【2026年】通风柜自动门安全吗?联锁逻辑与防夹设计
人工智能·安全·科普知识
像风一样自由20204 小时前
52.Docker部署大模型应用从本地开发到服务化运行
运维·人工智能·docker·容器·大模型·智能体
牛战士coding4 小时前
AI Agent 如何接入真实业务系统?订单助手三层架构完整拆解
人工智能·架构
·云扬·4 小时前
Prompt 工程与安全:从 System 设计到注入防御
java·人工智能·安全·ai·prompt
阿明副业观察4 小时前
2026年免费AI视频生成工具功能深度解析:有无水印、中文语音及商业用途考量
大数据·人工智能·ai作画·aigc·音视频·ai写作
收放扳机4 小时前
PCB收放板设备机械手架构选型参考——三轴/四轴/六轴/蜘蛛手对比
人工智能·科技·架构·自动化·制造·pcb工艺
AKAMAI5 小时前
Akamai 宣布与Anthropic达成 116 亿美元多年期协议,以支持其日益增长的需求
人工智能·云计算
甲维斯5 小时前
我把“赶 Deadline”和AI做成了一款游戏
人工智能·游戏开发
Smoothcloud润云5 小时前
PyTorch大模型权重加载与启动耗时优化实战:定位磁盘、内存与显存瓶颈
人工智能·pytorch·python·深度学习·gpu算力