去年底我就在琢磨一件事:AI Agent 到底能不能直接上手写鸿蒙应用?当时市面上的 Agent 写 Python、写前端已经很溜了,但鸿蒙开发一直没什么人聊。原因也简单,鸿蒙的工程结构和 ArkTS 语法对 AI 来说算是“小众知识”,报错信息又经常绕,搞不好就让 Agent 直接懵圈。但换个角度想,鸿蒙应用开发恰恰是最适合 Agent 去试错折腾的场景——工程结构固定、编译链路清晰、报错可复现,只要把 DevEco CLI 这条命令行链路打通,Agent 完全可以自己走完“写代码 → 编译 → 看报错 → 改代码”的闭环。我搭好环境实测了几轮,今天就把整个过程拆开讲清楚,包括工具链怎么选、指令怎么下、踩了哪些坑、Agent 怎么自己修 bug,希望能给研究 AI Agent 和鸿蒙开发结合点的朋友一点参考。
1. 项目思路:AI Agent 凭什么能写鸿蒙应用
1.1 拆开 AI Agent 的“黑盒”:它到底怎么干活的
很多人对 Agent 有个误解,觉得它就是“高级一点的聊天机器人”,其实完全不是一回事。普通对话模型是“你说一句,它回一句”,输出完就结束了,既不验证结果,也不关心你项目里现在到底是啥状态。AI Agent 则是一个持续运行的循环,核心是“观察 → 思考 → 行动 → 观察结果”四个步骤反复迭代。放在写代码这个场景里,就是 Agent 先看一眼工程目录结构,再决定要不要新建文件,写完之后执行一次构建命令,读到报错信息,然后分析是哪里出了问题,再改代码、再编译。
这个过程跟一个刚入职的初级开发很像。你给他一个需求,他不会一步到位,但好在他能自己看报错、自己查资料、自己迭代。Agent 的优势在于它“不知疲倦”,跑一百次编译也没怨言,而且上下文里能装下大量工程文档和代码片段。所以与其说“让 AI 写代码”,不如说“让 AI 像开发者一样在终端里工作”。这也是整篇实验的核心逻辑:Agent 不是用来生成一段孤立的代码,而是用来驱动一套完整的开发工具链。
我在实测前专门花时间梳理了 Agent 的运行逻辑。一个合格的 Coding Agent 至少要具备三样东西:第一,规划能力,能把一个模糊需求拆成具体任务列表;第二,工具调用能力,能执行终端命令、读写文件;第三,记忆能力,能记得自己前面改了什么、报错历史是什么。三者缺一不可,尤其是第三个,很多 Agent 写代码翻车就是因为它忘了自己刚改过哪里,重复犯错。
1.2 为什么偏偏选 DevEco CLI,而不是 DevEco Studio
做鸿蒙开发,官方主推的是 DevEco Studio 这个图形化 IDE,但它对 Agent 来说其实很不友好。Agent 没法用鼠标点按钮,也没法盯着屏幕看渲染出来的页面长什么样。哪怕有一些 GUI 自动化方案可以模拟点击和截图,那也非常脆弱,稍微换个窗口尺寸就失灵了。基于文本和命令行的工具链才是 Agent 的主场。
DevEco CLI 就是鸿蒙开发里那套命令行工具链的代称,核心是 hvigor 构建引擎和它配套的 hvigorw 脚本。项目工程建好之后,终端里执行 ./hvigorw assembleHap 就能编译出 HAP 安装包,所有输出都是纯文本日志,Agent 能轻松读取和理解。文件操作也完全基于目录结构,创建页面、修改配置、添加依赖,全部可以通过读写普通文本文件完成。这意味着 Agent 只需要两个基础能力——执行命令和读写文件,就能完整参与鸿蒙应用的开发流程,不需要任何视觉识别能力。
对比下来,DevEco CLI 的最大价值是“确定性”。图形界面操作每次点击的像素位置都可能变,但命令行只要命令正确、环境正确,输出结果就是稳定可预期的。这种确定性对 Agent 来说至关重要,因为 Agent 的自我纠错机制完全建立在“动作产生的结果可被读取”这个前提上。没有这个前提,Agent 就只能瞎猜。
1.3 整条链路怎么设计
我的整体链路设计其实不复杂,核心是一个闭环:需求描述 → Agent 规划任务 → 创建/修改代码文件 → 执行 DevEco CLI 构建 → 读取编译日志 → 失败则让 Agent 分析报错并修复 → 直到 HAP 产物生成。这个闭环每一步都是文本和命令,没有人工干预点,所以理论上可以全自动跑完。
实际执行时,我把这个链路拆成了三段。第一段是环境准备,把 DevEco Studio、SDK、hvigorw、模拟器全部安装并验证好;第二段是 Agent 工具配置,把终端执行、文件读写、代码搜索这些能力以“工具”的形式注册给 Agent;第三段才是正式实测,让 Agent 从头开发一个应用。这种分段的思路很重要,因为如果环境本身没配好,Agent 会陷入“同一个命令反复报错”的死循环,你会分不清到底是 Agent 笨还是环境有问题。先人工把地基打好,再让 Agent 上场,这是让 AI 写代码成功率最高的姿势。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备:先把地基打牢
2.1 安装 DevEco 命令行工具链
很多人一上来就想让 Agent 直接跑,结果第一步就卡住了。DevEco 的命令行工具链不是独立分发的,它跟着 DevEco Studio 一起装。所以你先要装一个 DevEco Studio,装完不要只盯着那个看得见的 IDE,要用的是它目录底下的 hvigor、SDK 和 hdc(手机调试
