架构总览
Zorv AI 采用分层架构:UI 层负责交互,Agent 核心负责编排,工具 / 能力层与特权层提供系统操作通道,引擎 / 运行时提供共享执行环境,IM 通道让助手在线,数据层负责持久化与诊断。
分层结构
flowchart TB
subgraph UI["UI 层 · Jetpack Compose"]
A1["ChatScreen 对话框"]
A2["PersonaBar 人格卡"]
A3["PermissionModeBar · 权限胶囊"]
A4["Markdown / 代码块渲染 · 全屏预览"]
end
subgraph CORE["Agent 核心 · QuroChatViewModel"]
B1["多会话隔离 liveBuffers"]
B2["种子快照 convBase"]
B3["显示刷新闸门 canUpdateDisplay"]
B4["工具注册表 QuroToolRegistry"]
B5["技能系统 skill__{name}"]
end
subgraph TOOLS["工具 / 能力层 · core/tools"]
C1["launch_app"]
C2["无障碍 input_text / tap_screen / read_screen"]
C3["cms_* 模块调用"]
C4["cms_engine_status"]
C5["Agent 键盘 ai_type_text / press_enter / press_send"]
C6["scheduler 定时任务"]
C7["memory_* 记忆工具"]
end
subgraph PRIV["特权 / 权限层 · L1–L5"]
D1["L1 无障碍 AccessibilityService"]
D2["L2 Shizuku uid 0/2000"]
D3["L3 设备管理员 DeviceAdmin"]
D4["L4 ROOT su"]
D5["L5 应用内 Linux proot + Alpine"]
end
subgraph ENGINE["引擎 / 运行时层"]
E1["CMS 引擎 共享运行时 NODE / PYTHON / SSH / JAVA / RUST / GO"]
E2["CMS v2 模块 QuroCmsRepository"]
E3["GeckoView 浏览器 MPL-2.0"]
E4["本地语音 sherpa-onnx STT / TTS"]
end
subgraph IM["IM 通道层 · 手机端均无公网端点"]
F1["飞书 WebSocket"]
F2["QQBot 官方 WS"]
F3["微信 iLink HTTP 长轮询 35s"]
end
subgraph DATA["数据 / 持久化"]
G1["QuroConversationStore 磁盘会话仓库"]
G2["启动自愈 DATA_REPAIR 去重"]
G3["诊断日志 Download/QuroAI_logs/"]
end
UI --> CORE
CORE --> TOOLS
TOOLS --> PRIV
TOOLS --> ENGINE
PRIV --> ENGINE
CORE --> IM
CORE --> DATA各层职责
UI 层(Jetpack Compose)
对话框 ChatScreen、人格卡 PersonaBar、权限胶囊 PermissionModeBar(「AI 自动保存记忆」+「深度思考」并排)、Markdown / 代码块渲染与全屏预览。
Agent 核心(QuroChatViewModel)
- 多会话隔离:
liveBuffers按会话独立,避免串台; - 种子快照
convBase、显示刷新闸门canUpdateDisplay; - 多轮
[第N轮]hidden 标记防混淆; - 工具注册表
QuroToolRegistry.active; - 技能系统
QuroSkill→ 注册为skill__{name}工具。
工具 / 能力层(core/tools)
launch_app、无障碍 input_text / tap_screen / read_screen(节点树,非截图)、cms_* 模块调用、cms_engine_status、Agent 键盘 ai_type_text / ai_press_enter / ai_press_send(注册为系统输入法的极简 IME,向其他 App 灌字)、scheduler 定时任务、memory_* 记忆工具。
特权 / 权限层(L1–L5)
无障碍 → Shizuku(uid 0/2000) → 设备管理员 → ROOT(su) → 应用内 Linux(proot + Alpine)。所有高层通道需用户显式授权。详见快速开始 · 权限引导。
引擎 / 运行时层
- CMS 引擎:共享运行时供给机制,按需提供 NODE / PYTHON / SSH / JAVA / RUST / GO(
DepKind.ENV+CmsEnvProvisioner按需供给),用cms_engine_status查询就绪态 / 共享服务 / 部署进度。 - CMS v2 模块(
QuroCmsRepository):用户自建可复用上层能力单元,运行在引擎之上。 - GeckoView 浏览器(MPL-2.0):系统 WebView 替代,用于渲染网页与 HTML 预览。
- 本地语音:
sherpa-onnx-whisper-tinySTT + 单例QuroTtsHolderTTS。
🔑 引擎 ≠ 模块:CMS 引擎是「运行时骨架」(提供环境),CMS v2 模块是「楼栋」(消费环境)。
IM 通道层
飞书(WebSocket)/ QQBot(官方 WS)/ 微信 iLink(HTTP 长轮询 35s)。三家手机端均无公网端点。
数据 / 持久化
QuroConversationStore 磁盘会话仓库、启动自愈 DATA_REPAIR 去重、诊断日志写入手机公共 Download/QuroAI_logs/(无需 adb 即可取出)。
ACI 在架构中的位置
ACI(Agent Capability Interface)横切于「工具层」与「外部 App」之间:控制端(Zorv AI)通过 Binder 发现并调用受控端暴露的能力,把任意 App 变成 AI 可编排的工具。详见 ACI 2.0 与 SDK 路线图。