AIRI:把“赛博生命”带到手边 — 给开发者与创作者的一份可操作指南


AIRI 横幅预览

为什么读这篇文章?

如果你对“能玩游戏、能聊天、能作为数字伴侣/VTuber 的开源方案”感兴趣,并希望能在浏览器、移动设备或桌面上快速上手、定制与扩展——AIRI 把这些能力模块化、可插拔地提供出来;本文帮你把 README 里的信息组织成能马上照着做的步骤、FAQ 和实践建议。


AIRI 是什么?

AIRI 是一个以“赛博生命 / 数字人 / VTuber”为目标的开源集合项目,受 Neuro-sama 启发,目标是让每个人都能拥有并运行自己的“数字生命”。项目从一开始就以浏览器优先为设计方向,原生支持多项 Web 技术(例如 WebGPU、WebAudio、WebAssembly、WebSocket 等),并兼容多种 LLM 服务来源与本地运行选项。


项目亮点

  • 浏览器优先:支持在现代浏览器上运行,已完成 PWA 支持,移动端可用。
  • 多模态能力:具备语言(聊天)、语音输入/识别、语音合成、以及动画(VRM / Live2D)支持。
  • 游戏与代理能力:能让 AI 玩 Minecraft、Factorio,并通过插件与游戏服务交互。
  • 模块化生态:包含 RAG、记忆层、嵌入数据库、工具集与多个由 AIRI 衍生出的子项目。

当前进度

项目 README 给出了目前的实现与待办清单,核心要点如下(按 README 原文整理):

  • 思维能力

    • 已实现:玩 Minecraft、玩 Factorio、在 Telegram、Discord 聊天等代理能力。
    • 记忆方面:支持在浏览器内使用 DuckDB WASM 或 sqlite;云端/更复杂的记忆层(Alaya)仍在建设中。
  • 语音能力

    • 浏览器音频输入、Discord 音频输入、客户端语音识别、说话检测等均已支持。
  • 语言 & TTS

    • 已集成 ElevenLabs 作为语音合成渠道(文档列为已支持项)。
  • 动画 / 身体动作

    • VRM 与 Live2D 支持(控制与基本动画,如自动眨眼、注视、空闲眼睛移动)已实现。

支持的 LLM / API 列表

AIRI 原生支持多种 LLM API 服务(由 xsai 驱动),README 中列出的来源包括但不局限于:

  • OpenRouter、vLLM、SGLang、Ollama、Google Gemini、OpenAI、Anthropic Claude、DeepSeek、Qwen、xAI、Groq、Mistral、Cloudflare Workers AI、Together.ai、Fireworks.ai、Novita、智谱、硅基流动、阶跃星辰、百川、Minimax、月之暗面、Player2、腾讯混元 等(README 列表详见原文)。部分服务(如 Azure OpenAI、讯飞星火、火山引擎)标注为“未完全集成 / WIP”。

提示:在使用特定 LLM 服务前,参照 README 的“已支持 / 待支持”标注来决定接入优先级。


如何在本地启动

如果你想快速试跑项目(网页版或桌面版),README 提供了直接可执行的命令。请在项目根目录执行(你需要 pnpm):

  1. 安装依赖

    pnpm i
    
  2. 启动开发环境(通用)

    pnpm dev
    
  3. 启动网页版(本地预览 airi.moeru.ai 的版本)

    pnpm dev:web
    
  4. 启动桌面版(“拓麻歌子 / 电子宠物”模式)

    pnpm dev:tamagotchi
    
  5. 启动文档站(如果你只想运行 docs)

    pnpm -F @proj-airi/docs dev
    

这些命令直接摘自项目 README,按该顺序可让你从安装到运行逐步进入开发状态。


推荐的开发/贡献者角色

项目欢迎多样背景的贡献者(摘自 README):

  • Live2D / VRM / VRChat 模型师
  • 计算机视觉(CV)工程师
  • 强化学习(RL)研究者
  • 语音识别 / 语音合成工程师(ASR / TTS)
  • ONNX / Transformers.js / vLLM / WebGPU 等推理 / 性能工程
  • 前端(Three.js、WebXR、PWA)、后端与运维等。

