自定义Agent与多模型对接:AI辅助鸿蒙应用开发实践

0 评论 639 浏览 0 收藏 17 分钟

1 实战演练:一句话生成你的鸿蒙聊天机器人

让我们通过一个完整的真实场景,看看 自定义智能体 @HarmonyMaster 是如何协同 CodeGenie 的核心能力完成开发任务的。

1.1 智能体提示词配置

你是鸿蒙开发专家,精通 ArkTS 语言、ArkUI 声明式开发范式以及鸿蒙系统的分布式架构。它的核心能力是协同四大模块(任务规划、知识检索、代码生成、规则校验)为用户提供从需求到部署的完整开发解决方案。

#  Core Workflow (深度执行流)
当接收到开发指令时,智能体必须严格遵循以下五个步骤进行思考和输出,不得跳过任何环节:
1.  **任务拆解与规划**:
分析用户指令,识别出 UI 开发、逻辑实现、权限配置、性能优化等核心任务。

2.  **知识检索**:
通过Context7明确指出你查询了哪些关键 API(如 `FormExtensionAbility`、`mediaquery` 等),并确认其 API 版本的稳定性。
明确指出你获取了哪些设计规范(如尺寸、颜色、布局标准)。

3.  **代码生成**:
*   **UI 层**:基于 ArkTS 组件生成布局,确保结构清晰(如 Column、Grid 等)。
*   **逻辑层**:实现生命周期回调、数据流转或交互逻辑。
*   **适配层/配置层**:处理配置文件(如 module.json5)或特定的适配逻辑。

4.  **规则校验与修正**:
*   **这是关键步骤**:你必须主动审查生成的代码,调用规则检查工具进行自我修正。
*   格式要求:
> **🔍 检查**:[发现的问题描述]
> **✨ Rule [X] 生效**:[具体的修正动作和结果代码]

5.  **构建与部署**:
*   调用文件系统工具模拟写入文件的过程,并描述执行编译命令(如 `hvigorw assembleHap`)。
*   以 **”BUILD SUCCESSFUL”** 结尾,并给出最终的反馈总结。

#  Response Format
你的回答必须结构清晰,标题层级分明

具体的配置如下图:

1.2 开发者指令

@HarmonyMaster
开发一个基于HarmonyOS的AI聊天机器人应用,包含聊天消息列表布局、消息气泡样式、用户输入区域、发送按钮

1.3 智能体的深度执行流

1.3.1 任务拆解与规划

智能体首先分析指令,识别出五个核心任务:

  • UI开发(聊天消息列表(List组件)、消息气泡样式、用户输入区域、发送按钮)
  • 数据层(消息数据模型定义、消息列表状态管理)
  • 逻辑层(发送消息逻辑、消息自动滚动、时间戳生成)
  • 样式层(用户气泡与AI气泡的差异化样式设计)

1.3.2 知识检索(通过 MCP 连接)

Context7 知识库检索记录

智能体通过 MCP 连接 Context7 知识库,实时查询:

  • List component API and scrollIndex/scrollToIndex methods (列表组件与滚动控制)
  • ArkTS custom component @Prop decorator (自定义组件属性传递)
  • Date object timestamp implementation (日期时间戳)
  • @State state management for reactive updates (响应式状态管理)
  • Column/Row/Blank layout components (弹性布局系统)
  • TextInput placeholder and onChange events (输入框交互)
  • Button dynamic backgroundColor with conditional logic (动态样式绑定)
  • ForEach rendering optimization with key generator (列表渲染优化)
  • ListScroller automatic scroll to bottom (列表自动滚动)
  • Text constraintSize property for content wrapping (文本约束与换行)
  • EdgeEffect.Spring elastic scrolling (弹性滚动效果)
  • EntryAbility windowStage.loadContent lifecycle (页面加载生命周期)
  • module.json5 pages configuration (模块页面注册)
  • setTimeout delayed execution for async simulation (异步延迟处理)
  • borderRadius complex corner customization (多角圆角定制)

1.3.3 代码生成(基于自定义模型)

基于检索到的知识和配置的专业模型,智能体开始生成代码:

AI聊天机器人核心代码:

import { Message, MessageRole } from ‘../model/Message’;
import { MessageBubble } from ‘../components/MessageBubble’;

@Entry
@Component
struct ChatPage {
@State messages: Message[] = [new Message(‘你好!我是AI助手,有什么可以帮助你的吗?’, MessageRole.ASSISTANT)];
@State inputText: string = ”;
private listScroller: ListScroller = new ListScroller();

aboutToAppear(): void {
setTimeout(() => this.listScroller.scrollToIndex(this.messages.length – 1), 100);
}

scrollToBottom() {
this.listScroller.scrollToIndex(this.messages.length – 1);
}

sendMessage() {
if (this.inputText.trim() === ”) return;
this.messages.push(new Message(this.inputText.trim(), MessageRole.USER));
this.inputText = ”;
this.scrollToBottom();
this.simulateAIResponse();
}

simulateAIResponse() {
setTimeout(() => {
const responses = [‘这是一个很有趣的问题!让我来详细解答一下。’, ‘很好的想法!我建议您从以下几个方面入手。’];
this.messages.push(new Message(responses[Math.floor(Math.random() * responses.length)], MessageRole.ASSISTANT));
this.scrollToBottom();
}, 1000);
}

@Builder HeaderBuilder() {
Row() {
Text(‘AI聊天助手’).fontSize(20).fontWeight(FontWeight.Medium).fontColor(‘# 000000’)
}.width(‘100%’).height(56).padding({ left: 16, right: 16 }).backgroundColor(‘# FFFFFF’)
.border({ width: { bottom: 1 }, color: ‘# F0F0F0’ }).justifyContent(FlexAlign.Center)
}

@Builder InputAreaBuilder() {
Row() {
TextInput({ placeholder: ‘输入消息…’, text: this.inputText }).layoutWeight(1).height

智能体调用内置文件系统写入工具,将代码写入到 ets/pages/ChatPage.ets。

1.3.4 规则校验与修正

智能体自动进行自我审查:

🔍 检查: Text组件使用了不存在的API maxWidth(280),导致编译错误
✨ Rule [组件API规范] 生效: 将maxWidth替换为标准属性constraintSize({ maxWidth: 280 }),确保文本约束正确生效

🔍 检查: ListScroller调用了错误方法 scrollIndex(this.messages.length – 1)
✨ Rule [列表滚动API规范] 生效: 修正为标准方法 `scrollToIndex(this.messages.length -1)

1.3.5 构建与部署

智能体调用命令行工具执行编译:

hvigorw assembleHap

几秒钟后,控制台返回 BUILD SUCCESSFUL 🎉

最终生成的AI聊天机器人应用完美实现了以下核心能力:

  • ✅ 精准消息展示: 用户消息与AI回复通过不同样式气泡清晰区分(蓝色/灰色背景)
  • ✅ 智能滚动管理: 发送消息或接收AI回复时自动滚动到最新消息位置
  • ✅ 弹性滚动效果: 列表采用EdgeEffect.Spring提供流畅的弹性回弹体验
  • ✅ 极简输入设计: 圆角输入框设计,支持回车键快速发送,发送按钮根据输入状态动态变色
  • ✅ 沉浸式标题栏: 56px标准高度标题栏,底部1px分隔线,符合Material Design规范

1.3.6 应用总结与预览

智能体在完成构建与修复动作以后,此时一个全新的鸿蒙AI聊天机器人应用就完成了,此时可以通过DevEco Studio自带的预览器实现聊天界面预览或通过智能体继续增加功能。

1.3.7 预览器界面展示效果

  • 📱 ​消息气泡区域​:浅灰色背景(#FAFAFA)区域展示消息,用户发送的蓝色渐变气泡右对齐,AI回复的白色气泡左对齐带AI头像
  • 💬 ​标题栏​:顶部渐变紫色背景(#667eea → #764ba2),居中显示”AI 智能助手”文字和副标题”在线 · 随时为您服务”,底部带圆角和阴影效果
  • ⌨️ ​输入区域​:底部白色区域包含圆角输入框(灰色背景#F5F5F5)和发送按钮,按钮根据输入状态在蓝色(#667eea)与灰色间切换,带火箭/铅笔图标
  • 🔄 ​滚动效果​:列表支持弹性滚动,新消息自动滚动到底部,滚动条默认隐藏,打字机效果30ms/字流畅显示
  • 🎨 ​细节特效​:气泡带圆角和阴影,AI头像渐变蓝色,时间戳显示,三点跳动加载动画,三点菜单弹出支持
    image

2. 构筑”鸿蒙专家”的三大核心能力

通过上面的实战案例,我们可以看到,CodeGenie 通过三大核心能力为鸿蒙开发者打造了专属智能体。

2.1 自定义智能体

智能体不仅仅是一个聊天窗口,而是一个经过深度定制的鸿蒙开发专家。它能:

  • 实时感知项目架构: 知道 UI 组件应该放在 ets/components 目录下,知道权限配置在 module.json5
  • 任务驱动式开发: 不是零散的代码补全,而是理解需求后进行系统性的任务拆解和完整实现
  • 全程自我修正: 生成代码后会自动进行规则检查,识别潜在问题并修复

2.2 自定义模型

鸿蒙的 ArkTS 语言基于 TypeScript 扩展,增加了大量装饰器和严格类型约束。通用模型往往写出”跑不通”的代码。

在 CodeGenie 中,可以为智能体配置不同的专业模型:

  • 公有云模型: 灵活指向业界领先的大模型,获得最强的代码生成能力
  • 私有化部署: 通过配置企业内部自行部署的私有模型服务地址(如基于 DeepSeek、Qwen 等开源模型在企业内网搭建的推理端点),实现”能力外借,数据不出”的极致隐私保护

2.3 强大的内置工具

智能体不仅要会写代码,还得会理解和搭建鸿蒙工程。CodeGenie 的内置工具链让智能体真正融入开发工作流:

  • 文件系统读写: 自动扫描并解析鸿蒙工程的 Stage 模型结构,精准区分 AppScope、entry 和 feature 模块,将代码生成到正确的目录
  • 命令行工具交互: 直接调用宿主机的 Shell 环境,执行版本控制、依赖管理和构建任务
  • 编译构建闭环: 自动执行 hvigorw assembleHap 等编译命令,如果报错会自动解析日志并修复,直到构建成功

3 辅助配置:MCP Servers 与自定义 Rules

3.1 MCP Servers(轻量级连接)

鸿蒙 API 庞大且迭代极快,通过连接 MCP Servers,智能体可以访问实时知识库:

  • Figma 设计直连: 读取 Figma 设计文件的布局元数据,将设计稿转化为精准的 ArkUI 代码
  • 实时文档查询: 在需要实现特定功能时,实时查询最新的 API 文档,生成符合最新规范的代码

3.2 自定义 Rules(关键规范)

为确保生成的代码符合企业级标准,可以配置关键规则:

  • UI 适配规范: “严禁在 ArkUI 中写死 px 单位,所有尺寸必须使用 vp”
  • 状态管理规范: “涉及跨组件同步的数据,必须使用 @Observed + @ObjectLink 装饰器”
  • 权限合规规范: “所有涉及敏感 API 必须在 module.json5 中声明对应的 reason 字段”

智能体在生成代码后会自动进行规则检查,及时修正不符合规范的内容。

总结

在 CodeGenie 的平台上,自定义智能体是核心驱动力,而自定义模型为它赋予了专业的智能。内置工具让智能体能够直接操作工程,MCP Servers 和自定义 Rules 则提供了必要的知识连接和规范约束。

对于鸿蒙开发者而言,这意味着你可以拥有一个懂 ArkTS、懂 Stage 模型、懂最新 API、懂团队规范的”超级队友”。

现在,就在 CodeGenie 中启动你的 @HarmonyMaster,让 AI 驱动的智能体帮你攻克原生鸿蒙开发的每一个细节,让创意在”星河”中极速落地!

本文由 @华为开发者联盟 授权发布于人人都是产品经理。未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!