编辑 | blame | 历史 | 原始文档

Xiaozhi AI 开放应用平台

顶层架构与 AI Coding Master Plan

Version: V1.0
Date: 2026-08-30
Purpose: 作为 Xiaozhi AI 硬件端、Server 端、小程序端以及未来开发者开放平台的最高层架构设计与 AI Coding 总体指导文档。


1. 项目最终目标

将现有 Xiaozhi AI 从:

AI 对话硬件

逐步升级为:

AI Application Terminal

最终形态类似:

手机
 └── 可以安装多个 App
       └── 每个 App 包含多个 Task
             └── 每个 Task 包含多个 Step
                   └── Step 调用底层能力

但是 Xiaozhi 与手机的核心区别是:

手机:
用户主动选择 App → 主动操作

Xiaozhi:
家长配置 → 系统调度 → Xiaozhi 主动执行 → 儿童参与

因此 Xiaozhi 最终不是单纯的聊天机器人,而是:

一个可以承载多个 AI App,并根据家长配置主动执行 Task,同时持续记录、评估和分析儿童行为的 AI 终端平台。


2. 最终产品形态

最终整个系统由:

Xiaozhi Device
       │
       │
Xiaozhi Server
       │
       ├── App Platform
       ├── Task Platform
       ├── Assessment Platform
       ├── User Data Platform
       ├── Developer Platform
       ├── Subscription Platform
       └── Parent Platform

组成。

用户关系:

平台
 │
 ├── App A
 │    ├── Task 1
 │    ├── Task 2
 │    └── Task 3
 │
 ├── App B
 │    ├── Task 1
 │    └── Task 2
 │
 └── App C
      └── ...

一个孩子可以订阅多个 App。

但是:

同一时间
只能运行一个 App / Task Runtime

因此不要求 Xiaozhi 硬件同时运行多个复杂应用。


3. 核心架构原则

整个系统必须坚持以下原则。

3.1 App 是业务能力的容器

App 不应该等同于硬件功能。

例如:

英语学习 App
回忆录 App
益智游戏 App
AI 主持人 App

都是逻辑应用。


3.2 Task 是系统真正执行的基本业务单位

系统最终执行的是:

Task

而不是:

Scenario

例如:

英语 App
 ├── 英语跟读 10 次
 ├── 单词复习
 └── 英语听力

其中:

英语跟读 10 次

就是一个 Task。


4. Scenario / Interaction Mode 的最终定义

本项目中不再把 Scenario 理解为:

业务场景

而定义为:

Device Interaction Mode

即:

Xiaozhi 在执行 Task 时,应该以什么方式与用户交互。

例如:

CHAT
PLAY_AUDIO
REPEAT
FOLLOW_READ
QUESTION_ANSWER
TRANSLATION
CALCULATION
MEMORY
GAME
SILENT

因此:

Task
 ↓
指定 Interaction Mode
 ↓
Device Runtime
 ↓
以对应方式执行

例如:

Task:
听英语复读机 10 遍

interactionMode:
PLAY_AUDIO

steps:
播放 → 等待 → 播放 → 等待 ...

不需要额外建立:

Scenario
 ↓
Task

这样的业务层级。


5. Task 是核心执行抽象

统一模型:

App
 └── Task
      └── Step
           └── Action / Skill

例如:

English App
 └── English Repeat 10 Times
      ├── Play Audio
      ├── Wait
      ├── Record
      ├── Evaluate
      └── Repeat

6. Step 是真正的执行单元

Task 负责:

做什么

Step 负责:

具体怎么一步一步做

例如:

Task:
英语跟读

Step 1:
播放标准音频

Step 2:
等待用户说话

Step 3:
录音

Step 4:
ASR

Step 5:
比较

Step 6:
评分

Step 7:
反馈

Step 8:
进入下一句

7. Skill / Atomic Capability

Step 不直接操作硬件。

Step 调用:

Skill

例如:

play_audio
record_audio
listen
speak
wait
count
asr
evaluate
display
led
button

最终:

Task
 ↓
Step
 ↓
Skill
 ↓
Device Capability

8. Device 与 Server 的职责边界

Device

负责:

执行
播放
录音
采集
缓存
通信
基础状态

Server

负责:

调度
Task
App
用户
数据
ASR
AI
评估
分析
长期趋势

9. App 不应该成为硬件固件

未来新增 App:

下载配置
下载资源

而不是:

修改 C++ 固件
重新 OTA

理想情况下:

新增 App
 ↓
