每日一个开源项目(第169篇):AIRI - 开源自托管 AI 虚拟伴侣,能打 Minecraft 的 Neuro-sama 复现

引言

"一个灵魂的容器------AI 老婆和赛博生命,把她们带进我们的世界。"

这是"每日一个开源项目"系列的第169篇文章 。今天的主角是 AIRI------一个以 Neuro-sama 为目标的开源、自托管 AI 虚拟伴侣系统。

Neuro-sama 是什么?她是 Vedal 开发的 AI VTuber,能在 Twitch 直播时和观众实时交流、玩 Minecraft、玩 Among Us,积累了数十万粉丝,被认为是迄今为止最成功的 AI 虚拟主播。

AIRI 的目标是:用完全开源的方式复现这件事,而且让每个人都能在自己的设备上运行一个这样的存在。

技术上,AIRI 是一个构建相当精心的系统:Web 优先架构基于 Vue.js + TypeScript,浏览器内通过 WebGPU 跑本地推理,Live2D 和 VRM 虚拟形象,多提供商语音流水线,以及真正能在 Minecraft 里做事的游戏代理。44.8k Stars,项目还孵化出了 xsai、unspeech 等独立子项目。

你将学到什么

  • AIRI 的 Web 优先架构:为什么选择 Vue.js + WebGPU 而非 Python + Electron
  • 实时语音流水线:VAD → STT → LLM → TTS 四段处理链
  • Minecraft 游戏代理的工作原理(Mineflayer + 视觉 + 决策)
  • Live2D 和 VRM 虚拟形象的驱动层设计
  • 内存系统:DuckDB WASM + pgvector 在浏览器里跑向量检索
  • 孵化子项目:xsai 轻量 AI SDK、unspeech 语音代理

前置知识

  • 了解 AI 助手和虚拟形象的基本概念
  • 有 Vue.js 或前端开发经验者更容易理解架构
  • 看过 Neuro-sama 直播会更有上下文

项目背景

什么是 Neuro-sama

Neuro-sama(由 Vedal987 开发)是一位 AI VTuber,2022 年开始在 Twitch 直播,能实时和弹幕互动,玩 Minecraft、奥丁神殿、Among Us 等游戏,表现出人格化的情绪和反应。她不是一个播放预录内容的虚拟形象,而是一个真正在实时推理、实时决策的 AI 系统。

AIRI 的出发点:复现这种能力,用开源方式,让每个人都能在自己的环境里拥有类似的存在。

作者/团队介绍

  • 组织: moeru-ai(自发形成的开源社区)
  • License: MIT
  • 技术栈: Vue.js + TypeScript,pnpm Monorepo,Turborepo

项目数据

  • ⭐ GitHub Stars: 44,800+
  • 🍴 Forks: 4,500+
  • 📦 平台: Web(PWA)、macOS、Windows、Linux、iOS
  • 📄 License: MIT

系统架构

Web 优先,不是 Python 优先

大多数 AI 项目选择 Python 作为运行时,AIRI 选择了 Web 平台:

javascript 复制代码
传统 AI 项目路径:
Python 脚本 → 本地服务器 → WebSocket → 前端展示
问题:Python 环境配置、依赖冲突、跨平台部署复杂

AIRI 的路径:
Vue.js + TypeScript → 浏览器原生运行
WebGPU → 本地推理(无需 Python 环境)
WebAudio → 语音处理
WebAssembly → 高性能计算
Web Workers → 并行处理,不阻塞 UI

这个选择的代价是放弃了 Python 生态的成熟 AI 工具链;收益是任何有现代浏览器的设备都能运行,包括手机。

Monorepo 结构

markdown 复制代码
airi/
├── apps/
│   ├── stage-web/          ← Web PWA 主应用
│   ├── stage-tamagotchi/   ← 桌面版(Electron,像电子宠物悬浮)
│   └── stage-pocket/       ← 移动端
├── core/
│   ├── brain/              ← 大脑:LLM 路由、记忆协调
│   ├── stt-tts/            ← 语音流水线
│   └── server-runtime/     ← 游戏代理调度
├── packages/
│   ├── stage-ui/           ← Live2D/VRM 渲染层
│   └── duckdb-wasm/        ← 浏览器内数据库驱动
└── services/
    ├── minecraft/          ← Minecraft 代理(Mineflayer)
    └── factorio/           ← Factorio 代理(RCON API)