即便你不熟悉 TypeScript / Vue 等,也欢迎在仓库下创建子目录,加入自定义功能(例如用 React / Svelte 实现的扩展)。这是 README 强调的开放协作策略。


子项目与生态

README 同时列出了若干由 AIRI 衍生或相关的开源子项目——这些构成了一个基础设施层:

  • unspeech:用于代理音频转录与语音接口实现(面向各种 ASR/TTS)。
  • hfup:帮助将项目部署到 HuggingFace Spaces 的工具集。
  • @proj-airi/duckdb-wasmdrizzle-duckdb-wasm:浏览器端 DuckDB 的封装与 ORM 驱动(本地记忆与查询)。
  • airi-factorio:让 AIRI 玩 Factorio 的实现与工具链。
  • 等等(README 中列举了更多链接与项目,建议直接查看仓库索引以获得最新详情)。

实践小贴士

  1. 先跑 docs / web 版本:如果你想先理解系统架构与 API,pnpm -F @proj-airi/docs dev 是最快途径。
  2. 本地测试 LLM 接入:README 提供了多种接入方式,建议先从你熟悉的服务入手(如 OpenAI / OpenRouter),再扩展到本地推理(vLLM / Ollama 等)。注意查看 README 中对“已支持 / 待支持”的标注。
  3. 模型与前端分离:AIRI 采用模块化设计,UI(VRM / Live2D)与核心逻辑可以独立开发并通过插件 / 子目录集成。若你是前端设计师,可先提交 UI 子目录。

项目架构示意

%%{ init: { 'flowchart': { 'curve': 'catmullRom' } } }%%

flowchart TD
  Core("Core")
  Unspeech("unspeech")
  DBDriver("@proj-airi/drizzle-duckdb-wasm")
  MemoryDriver("[WIP] Memory Alaya")
  DB1("@proj-airi/duckdb-wasm")
  SVRT("@proj-airi/server-runtime")
  Memory("Memory")
  STT("STT")
  Stage("Stage")
  StageUI("@proj-airi/stage-ui")
  UI("@proj-airi/ui")

  subgraph AIRI
    DB1 --> DBDriver --> MemoryDriver --> Memory --> Core
    UI --> StageUI --> Stage --> Core
    Core --> STT
    Core --> SVRT
  end

  subgraph UI_Components
    UI --> StageUI
    UITransitions("@proj-airi/ui-transitions") --> StageUI
    UILoadingScreens("@proj-airi/ui-loading-screens") --> StageUI
    FontCJK("@proj-airi/font-cjkfonts-allseto") --> StageUI
    FontXiaolai("@proj-airi/font-xiaolai") --> StageUI
  end

  subgraph Apps
    Stage --> StageWeb("@proj-airi/stage-web")
    Stage --> StageTamagotchi("@proj-airi/stage-tamagotchi")
    Core --> RealtimeAudio("@proj-airi/realtime-audio")
    Core --> PromptEngineering("@proj-airi/playground-prompt-engineering")
  end

  subgraph Server_Components
    Core --> ServerSDK("@proj-airi/server-sdk")
    ServerShared("@proj-airi/server-shared") --> SVRT
    ServerShared --> ServerSDK
  end

  STT -->|Speaking| Unspeech
  SVRT -->|Playing Factorio| F_AGENT
  SVRT -->|Playing Minecraft| MC_AGENT

  subgraph Factorio_Agent
    F_AGENT("Factorio Agent")
    F_API("Factorio RCON API")
    factorio-server("factorio-server")
    F_MOD1("autorio")

    F_AGENT --> F_API -.-> factorio-server
    F_MOD1 -.-> factorio-server
  end

  subgraph Minecraft_Agent
    MC_AGENT("Minecraft Agent")
    Mineflayer("Mineflayer")
    minecraft-server("minecraft-server")

    MC_AGENT --> Mineflayer -.-> minecraft-server
  end

  XSAI("xsAI") --> Core
  XSAI --> F_AGENT
  XSAI --> MC_AGENT

  Core --> TauriMCP("@proj-airi/tauri-plugin-mcp")
  Memory_PGVector("@proj-airi/memory-pgvector") --> Memory