App Manifest
Task Definition
Step Definition
Resource
Assessment Definition
 ↓
Server
 ↓
Device Sync

即可运行。


10. App Manifest

每一个 App 都有:

app.json

定义:

appId
name
version
developerId
description
icon
tasks
resources
permissions
assessment

11. Task Definition

Task 定义:

taskId
name
description
version
steps
parameters
interactionMode
assessment
resources

例如:

{
  "taskId": "english_repeat_10",
  "interactionMode": "PLAY_AUDIO",
  "parameters": {
    "repeatCount": 10
  }
}

12. Resource

App 可以携带:

MP3
WAV
图片
JSON
文本
配置
模型参数

这些属于:

Application Resource

而不是固件。


13. OTA 与 App 更新必须彻底区分

OTA

用于:

Device Firmware

例如:

底层驱动
通信协议
音频驱动
系统 Runtime

App Sync

用于:

App
Task
Config
Resource
Audio

例如:

新增英语 App

只需要:

Sync App

无需 OTA。


14. SD Card 的定位

16GB SD Card 主要用于:

App Resources
Audio Resources
Cache
Offline Tasks
Pending Upload Audio
Temporary Files

例如:

/sdcard/
    apps/
    resources/
    audio/
    cache/
    recordings/
    pending/

15. Server Task Runtime

Server 必须建立统一:

Task Runtime

负责:

创建 TaskInstance
启动 Task
推进 Step
等待 Device
处理 Event
判断 Step 完成
进入下一 Step
结束 Task

16. Task Instance

不要直接修改 Task Definition。

每一次实际执行:

Task
 ↓
TaskInstance

例如:

Task:
英语跟读 10 次

TaskInstance:
2026-08-30 19:30

保存:

startTime
endTime
status
currentStep
result

17. Scheduler

家长通过小程序配置:

每天 19:30
英语学习

Server:

Schedule
 ↓
Scheduler
 ↓
TaskInstance
 ↓
Device

因此:

家长配置的是“什么时候做什么 Task”,不是直接控制硬件。


18. Plan

进一步允许:

Plan

例如:

每日学习计划

包含:

19:30 英语跟读
19:45 口算
19:55 记忆游戏

最终:

Plan
 ↓
Schedule
 ↓
TaskInstance

19. Device Runtime

Device 只需要理解标准协议:

APP_SYNC
TASK_START
STEP_START
SKILL_EXECUTE
TASK_PAUSE
TASK_RESUME
TASK_STOP

以及向 Server 上报:

TASK_STARTED
STEP_STARTED
STEP_COMPLETED
AUDIO_PLAYED
SPEECH_STARTED
SPEECH_STOPPED
TASK_COMPLETED

20. Interaction Runtime

Device Runtime 内部增加:

Interaction Runtime

根据:

interactionMode

选择交互方式。

例如:

PLAY_AUDIO
 → Audio Player

FOLLOW_READ
 → Audio Player
 → Recorder
 → VAD

CHAT
 → ASR
 → LLM
 → TTS

TRANSLATION
 → ASR
 → Translation
 → TTS

21. Chat 不再是唯一 Runtime

现有 Xiaozhi 很可能:

Audio
 ↓
ASR
 ↓
LLM
 ↓
TTS

这种架构。

必须升级成:

Task Runtime
      ↓
Interaction Runtime
      ↓
┌────────┬────────┬────────┬────────┐
Chat    Audio    Repeat   Game    ...

Chat 只是其中一种能力。


22. Server Audio Architecture

Server 保存:

Original Audio

而不是只保存:

ASR Text

结构:

AudioSession
 └── AudioSegment
       ├── Original Audio
       ├── ASR
       ├── Voice Feature
       └── Assessment

23. ASR

统一 ASR Service:

Audio
 ↓
ASR
 ↓
Transcript

保存:

text
confidence
word timing
word confidence

24. Voice Analysis

统一提取:

speechDuration
pauseCount
pauseDuration
speechRate
responseLatency
volume
pitch
energy
prosody

25. Task Assessment

不同 Task 使用不同评估策略。

例如:

英语跟读
 → pronunciation
 → fluency
 → accuracy

数字倒背
 → sequenceAccuracy
 → memoryAccuracy
 → responseTime

口算
 → accuracy
 → responseTime
 → difficulty

成语接龙
 → correctness
 → responseTime
 → continuity

26. Metric System

所有结果最终统一为:

Metric

例如:

accuracy
response_time
pause_count
speech_rate
pronunciation
fluency
completion
participation
engagement

新 App 可以注册新的 Metric。


