在这里插入图片描述

网罗开发 (小红书、快手、视频号同名)

  大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。

图书作者:《ESP32-C3 物联网工程开发实战》
图书作者:《SwiftUI 入门,进阶与实战》
超级个体:COC上海社区主理人
特约讲师:大学讲师,谷歌亚马逊分享嘉宾
科技博主:华为HDE/HDG

我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告,同时也会提供产品优缺点分析、横向对比,并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。

展菲:您的前沿技术领航员
👋 大家好,我是展菲!
📱 全网搜索“展菲”,即可纵览我在各大平台的知识足迹。
每周定时推送干货满满的技术长文,从新兴框架的剖析到运维实战的复盘,助您技术进阶之路畅通无阻。


引言

如果你做过一点 AI 游戏,很快会发现一个问题:

NPC 看起来“会说话”,但其实“不聪明”。

典型表现:

  • 只能回答,不能行动
  • 记不住上下文
  • 不理解游戏状态
  • 行为和世界脱节

本质原因是:

你做的不是 NPC,而是“聊天接口”。

在 HarmonyOS 的架构中:

智能 NPC,不是一个 API,而是一个“系统角色”。

一、先说结论

一个完整的智能 NPC,必须具备 4 个能力:

1、感知(Perception)
2、记忆(Memory)
3、决策(Decision)
4、行为(Action)

如果缺任何一个:

NPC 都只是“假智能”

二、最常见错误

直接调用 AI

const reply = await aiService.chat("你好")

然后显示:

Text(reply)

问题:

  • 不知道玩家是谁
  • 不知道当前任务
  • 不知道世界状态

本质:

没有“上下文系统”

三、正确架构:NPC = Agent + Store + Service

核心结构

玩家输入
   ↓
NPC Agent
   ↓
AI Service
   ↓
Action(行为)
   ↓
Store(世界状态)
   ↓
UI(表现)

重点:

AI 不直接输出 UI,而是输出“行为”

四、第一层:感知系统

NPC 必须“看见世界”。

输入来源:

玩家行为
游戏状态
任务进度
环境变化

示例

getContext() {
  return {
    player: gameStore.state.player,
    task: gameStore.state.task,
    location: gameStore.state.map
  }
}

这是 AI 的“输入”。

五、第二层:记忆系统

NPC 必须“记得过去”。

错误

ai.chat("你好")

每次都是新对话。

正确

memory = [
  { role: "user", content: "你好" },
  { role: "npc", content: "你好,冒险者" }
]

示例

class NPCMemory {

  history: string[] = []

  add(msg: string) {
    this.history.push(msg)
  }

  getRecent() {
    return this.history.slice(-5)
  }

}

本质:

记忆 = NPC 的“人格基础”

六、第三层:决策系统

AI 不应该直接输出文本,而是:

输出“行为意图”

示例 Prompt

你是一个 NPC,请根据以下信息决定行为:

玩家状态:...
任务状态:...
历史对话:...

输出:
{
  "action": "TALK | GIVE_TASK | ATTACK",
  "content": "..."
}

代码

const result = await aiService.chat(prompt)

const decision = JSON.parse(result)

结果:

{
  action: "GIVE_TASK",
  content: "帮我找一把剑"
}

AI 不再只是“聊天”。

七、第四层:行为系统

AI 决策必须落地到游戏系统。

示例

handleDecision(decision) {

  switch (decision.action) {

    case 'TALK':
      gameStore.dispatch({
        type: 'NPC_SPEAK',
        payload: decision.content
      })
      break

    case 'GIVE_TASK':
      taskService.createTask(decision.content)
      break

    case 'ATTACK':
      battleService.startCombat()
      break

  }

}

本质:

AI → Action → 游戏系统

八、完整 NPC 架构

玩家输入
   ↓
Perception(感知)
   ↓
Memory(记忆)
   ↓
AI Decision(决策)
   ↓
Action(行为)
   ↓
Store(世界状态)
   ↓
UI(表现)

完整闭环。

九、多端协同

NPC 不一定只在一个设备上。

示例:

手机:输入对话
TV:展示 NPC
Pad:显示任务

数据流

NPC Action
   ↓
Store
   ↓
分布式同步
   ↓
多端 UI

NPC 是“全场景角色”。

十、加入“人格系统”

让 NPC 更真实。

示例

personality = {
  name: "守卫",
  tone: "严肃",
  goal: "保护城门"
}

Prompt

你是一个严肃的守卫,目标是保护城门...

NPC 会稳定输出风格。

十一、加入“长期记忆”

示例

longTermMemory = {
  playerReputation: 80,
  completedTasks: []
}

AI 决策:

根据玩家声望改变行为

NPC 更像“活人”。

十二、常见错误

1、把 NPC 当聊天机器人

2、没有记忆

3、AI 直接改 UI

4、不接入 Store

5、没有行为系统

总结

鸿蒙游戏中智能 NPC 的正确架构:

感知(输入)
+ 记忆(上下文)
+ 决策(AI)
+ 行为(Action)

结合 HarmonyOS 的能力:

Store(统一状态)
+ 分布式(多端)
+ 状态驱动 UI

最终带来的不是“更聪明的 NPC”,而是:

一个“会思考、会行动、会成长”的游戏角色系统。

最后:

NPC 的上限,不取决于模型,而取决于你给它的“系统能力”。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