RepoDaily · 2026-07-15 · Infrastructure / Runtime

Project AIRI:一个可自托管的 AI 虚拟伴侣运行时

#10 Infrastructure / Runtime TypeScript +604 moeru-ai/airi 打开仓库

MIT 协议的 TypeScript 单体仓库,内置实时语音聊天、Minecraft、电子宠物(Tamagotchi)与桌面等多端舞台,提供安装包与基于 pnpm 的应用工作区。

项目类型Infrastructure / Runtime
最适合希望在自己桌面、手机或服务器上运行可自托管 VTuber/AI 伴侣的爱好者和小型团队,尤其是需要语音聊天与游戏集成的场景。
风险等级中等——仓库尚处于 1.0 之前(package.json 为 0.11.0,README 发布按钮指向 v0.10.2 二进制),包覆盖面广。
评估时间下载预编译二进制并运行 Web 端约 1–2 小时;克隆并使用 pnpm 启动开发工作区约 2–4 小时。

核心问题: AIRI 基于舞台(stage)的单体架构是否与你真正需要的部署目标一致——桌面、浏览器、移动端、电子宠物硬件,还是游戏服务器?

91/100

RepoDaily 采用评分

RepoDaily 将该项目的采用分评为 91/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。

基于 RepoDaily 来源和采用说明的方向性评分,不是基准测试。风险: 中
100证据质量

包含 4 个来源、覆盖 4 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。

100可安装/可试用性

检测到 6 个工作流步骤、5 个下一步动作,以及 5 个命令/安装信号。

65维护可信度

趋势热度为 +604 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。

93生产准备度

采纳风险标记为 medium,并包含 5 条安全说明与 4 条跳过条件。

100差异化

3 个机会视角、4 个替代方案,以及 4 个类型化模块支撑差异化判断。

82许可证清晰度

文章中包含许可证来源或许可证表述。

84Agent / AI 适配度

文章正文和元数据中检测到 6 个 AI/Agent 相关信号。

项目概览

Project AIRI 是由 Moeru AI Project AIRI Team 维护的 TypeScript 单体仓库,代码位于 github.com/moeru-ai/airi。README 把项目目标描述为“re-creating Neuro-sama, a soul container of AI waifu / virtual characters to bring them into our world”,并强调它是自托管、完全归用户所有的伴侣运行时;package.json 的 description 则更简洁地写道“LLM powered virtual character”。

仓库以 pnpm workspace 加 turbo 编排的方式组织。根 package.json 版本号为 0.11.0,使用 pnpm@10.33.0 作为包管理器,并为多个舞台定义了独立的 dev 脚本:stage-web、stage-ui、stage-pocket(iOS 与 Android)、stage-tamagotchi 以及 server-runtime。README 中还提供了 v0.10.2 的预编译二进制,覆盖 Windows x64 与 macOS darwin-arm64,意味着你可以不碰单体仓库就直接试用。

AIRI 被归入“基础设施 / 运行时”类,是因为它不是一个单一聊天机器人,而是一个多舞台平台:包含鉴权服务(ui-server-auth)、运行时服务(server-runtime)、音频管线(audio-pipelines-transcribe)、视觉镜头运行时(vishot-runtime),以及电子宠物舞台的场景运行器。MIT 协议与清晰的单体结构降低了贡献门槛,但包面之广也让“想做定制”的用户需要更长上手时间。

解决什么问题

  • 实现一个有吸引力的 AI VTuber 伴侣通常需要拼接语音转写、LLM 推理、语音合成、虚拟形象与聊天 UI,每个环节都是独立组件。
  • 托管的伴侣服务把录音、对话记录与角色配置放在第三方手中,而许多用户把这些视为个人数据。
  • 把伴侣接入 Minecraft 等游戏,或运行在电子宠物类硬件上,往往要写难以复用的粘合代码。
  • 这类伴侣的桌面与移动分发被平台割裂,iOS、Android、Windows、macOS 各需不同工具链。