核心功能

实时语音流水线

语音对话是 VTuber 系统最核心的能力,AIRI 的流水线分四段:

markdown 复制代码
用户说话
    ↓
VAD(语音活动检测)
    识别说话开始/结束,不需要手动按键
    ↓
STT(语音转文字)
    通过 unspeech 代理路由到各提供商
    支持:Whisper(本地)、OpenAI、Azure Speech 等
    ↓
LLM 处理(Brain 模块)
    通过 xsai 路由到 30+ 提供商
    Claude、GPT、Gemini、DeepSeek、Ollama...
    带记忆注入(DuckDB + pgvector)
    ↓
TTS(文字转语音)
    ElevenLabs、Azure Speech、OpenAI、Kokoro(本地)
    输出音频 + 口型同步数据
    ↓
Live2D/VRM 形象渲染
    嘴型同步、眼动、表情驱动

Kokoro TTS 是本地语音选项------不需要 API Key,离线运行,效果在开源 TTS 里算有竞争力的。

Live2D 和 VRM 虚拟形象

@proj-airi/stage-ui 处理形象渲染:

  • 自动眨眼:随机间隔,避免"死鱼眼"感
  • 视线追踪:眼睛跟随鼠标/话题中心移动
  • 闲置动画:角色在没有说话时有自然的微小动作
  • 口型同步:根据 TTS 输出的音素数据驱动嘴型
  • 表情系统:LLM 输出带情绪标签,驱动对应的表情变化

两种格式都支持:Live2D(.moc3 格式,2D 骨骼动画)和 VRM(3D 虚拟形象标准格式)。

WebGPU 本地推理

浏览器版通过 WebGPU 在本机跑推理,桌面版使用 HuggingFace Candle 库直接调用 NVIDIA CUDA 或 Apple Metal:

复制代码
浏览器版:
WebGPU API → 调用 GPU 计算单元
不需要安装任何本地 AI 框架
支持:Chrome 113+(实验功能),Edge,Safari(实验中)

桌面版(Electron):
HuggingFace Candle(Rust)→ CUDA / Apple Metal
性能接近原生 Python 框架
无需配置 CUDA 工具链,二进制直接包含

游戏代理

Minecraft(已上线)

markdown 复制代码
AIRI 连接 Minecraft 服务器(Mineflayer 库)
    ↓
视觉输入:截图 → 多模态 LLM 分析
(判断当前状态:在挖矿?遇到怪物?材料不够?)
    ↓
动作输出:移动、挖掘、建造、交互
    ↓
语言输出:实时用语音向观众解释在做什么

AIRI 在 Minecraft 里不只是按预设脚本行动------LLM 根据当前游戏状态决策下一步,并向观众解释自己的想法。

Factorio(PoC 阶段)

通过 RCON API 控制 Factorio,配合 autorio 模组库,代理可以读取工厂状态、下发指令。Factorio 的复杂工厂自动化对 AI 规划能力是更大的挑战。


孵化的子项目

xsai:轻量 AI SDK

AIRI 开发过程中发现 Vercel AI SDK 太重,自己做了一个轻量替代:

typescript 复制代码
import { createOpenAI } from 'xsai'

const openai = createOpenAI({ apiKey: 'sk-...' })

const result = await openai.chat.completions.create({
  model: 'gpt-4o',
  messages: [{ role: 'user', content: 'Hello' }]
})

支持所有兼容 OpenAI API 的提供商,包括 Claude、Gemini、DeepSeek、Ollama 本地模型等。

unspeech:语音 API 统一代理

不同语音服务的 API 格式不统一,unspeech 提供统一的 /audio/transcriptions/audio/speech 端点:

bash 复制代码
# 启动 unspeech 代理
npx unspeech

# 向任意提供商发请求,格式统一
curl -X POST http://localhost:3000/audio/transcriptions \
  -H "X-Provider: openai" \
  -F "file=@audio.mp3"