27. Behavioral Analysis

Server 建立:

User Baseline

通过:

7 Days
30 Days
90 Days

形成动态基线。

然后比较:

Today
vs
Baseline

28. Emotion Analysis

系统可以提供:

Emotion Signal

但必须定义为:

基于语音、语言和行为数据的情绪表现信号。

不能直接定义为:

心理疾病诊断

输出:

state
confidence
trend

29. Engagement

建立:

Engagement Score

综合:

响应
完成
主动性
持续性
互动

形成:

0 ~ 100

30. Parent Dashboard

家长最终看到:

今日任务
完成情况
Task Score
能力指标
参与度
趋势

而不是复杂技术指标。


31. Long-term Profile

系统持续形成:

User Profile

包括:

Learning
Memory
Speech
Task Performance
Participation
Behavior Trend
Preference

所有 Profile 都应该来自:

Event
 ↓
Metric
 ↓
Aggregation

而不是手工维护。


32. Developer Platform

最终开放:

Developer
 ↓
App
 ↓
Task
 ↓
Step
 ↓
Skill
 ↓
Assessment

开发者不应该直接修改 Device Firmware。


33. Developer Sandbox

提供:

App SDK
Task SDK
Assessment SDK
Resource SDK
API
Simulator

开发者可以在 PC 上模拟:

Xiaozhi Device

测试 Task。


34. App Store

最终平台形成:

App Store

用户可以:

浏览 App
查看介绍
试用
订阅
安装
评价

例如:

英语学习
数学训练
记忆训练
成语游戏
AI 主持人
回忆录
故事

35. Subscription

订阅关系:

User
 ↓
Subscription
 ↓
App

而不是:

User
 ↓
Firmware

36. Developer Revenue

平台负责:

订单
支付
订阅
退款
结算
分成

开发者获得:

Revenue Share

37. Permission Architecture

必须建立:

User
Child
Parent
Developer
App

之间的权限体系。

尤其是儿童数据。

开发者:

默认不能读取其他 App 数据

家长:

可以查看孩子数据

平台:

负责权限控制

38. Privacy

儿童语音必须重点保护。

建立:

Consent
Encryption
Access Control
Audit Log
Retention Policy
Data Deletion

39. 数据核心链路

最终统一成:

App
 ↓
Task
 ↓
TaskInstance
 ↓
StepInstance
 ↓
Device Event
 ↓
Audio
 ↓
ASR
 ↓
Voice Feature
 ↓
Assessment
 ↓
Metric
 ↓
Aggregation
 ↓
Profile
 ↓
Report

这是整个系统最重要的数据链路。


40. Event-Driven Architecture

核心状态尽量由 Event 驱动。

例如:

TaskStarted
StepStarted
AudioPlayed
SpeechStarted
SpeechStopped
ASRCompleted
AssessmentCompleted
StepCompleted
TaskCompleted

Event 成为系统的重要事实来源。


41. 异步分析

实时链路:

Device
 ↓
Server
 ↓
Task Runtime
 ↓
实时反馈

异步链路:

Audio
 ↓
Queue
 ↓
ASR
 ↓
Voice Analysis
 ↓
Assessment
 ↓
Aggregation
 ↓
Report

复杂 AI 分析不能阻塞 Task Runtime。


42. 离线能力

Device 网络断开时:

Task
 ↓
Local Cache
 ↓
执行
 ↓
Recording
 ↓
SD Card
 ↓
网络恢复
 ↓
Sync

因此:

Server 是中心控制器,但 Device 必须具备一定程度的 Offline Runtime。


43. 版本管理

所有这些对象必须版本化:

Firmware
App
Task
Step
Assessment
Model
Resource

例如:

App v1.2
Task v3
Assessment v2
Model v5

历史数据必须能够追溯到具体版本。


44. 不覆盖历史结果

例如:

Pronunciation Model v1
Score = 82

以后:

Pronunciation Model v2
Score = 87

两个结果都保留。


45. 推荐的数据库关系

核心:

User
 └── Child

Child
 ├── Subscription
 ├── Plan
 ├── Schedule
 └── TaskInstance

App
 └── Task
      └── TaskStep

TaskInstance
 └── TaskStepInstance
       ├── DeviceEvent
       ├── AudioSegment
       │    ├── ASR
       │    └── VoiceFeature
       └── Assessment
             └── Metric

46. 第一阶段开发目标

不要一开始开发完整平台。

首先建立最小闭环:

家长
 ↓
配置 Task
 ↓
Server Scheduler
 ↓
