本地优先架构技术文档 · AGI · 红魔团队 Red Magic

本地优先架构技术文档

本篇解析 AGI 的本地优先(local-first)架构:模型如何通过 llama.cpp 在设备端运行,Flutter 与 Kotlin 如何分工,消息、模型、控制台与技能四大模块如何组织与协同,以及异常与降级机制。

技术文档架构

01架构总览

AGI 采用本地优先的分层架构,核心原则是「模型与数据在设备端,界面与操控在本地」。

技术栈分工

  • llama.cpp负责在设备端加载与推理大语言模型,提供高性能本地推理能力。
  • Flutter负责跨平台界面,提供本机会话、Web 控制台前端与一致的用户体验。
  • Kotlin负责系统能力层,对接设备原生系统,实现深度操控与技能执行。
架构层职责主要技术
交互层本机会话、Web 控制台、语音交互Flutter
智能体层消息路由、技能调用、对话编排Flutter / Kotlin
推理层本地模型加载与推理llama.cpp
系统能力层设备深度操控、技能后端Kotlin

02核心设计原则

设计原则

  • 本地优先:模型推理与数据存储默认在设备端,不强制依赖云端。
  • 数据自持:对话、配置与凭据等数据由用户掌控,见数据自持机制。
  • 模块解耦:消息渠道、模型、控制台、技能四大模块职责清晰、可独立管理。
  • 最小权限:技能与渠道仅授予完成任务所需的最小权限。

03关键流程与数据流

一次完整的对话交互涉及多个模块协同,数据流如下。

  1. 消息到达
    消息从渠道进入交互层,由智能体层的路由模块解析。
  2. 意图与技能识别
    智能体分析消息,判断是否需要调用技能,以及调用哪个模型。
  3. 模型推理
    推理层通过 llama.cpp 在设备端加载模型并生成响应。
  4. 技能执行
    如需操控设备,由系统能力层(Kotlin)执行受控操作,结果回传智能体。
  5. 响应返回
    智能体将结果组织为响应,经渠道返回用户。

04异常与降级机制

本地运行难免遇到资源受限或异常,AGI 提供降级与容错机制保障可用。

降级策略

  • 模型降级:资源不足时自动切换到更轻量的模型,见多模型路由。
  • 上下文裁减:超长对话时自动裁剪历史,控制上下文长度。
  • 技能降级:技能不可用时返回明确提示,不阻塞对话。
  • 日志与恢复:异常写入日志,支持通过 Web 控制台排查与恢复。
📌 关联阅读

多模型的选择与切换策略详见多模型路由技术文档;数据如何做到本地自持见数据自持机制技术文档