工作原理

  1. 选择舞台:单体仓库暴露了 stage-web(浏览器)、stage-tamagotchi(嵌入式类硬件)、stage-pocket(iOS/Android)与 server-runtime(无头运行)。
  2. 使用 pnpm@10.33.0 安装依赖;postinstall 会执行 simple-git-hooks 并运行 pnpm run build:packages,通过 turbo 构建 packages/ 下全部包。
  3. 运行与你目标匹配的 dev 脚本——pnpm dev 启动 stage-web,pnpm dev:server、pnpm dev:tamagotchi、pnpm dev:pocket:ios、pnpm dev:pocket:android 分别面向其他舞台。
  4. 接入 LLM 与语音服务:audio-pipelines-transcribe 与 vishot-runtime 负责把麦克风输入转写为文本,再合成为带角色形象的语音回复。
  5. 如需多客户端架构,可部署 server-runtime 与 ui-server-auth,让多个前端共享同一后端。
  6. 通过预编译二进制分发给终端用户,或用 turbo run build 按 apps/*、packages/*、engines/* 范围从源码构建。

架构解读:AIRI 单体仓库如何分层

AIRI 是一个由 turbo 编排的 pnpm workspace。根 package.json 的 name 为 @proj-airi/root,标记为 private,版本 0.11.0,packageManager 设为 pnpm@10.33.0。构建使用 turbo run build,通过过滤器把工作限定在 ./packages/*、./apps/* 与 ./engines/*。

具名舞台对应可部署目标:stage-web 是浏览器前端,stage-ui 用于 Storybook 式 UI 开发,stage-pocket 通过 dev:pocket:ios 与 dev:pocket:android 覆盖 iOS 与 Android,stage-tamagotchi 覆盖电子宠物舞台并带有 xwayland 变体,server-runtime 与 ui-server-auth 提供后端。

支撑性包包括 audio-pipelines-transcribe(语音转写,拥有独立 vitest 配置)、vishot-runtime(视觉镜头运行时,亦有独立 vitest 配置),以及 scenarios-stage-tamagotchi-electron——capture:tamagotchi 脚本会调用它,并指向 demo-controls-settings-chat-websocket.ts 场景文件以产出截图制品。了解这种分层,就能快速定位要修改的能力。

试用路径:从预编译二进制到单体仓库开发

  • 最快路径:从 README 链接的 GitHub releases 下载 AIRI-0.10.2-windows-x64-setup.exe 或 AIRI-0.10.2-darwin-arm64.dmg。
  • 免安装试用:访问 README 中“Try it”指向的 airi.moeru.ai。
  • 开发者路径:克隆仓库,确保有 pnpm@10.33.0,执行 pnpm install(postinstall 会构建包),再运行 pnpm dev 启动 Web 舞台。
  • 文档路径:运行 pnpm dev:docs,通过 @proj-airi/docs 工作区本地启动文档站点。
  • UI 贡献者路径:运行 pnpm dev:ui,为 @proj-airi/stage-ui 工作区启动 story:dev。

集成面:你能接入和扩展什么

AIRI 的集成是按舞台划分的。要做浏览器伴侣,就扩展 stage-web;要做桌面电子宠物体验,就进入 stage-tamagotchi,它还提供 dev:tamagotchi:xwayland 以处理 Linux 显示相关需求。

语音与感知流经 audio-pipelines-transcribe,视觉镜头层由 vishot-runtime 处理。场景作者可以使用 scenarios-stage-tamagotchi-electron,capture:tamagotchi 脚本指向的 demo-controls-settings-chat-websocket.ts 就是场景结构示例。

后端集成通过 server-runtime 与 ui-server-auth 进行,让你可以把 AIRI 作为服务运行,而不仅是桌面或浏览器应用。如果你想让多个客户端接入,或把伴侣运行在游戏服务器中(如项目描述里提到的 Minecraft 集成),这就是你要对接的面。

维护风险:采用前需要关注什么

  • 版本不一致:package.json 为 0.11.0,而 README 发布按钮指向 v0.10.2 二进制——部署前先确认你跟踪的是哪条线。
  • 包面广:单体仓库涵盖 apps、packages、engines 与 docs,某个 workspace 的破坏性改动可能波及其他部分;turbo 缓存能缓解但无法消除。
  • 工具链敏感:项目锁定 pnpm@10.33.0,许多 devDependencies 使用 catalog: 引用,复现性依赖 pnpm workspace catalog 同步。
  • 1.0 前的成熟度:所有包都在 1.0 以下,API 与场景文件格式(如 demo-controls-settings-chat-websocket.ts)可能随版本变化。

谁适合关注

适合关注

  • 希望拥有一个完全自托管 VTuber/AI 伴侣、且能接受 pnpm 与 TypeScript 的爱好者。
  • 想用真实代码库探索实时语音聊天、Minecraft 集成或电子宠物类硬件舞台的独立开发者。
  • 需要基于 MIT 协议进行二次开发的小团队,LICENSE 文件允许包括修改与再授权在内的广泛使用。
  • 希望仓库具备清晰舞台边界、turbo 编排以及针对音频与视觉包独立 vitest 配置的贡献者。

可以先跳过

  • 需要稳定、semver 锁定的 1.0+ API 的生产部署——AIRI 仍在 1.0 之前。
  • 只想要单一、范围很窄的库,而不是一个多舞台运行时平台的团队。
  • 没有 Node.js/pnpm 工具链,且无法在目标平台上使用 v0.10.2 预编译二进制的用户。
  • 对变更管理要求严格、难以承受快速迭代且包间高度耦合的单体仓库的项目。

风险与注意事项

AIRI 是一个野心十足、迭代活跃的单体仓库,提供预编译二进制与清晰的舞台化架构,但其 1.0 前的版本、广泛的包面与工具链敏感性,要求在生产使用前做谨慎评估。

  • package.json 为 0.11.0,而 README 发布按钮指向 v0.10.2 二进制,采用者需要自行跟踪版本。
  • 单体仓库涵盖大量 workspace(apps、packages、engines、docs、scenarios),升级时跨包破坏的概率较高。
  • 复现性依赖 pnpm@10.33.0 与 catalog: 依赖引用;catalog 偏移可能悄无声息地改变解析版本。
  • stage-pocket(iOS/Android)与 stage-tamagotchi:xwayland 等舞台意味着需要平台相关经验,并非每个团队都具备。
  • LICENSE 为 MIT,署名 Neko Ayaka,2024-PRESENT,允许使用、修改与再授权,唯一条件是保留版权声明。
  • ui-server-auth 是专门的鉴权 workspace,意味着鉴权逻辑被集中隔离,而非散落在各舞台——在把 server-runtime 暴露到公网前应重点审查。
  • 实时语音聊天意味着通过 audio-pipelines-transcribe 进行麦克风采集与转写;部署时需确认转写文本与音频的存储位置。
  • postinstall 会执行 simple-git-hooks 与 pnpm run build:packages,安装时即执行代码——对单体仓库来说很常见,但供应链审查时应留意。
  • README 未显式给出安全策略链接;可通过仓库 issue 与 Discord 报告漏洞。

替代方案比较

方案适用场景代价
Neuro-sama(Vedal987)
想了解 AI VTuber 在规模化下能达到什么水平,但不需要可自托管代码库时。非开源;仅可观察。
开源 LLM VTuber 前端(通用类别)
只需要轻量级浏览器伴侣,且不需要 AIRI 的电子宠物、移动端或 Minecraft 舞台时。各异;通常为 MIT 或 Apache 协议。
托管式 AI 伴侣 SaaS(通用类别)
希望零基础设施,且能接受供应商持有角色与对话数据时。订阅制;数据不自托管。
只需语音输入输出,并想用基础组件自行搭建形象栈时。按用量计费的 API。

这个趋势说明了什么

游戏内嵌的伴侣

README 描述明确提到 Minecraft,server-runtime 舞台正是把伴侣接入游戏服务器的切入点。独立游戏开发者可以把 AIRI 作为底座,而不必从零搭建语音、聊天与形象管线。

通过检查 server-runtime 及仓库中任何 Minecraft 相关场景文件,并结合 README 中的 Minecraft 提及来确认。

电子宠物类硬件外设

stage-tamagotchi(含 xwayland 变体)面向嵌入式类硬件。希望在小型显示屏和触摸输入上运行伴侣的硬件厂商,可以 fork 这个舞台。

运行 pnpm dev:tamagotchi 与 pnpm dev:tamagotchi:xwayland,并阅读 stage-tamagotchi 与 scenarios-stage-tamagotchi-electron 下的包。

跨平台移动伴侣

stage-pocket 提供 dev:pocket:ios 与 dev:pocket:android,为以移动为先的团队提供 TypeScript 起手项目,这在 VTuber 伴侣领域并不常见。

打开 stage-pocket 工作区,并运行 package.json 中列出的 pocket dev 脚本,查看覆盖了哪些移动平台。

下一步建议

先用预编译二进制跑通,再克隆单体仓库

先用最低门槛路径确认 AIRI 能在你的机器上运行,只有在需要定制某个舞台时才进入单体仓库。

  1. 从 README 链接的 GitHub releases 下载 AIRI-0.10.2-windows-x64-setup.exe 或 AIRI-0.10.2-darwin-arm64.dmg。
  2. 或者先访问 airi.moeru.ai,在安装前体验托管实例。
  3. 如需定制,克隆仓库并安装 pnpm@10.33.0。
  4. 执行 pnpm install(postinstall 会构建包),然后 pnpm dev 启动 Web 舞台。
  5. 识别与你部署目标匹配的舞台(web、tamagotchi、pocket、server-runtime),并在写代码前阅读对应 workspace。

RepoDaily 判断

Project AIRI 是 GitHub 上最具野心的自托管 AI 伴侣运行时之一:MIT 协议、基于 pnpm 与 turbo 的 TypeScript 单体仓库,提供桌面预编译二进制,以及 Web、移动端、电子宠物、服务器等多舞台,并配有独立的音频与视觉管线。其广度也是最大风险——1.0 前的版本、广泛的包面与工具链敏感性意味着,你应该针对某个具体舞台而非整个平台来做评估。

信息来源