鸿蒙游戏里的 AI Agent 设计
鸿蒙游戏AI Agent架构设计实践 本文探讨了AI Agent在鸿蒙游戏开发中的应用方案。传统游戏AI采用固定规则驱动,而AI Agent基于动态决策策略,具备学习能力。文章提出四层架构设计: 感知层:通过抽象游戏状态,为AI提供稳定数据结构 决策层:实现从简单规则Agent到模型驱动Agent的演进 执行层:定义标准动作空间和动作执行服务 环境层:将Agent无缝接入游戏主循环 特别针对Har

大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。
图书作者:《ESP32-C3 物联网工程开发实战》
图书作者:《SwiftUI 入门,进阶与实战》
超级个体:COC上海社区主理人
特约讲师:大学讲师,谷歌亚马逊分享嘉宾
科技博主:华为HDE/HDG
我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告,同时也会提供产品优缺点分析、横向对比,并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。
展菲:您的前沿技术领航员
👋 大家好,我是展菲!
📱 全网搜索“展菲”,即可纵览我在各大平台的知识足迹。
📣 公众号“Swift社区”,每周定时推送干货满满的技术长文,从新兴框架的剖析到运维实战的复盘,助您技术进阶之路畅通无阻。
💬 微信端添加好友“fzhanfei”,与我直接交流,不管是项目瓶颈的求助,还是行业趋势的探讨,随时畅所欲言。
📅 最新动态:2025 年 3 月 17 日
快来加入技术社区,一起挖掘技术的无限潜能,携手迈向数字化新征程!
文章目录
引言
如果说前一篇我们讨论的是:
AI Agent 会不会改变 App 形态
那么在鸿蒙游戏里,这个问题会变得更加具体:
AI 能不能直接“玩游戏”?
在 HarmonyOS 的生态中,随着端侧 AI 能力增强,一个新的方向正在出现:
玩家操作 → AI 操作
UI 交互 → 智能体决策
也就是说:
游戏不再只是“给人玩的”,而是可以“给 AI 运行的”
这篇文章,我们就从工程角度讲清楚:
鸿蒙游戏里的 AI Agent,到底该怎么设计?
一、先看问题:为什么游戏需要 AI Agent?
很多人第一反应是:
游戏里不是早就有 AI(NPC)了吗?
确实,但传统游戏 AI 是这样的:
// 典型状态机
if (playerInRange) {
attack()
} else {
patrol()
}
特点:
- 写死逻辑
- 行为固定
- 不具备学习能力
而 AI Agent:
// 决策驱动
const action = await agent.decide(state)
execute(action)
特点:
- 动态决策
- 可学习
- 可扩展
本质区别:
传统AI:规则驱动
Agent:策略驱动
二、鸿蒙游戏中的 Agent 架构
一个完整的 AI Agent 系统,可以拆成四层:
感知层(State)
↓
决策层(Agent)
↓
执行层(Action)
↓
环境层(Game Engine)
在鸿蒙应用中,通常结构是:
entry
├─ pages
├─ components
├─ services
├─ ai ← 新增
└─ models
三、第一步:定义游戏状态
AI 想做决策,前提是“看懂世界”。
1、原始游戏状态
// 游戏内部数据(复杂且不稳定)
player.x
enemy.spriteFrame
collisionBox
问题:
- 不统一
- 不适合 AI
2、抽象状态
// models/GameState.ets
export interface GameState {
player: {
x: number
y: number
hp: number
}
enemies: {
x: number
y: number
type: string
}[]
}
3、状态获取
// services/GameStateService.ets
export class GameStateService {
getState(): GameState {
return {
player: getPlayer(),
enemies: getEnemies()
}
}
}
核心原则:
给 AI 的,一定是“稳定结构的数据”,而不是引擎细节
四、第二步:定义动作空间
AI 能做什么,决定了它“能玩到什么程度”。
1、基础动作
// models/Action.ets
export type Action =
| 'LEFT'
| 'RIGHT'
| 'JUMP'
| 'ATTACK'
| 'IDLE'
2、执行动作
// services/ActionService.ets
export class ActionService {
execute(action: Action) {
switch (action) {
case 'LEFT':
moveLeft()
break
case 'RIGHT':
moveRight()
break
case 'JUMP':
jump()
break
case 'ATTACK':
attack()
break
}
}
}
五、第三步:Agent 决策层
1、最简单的 Agent
// ai/SimpleAgent.ets
export class SimpleAgent {
decide(state: GameState): Action {
const enemy = state.enemies[0]
if (!enemy) return 'IDLE'
if (enemy.x < state.player.x) return 'LEFT'
if (enemy.x > state.player.x) return 'RIGHT'
return 'ATTACK'
}
}
这只是“伪 Agent”,本质还是规则。
2、模型驱动 Agent
// ai/ModelAgent.ets
export class ModelAgent {
async decide(state: GameState): Promise<Action> {
const input = this.encode(state)
const result = await this.runModel(input)
return this.decode(result)
}
encode(state: GameState) {
return JSON.stringify(state)
}
async runModel(input: string) {
// 调用本地模型 / 云模型
}
decode(output: any): Action {
return output.action
}
}
六、第四步:调度循环
关键问题:
Agent 怎么接入游戏循环?
1、游戏循环
function gameLoop() {
update()
render()
}
2、接入 Agent
const agent = new ModelAgent()
const stateService = new GameStateService()
const actionService = new ActionService()
async function gameLoop() {
const state = stateService.getState()
const action = await agent.decide(state)
actionService.execute(action)
update()
render()
}
这样 AI 就“接管了玩家”。
七、鸿蒙特有优化:端侧 Agent
在 HarmonyOS 上,有一个关键优势:
端侧 AI 能力
1、本地推理
async runModel(input) {
return await localModel.infer(input)
}
优点:
- 无网络依赖
- 响应快
- 隐私安全
2、分层策略
if (simpleCase) {
return ruleAgent.decide(state)
} else {
return modelAgent.decide(state)
}
提升性能。
八、进阶:多 Agent 系统
不仅可以一个 AI,还可以多个:
1、敌人 AI
enemyAgent.decide(state)
2、队友 AI
allyAgent.decide(state)
3、玩家 AI
playerAgent.decide(state)
形成:
多智能体系统(Multi-Agent)
九、常见坑
1、状态设计过复杂,AI 学不会。
2、动作过多,决策空间爆炸。
3、性能问题,每帧调用模型会卡顿。
解决:
// 降频
if (frame % 5 === 0) {
action = await agent.decide(state)
}
4、不可控行为,AI 做出“奇怪操作”。
解决:
- 加规则约束
- 限制动作空间
总结
鸿蒙游戏里的 AI Agent,本质是把“玩家”抽象成一个系统模块:
玩家 → Agent
操作 → Action
感知 → State
从工程角度,可以总结为三步:
1、抽象世界
Game → GameState
2、定义行为
Input → Action
3、接入循环
GameLoop → Agent → Action
最终你会得到一个完全不同的游戏形态:
人玩游戏
AI 也能玩游戏
甚至 AI 比人更会玩
如果再往前一步,这个系统甚至可以变成:
一个可训练、可评估、可演化的 AI 世界
这也是为什么很多人开始把游戏引擎(甚至像 OpenClaw)看成:
下一代 AI 系统的“环境层”。
更多推荐



所有评论(0)