TaskInstance
 ↓
Xiaozhi
 ↓
执行
 ↓
录音
 ↓
Server
 ↓
ASR
 ↓
Assessment
 ↓
家长查看结果

必须完整跑通。


47. MVP Task

第一阶段只实现三个 Task:

Task A:英语复读

播放
 ↓
等待
 ↓
播放
 ↓
...

Task B:英语跟读

播放标准音频
 ↓
录音
 ↓
ASR
 ↓
准确率

Task C:口算

播放问题
 ↓
等待回答
 ↓
ASR
 ↓
答案解析
 ↓
正确率

48. 第二阶段

增加:

数字倒背
成语接龙
简单记忆游戏

并统一:

Task Engine
Step Engine
Assessment Engine

49. 第三阶段

加入:

Voice Feature

实现:

Pause
Speech Rate
Response Latency
Volume
Pitch

50. 第四阶段

加入:

Baseline
Behavior
Engagement
Participation

实现:

Today
7 Days
30 Days

趋势。


51. 第五阶段

建立:

Emotion Signal

进行实验性分析。

要求:

模型版本化
置信度
趋势
人工验证

不允许直接做医疗诊断。


52. 第六阶段

开放:

App Manifest
Task DSL
Assessment SDK
Developer API

实现第三方 App。


53. 第七阶段

建立:

App Store
Subscription
Payment
Revenue Share
Developer Console

54. 第八阶段

建立:

Parent AI Assistant

家长可以询问:

孩子最近学习怎么样?

哪个 App 最喜欢?

英语最近有没有进步?

最近参与度有没有下降?

过去一个月有什么明显变化?

AI 从:

Metrics
Assessment
Trend
Profile

中生成解释。


55. AI Coding 总体实施顺序

AI Coding 不允许一次性重写整个项目。

必须:

Phase 0
代码审计

Phase 1
建立核心 Domain Model

Phase 2
Task Runtime

Phase 3
Device Runtime

Phase 4
App / Resource Sync

Phase 5
Audio / ASR

Phase 6
Assessment

Phase 7
Parent / Schedule

Phase 8
Behavior / Metrics

Phase 9
Developer Platform

Phase 10
Subscription / Marketplace

每个 Phase:

分析
 ↓
设计
 ↓
实现
 ↓
测试
 ↓
回归
 ↓
提交

56. AI Coding 第一原则

AI 编程 Agent 必须:

优先理解现有代码,再修改代码。

禁止:

没有阅读代码
 ↓
直接重构

必须:

Repository Audit
 ↓
Architecture Mapping
 ↓
Dependency Analysis
 ↓
Minimal Change

57. 不允许无理由重写现有功能

现有 Xiaozhi 的:

Audio
ASR
TTS
LLM
MQTT / WebSocket
Device Communication

能够复用的必须复用。

新架构应该:

包裹现有能力

而不是:

全部推倒重来

58. 新旧系统迁移策略

旧系统:

Conversation

保留。

增加:

Task Runtime

最终:

Task Runtime
 ├── Chat Task
 ├── Repeat Task
 ├── Follow Read Task
 ├── Translation Task
 └── Game Task

因此:

Chat 最终只是 Task Runtime 的一种 Task,而不是整个系统的核心。


59. API 设计原则

所有 API 必须围绕:

App
Task
TaskInstance
StepInstance
Event
Audio
Assessment
Metric

设计。

避免大量:

/english/xxx
/math/xxx
/game/xxx

这种 App-specific API。


60. Task DSL 原则

未来开发者应该能够通过:

JSON / YAML / SDK

定义 Task。

例如:

Task
 ├── parameters
 ├── steps
 │    ├── action
 │    ├── condition
 │    ├── wait
 │    ├── loop
 │    └── branch
 └── assessment

这样:

新增 Task 尽量不需要修改核心 Runtime。


61. Runtime 的稳定边界

必须建立稳定的:

Task Runtime API
Skill API
Device API
Assessment API

未来 App 越多:

Runtime 不变
App 增加
Task 增加

这是开放平台成立的关键。


62. 最终架构图

                         Xiaozhi Platform
                                │
             ┌──────────────────┼──────────────────┐
             │                  │                  │
          Parent             Developer           Device
             │                  │                  │
             ↓                  ↓                  ↓
           Plan               App Store       Device Runtime
             │                  │                  │
         Schedule              App              Interaction
             │                  │                  │
             └──────────────→ Task ←───────────────┘
                               │
                              Step
                               │
                              Skill
                               │
                         Device Capability
                               │
                               ↓
                         Audio / Event
                               │
                               ↓
                        Server Pipeline
                               │
            ┌──────────────────┼─────────────────┐
            ↓                  ↓                 ↓
           ASR          Voice Analysis      Assessment
            │                  │                 │
            └──────────────────┼─────────────────┘
                               ↓
                             Metric
                               ↓
                           Aggregation
                               ↓
                         User Profile
                               ↓
                          Parent Report