如何参与

  1. 在 GitHub 仓库页面选一个你感兴趣的子项目(例如 @proj-airi/duckdb-wasm)。
  2. 阅读 CONTRIBUTING.md(README 提及贡献指南)并在倉庫 Discussions / Issues 打招呼或提出问题。
  3. 如果你是设计师/艺术家,可以直接贡献 Live2D / VRM 素材或 UI 组件;如果你是工程师,可以从修复小 bug 或完善文档开始。

常见问题

AIRI 是开源吗?我能在哪里找到源代码?

是的,项目托管在 GitHub(README 中有仓库链接),并且 README 提到了单独的组织 @proj-airi 用于子项目。

我想先看演示站 / 立即体验怎么办?

README 提到有在线体验 https://airi.moeru.ai,并提供了 Discord 社区邀请链接,你可以去社区询问演示或部署方式。

本地有没有一键启动的命令?

有。最小流程是 pnpm i 然后 pnpm dev,或分别使用 pnpm dev:web / pnpm dev:tamagotchi 启动对应子应用。

项目能做什么“身体”表现/动画?

支持 VRM 与 Live2D,包含基础自动眨眼、自动注视与空闲眼睛移动等动画行为。

有没有离线 / 本地推理的选项?

README 列出了 vLLM、Ollama 等本地推理/运行選项作为“已支持”的服务之一,但不同后端的集成状态以 README 的标注为准(部分为 WIP)。


HowTo:把 AIRI 在本地跑起来

前提

  • 准备好 Node 包管理器 pnpm(项目使用 pnpm)。
  • 克隆仓库到本地。
    (克隆命令与仓库地址在 README,本文不重复写出克隆 URL, 请以仓库页面为准。)

步骤

  1. 进入项目根目录。
  2. 安装依赖:pnpm i
  3. 运行开发服务器(通用):pnpm dev
  4. 若只想运行网页端:pnpm dev:web
  5. 若想运行桌面宠物版本:pnpm dev:tamagotchi
  6. 若需查看/本地运行文档:pnpm -F @proj-airi/docs dev

验证

  • 在终端中看到构建成功信息后,打开控制台给出的本地地址(通常是 http://localhost:xxxx)进行访问。

结语 — 这份项目适合谁,能给你带来什么

AIRI 更像是一个面向创作者与工程师的工具箱:如果你关注“把 AI 人物(可以聊天、能玩游戏、能做声音与表情)的能力放在浏览器与轻量客户端上”,并愿意参与开源协作与模块化开发,AIRI 的生态与子项目会非常适合你。README 把当前实现、待办、支持的服务与贡献路径都整理好了;本文把这些信息以更可操作的方式呈现出来,帮助你快速上手并参与贡献。


附录:结构化 Schema

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "AIRI 是什么?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "AIRI 是一个面向赛博生命与 VTuber 的开源项目,支持浏览器运行、语音、动画与多种 LLM 接入。"
          }
        },
        {
          "@type": "Question",
          "name": "如何在本地启动?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "在项目根目录执行 pnpm i;然后运行 pnpm dev(或 pnpm dev:web / pnpm dev:tamagotchi / pnpm -F @proj-airi/docs dev)。"
          }
        }
      ]
    },
    {
      "@type": "HowTo",
      "name": "本地快速启动 AIRI(概要)",
      "step": [
        {"@type":"HowToStep","text":"克隆仓库到本地"},
        {"@type":"HowToStep","text":"pnpm i 安装依赖"},
        {"@type":"HowToStep","text":"pnpm dev 启动开发环境(或使用子命令启动特定子应用)"}
      ]
    }
  ]
}