后端可以切换 OpenAI Whisper、Azure Speech、本地 Whisper,前端不需要改代码。


记忆系统

这部分还在开发中,但架构已经确定:

sql 复制代码
会话中的对话内容
        ↓
DuckDB WASM(浏览器内 SQL 数据库)
pglite(轻量级 PostgreSQL,纯浏览器运行)
        ↓
@proj-airi/memory-pgvector(向量相似度检索)
        ↓
Memory Alaya(记忆检索层,WIP)
        ↓
检索相关历史记忆注入 LLM 上下文

全部在浏览器内运行,没有外部数据库依赖,数据留在本地。


快速开始

安装

bash 复制代码
# Windows(winget)
winget install MoeruAI.AIRI

# macOS(Homebrew)
brew install --cask airi

# 源码开发
git clone https://github.com/moeru-ai/airi.git
cd airi
pnpm install
pnpm dev

基本配置

bash 复制代码
# 配置 LLM 提供商(选一个)
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
# 或使用 Ollama 本地模型,不需要 API Key

# 配置 TTS(或使用本地 Kokoro,不需要 API Key)
ELEVENLABS_API_KEY=...

访问 http://localhost:5173 打开 Web 界面,选择形象、配置 LLM,开始对话。


与现有方案的对比

维度 AIRI Character.ai 商业 VTuber 工具
开源 ✅ MIT
自托管 部分
数据隐私 全本地可选 上传到服务器 不确定
游戏能力 ✅ Minecraft/Factorio 极少
本地推理 ✅ WebGPU/CUDA 部分
自定义形象 Live2D + VRM 有限

项目地址与资源


总结

AIRI 做的事情可以一句话概括:把 Neuro-sama 的能力开源出来,让每个人都可以在自己的设备上运行。

技术上有几个值得关注的设计决策:

Web 优先架构是一个反直觉的选择。大多数 AI 项目默认 Python,但 AIRI 押注 Web 标准(WebGPU、WebAudio、WebAssembly)------代价是初期工具链不成熟,收益是跨平台一致性和零安装门槛。WebGPU 在 2025-2026 年逐渐成熟,这个赌注开始兑现。

游戏代理把 AI 伴侣从"聊天系统"变成了"能做事的系统"。Minecraft 代理不只是回答"你在干什么",而是真正在游戏里行动、同时向观众解释。这个方向在技术和产品层面都比单纯聊天更有意思。

孵化子项目说明项目有真实的工程积累:xsai 和 unspeech 都是从实际需求中长出来的,而不是为了生态而生态。

44.8k Stars、MIT 协议、活跃的社区------AIRI 是目前开源 AI 伴侣赛道里构建最认真的项目之一。


探索 PrimeSkills ------ 精选 AI Agent 与技能的市场,每一个都经过真实企业工作流验证,去掉浮夸,留下真正有用的。

欢迎访问我的个人主页,发现更多有价值的见解和有趣的产品。

相关推荐
MartinYeung51 小时前
[论文学习]自主性如何重塑个性化对LLM智能体隐私关切与信任的影响
人工智能·学习
LDZKKJ1 小时前
OpenAI模型“越狱“入侵Hugging Face——AI安全史上的至暗时刻
网络·人工智能·安全
鬓戈1 小时前
Hermes Agent执行流程
人工智能
工具派2 小时前
从接口文档到测试用例:我用在线 AI 工具跑通了一条生成链路(实操记录)
人工智能·测试用例
颜酱2 小时前
07 | 把字段与指标同步到 Qdrant(生成阶段)
前端·人工智能·后端
睿拓时创2 小时前
数字图像相关(DIC)领域:VIC-3D 11.4上线多款全新功能
人工智能
zzq77972 小时前
别把大模型 API Key 写进 APK:移动 AI 应用接口防盗刷实践
android·人工智能·安全·app加固·御盾安全·安卓加固
机器之心2 小时前
Kimi K3竟是GPT-2的22580倍,博主「肝」48小时发现:七年进化大模型不只是参数暴涨
人工智能·openai
Larcher3 小时前
从状态快照到惰性初始化:读懂 React useState 的三个关键场景
javascript·人工智能·后端