63. 最终平台的核心抽象

整个项目最终只需要牢牢抓住以下 8 个核心概念:

App
Task
Step
Skill
Interaction Mode
Event
Assessment
Metric

它们之间:

App
 ↓
Task
 ↓
Step
 ↓
Skill
 ↓
Device

执行过程中产生:

Event
 ↓
Audio
 ↓
Assessment
 ↓
Metric

64. 最终产品逻辑

因此最终 Xiaozhi 的逻辑不是:

用户
 ↓
说话
 ↓
AI 回复

而是:

家长
 ↓
订阅 App
 ↓
配置 Plan
 ↓
配置 Schedule
 ↓
Server
 ↓
Task
 ↓
Xiaozhi
 ↓
执行 Step
 ↓
采集 Audio / Event
 ↓
Server 分析
 ↓
Assessment
 ↓
Metric
 ↓
长期 Profile
 ↓
家长

65. 项目的最终战略目标

第一阶段:

让 Xiaozhi 能执行 Task

第二阶段:

让 Xiaozhi 能记录 Task

第三阶段:

让 Xiaozhi 能评估 Task

第四阶段:

让 Xiaozhi 能理解长期变化

第五阶段:

让任何开发者都能创建 Task / App

第六阶段:

让 App 可以订阅和商业化

最终:

Xiaozhi Device 成为终端,Task Runtime 成为执行引擎,Server 成为 AI 数据与调度中枢,App Store 成为生态入口。


66. 给 AI Coding Agent 的最高级指令

后续将本 Plan 提供给 Cursor / Codex 等 Coding Agent 时,应遵守:

你正在参与的是 Xiaozhi AI 从“AI 对话设备”
向“AI Application Terminal Platform”的架构升级。

不要把 Xiaozhi 设计成只有 Chat 的机器人。

系统必须支持:

App
Task
Step
Skill
Interaction Mode
Task Instance
Event
Audio
ASR
Assessment
Metric
Schedule
User Profile

Task 是系统核心业务执行单位。

Interaction Mode 是设备交互方式,
不是业务层级。

App 是 Task 的业务容器。

Step 是 Task 的执行步骤。

Skill 是底层原子能力。

Device 负责执行和采集。

Server 负责调度、理解、分析、评估和长期数据管理。

新增 App / Task / Audio Resource 尽量通过配置和资源同步实现,
不应该依赖 Firmware OTA。

必须保持旧 Chat 能力继续工作。

所有新架构必须尽可能兼容和复用现有代码。

禁止在未完成代码审计之前大规模重构。

每个 Phase 必须:

1. 分析现有代码
2. 明确修改范围
3. 给出架构方案
4. 实施最小必要修改
5. 编写测试
6. 执行测试
7. 验证旧功能没有回归
8. 输出修改总结

不要一次性实现整个系统。

必须按照 Phase 逐步演进。

优先建立稳定的 Domain Model 和 Runtime Boundary。

未来第三方开发者应该能够在不修改 Xiaozhi 核心 Runtime 的情况下创建新的 App 和 Task。

最终目标是:

“核心 Runtime 稳定,App / Task / Resource / Assessment 可无限扩展。”

67. Master Plan 的执行方式

以后所有 Coding Plan 都应该从本 Master Plan 派生。

结构:

Master Plan
     │
     ├── Device Plan
     │
     ├── Server Plan
     │
     ├── Mini Program Plan
     │
     ├── Developer Platform Plan
     │
     ├── Assessment Plan
     │
     └── Marketplace Plan

然后再进一步:

Architecture Plan
       ↓
Module Plan
       ↓
Implementation Plan
       ↓
Coding Task
       ↓
Code
       ↓
Test

68. 最终判断标准

以后任何一个新需求,都先问:

这是 App?
是 Task?
是 Step?
是 Skill?
是 Interaction Mode?
是 Event?
是 Assessment?
还是 Metric?

如果一个新需求无法归入这些核心抽象:

不要立即写代码。

先重新审视架构。

这套原则将决定 Xiaozhi 最终能不能从一个产品,真正演化成一个开放平台。