AI 伴侣的概念正从简单的聊天机器人向具备多模态感知与行动能力的 "数字生命" 演进。传统方案如 Character.ai 或 SillyTavern 主要聚焦于文本对话与角色扮演,而虚拟主播 Neuro-sama 展示了更丰富的可能性 —— 实时语音交互、游戏游玩、与观众动态互动。然而这类系统通常闭源且依赖云端服务,用户无法在离线后继续使用。
AIRI 项目提供了一种自托管的替代方案,让用户能够完全拥有并运行自己的 AI 伴侣。该项目不仅支持实时语音聊天,还实现了与 Minecraft、Factorio 等游戏环境的深度集成,同时覆盖 Web、桌面(macOS/Windows)和移动端多平台。本文将解析其技术架构的核心设计,为构建类似系统提供可落地的参考。
混合技术栈:Web 标准与原生加速的平衡
AIRI 的架构选择体现了对跨平台兼容性与性能之间张力的深思熟虑。项目从第一天起就基于 Web 技术构建,充分利用 WebGPU 进行 GPU 加速计算、WebAudio 处理音频流、Web Workers 实现并行处理、WebAssembly 运行高性能模块,以及 WebSocket 维持实时连接。
这种全 Web 技术栈的选择带来了显著优势:代码可在现代浏览器中直接运行,无需安装即可体验核心功能;PWA(渐进式 Web 应用)模式让移动端部署变得轻量;统一的代码库降低了多平台维护成本。
然而纯 Web 方案在计算密集型任务上存在瓶颈。为此,桌面版本(基于 Electron)引入了原生加速能力:通过 HuggingFace Candle 框架,桌面端默认支持 NVIDIA CUDA 和 Apple Metal 后端,无需复杂的依赖管理即可在本地运行 LLM 推理。图形渲染、布局动画等仍由 Web 技术处理,而计算密集型任务则下沉到原生层,形成 "Web 外壳 + 原生核心" 的混合架构。
实时语音交互:端到端流水线设计
实时语音是 AI 伴侣 "活" 起来的关键。AIRI 实现了一套完整的语音交互流水线,涵盖语音活动检测(VAD)、语音识别(STT)、大语言模型推理和语音合成(TTS)四个环节。
在输入侧,系统支持浏览器音频输入和 Discord 语音频道接入,客户端集成说话检测(Talking Detection)和语音识别能力。项目采用 unspeech 作为通用端点代理,为 /audio/transcriptions 和 /audio/speech 提供统一接口,类似于 LiteLLM 但专注于语音模型。这种设计允许用户灵活切换不同的 ASR(自动语音识别)和 TTS 提供商,而不需要修改核心代码。
输出侧目前主要集成 ElevenLabs 的语音合成服务。值得注意的是,整个语音流水线可以在浏览器内完成:借助 Transformers.js 和 WebGPU,系统支持纯浏览器端的本地推理,这意味着用户可以在不依赖外部 API 的情况下实现离线语音交互。
对于开发者而言,构建类似系统时需要关注的关键参数包括:VAD 的触发阈值(影响响应灵敏度)、STT 的流式分块大小(影响延迟与准确率的平衡)、TTS 的预加载策略(减少首包延迟)。
游戏环境集成:从观察者到参与者
与游戏环境的集成是 AIRI 区别于一般聊天机器人的核心能力。项目实现了多个游戏代理,让 AI 伴侣能够真正 "玩" 游戏而非仅进行文本描述。
Minecraft 集成 基于 Mineflayer 框架,这是一个成熟的 Node.js Minecraft 客户端库。AIRI 通过 Mineflayer 与 Minecraft 服务器建立连接,使 AI 能够感知游戏世界状态(玩家位置、背包物品、周围环境),并执行移动、放置方块、与实体交互等操作。这种集成让 AI 可以作为虚拟玩家加入多人服务器,与人类玩家协作或竞争。
Factorio 集成 则采用了不同的技术路径。由于 Factorio 是闭源商业游戏,项目通过 RCON(远程控制台)协议与 Factorio 服务器通信。团队开发了专门的 factorio-rcon-api 作为 RESTful API 包装器,以及 autorio 自动化库,使 AI 能够读取游戏状态并发送控制指令。这种方案虽然不如 Minecraft 集成那样灵活,但证明了即使是闭源游戏,通过合适的代理层也能实现 AI 控制。
对于希望扩展游戏集成的开发者,关键的技术要点包括:游戏是否提供可编程接口(API、RCON、内存读取等)、状态观测的粒度(像素级 vs 结构化数据)、动作执行的延迟要求(实时动作游戏 vs 回合制策略游戏)。AIRI 目前的实现更适合状态可观测、动作可编程的游戏类型。
记忆系统与长期状态管理
一个 "有生命感" 的 AI 伴侣需要记住与用户的互动历史。AIRI 在记忆系统上采用了分层设计:短期对话上下文由 LLM 的上下文窗口直接承载;长期记忆则通过嵌入式数据库实现。
项目支持纯浏览器内的数据库方案,包括 DuckDB WASM 和 pglite(PostgreSQL 的 WASM 版本)。这种设计让数据完全保留在用户本地,符合自托管的隐私理念。正在开发的 Memory Alaya 模块将进一步提供语义检索和记忆整理能力,类似于为 AI 伴侣构建 "长期记忆宫殿"。
对于生产部署,项目也提供了 @proj-airi/memory-pgvector 驱动,支持使用 PostgreSQL + pgvector 作为后端向量数据库,适合需要处理大规模记忆数据的场景。
多平台部署与自托管实践
AIRI 提供了三种主要的运行形态:Stage Web(浏览器版本)、Stage Tamagotchi(桌面版本)和 Stage Pocket(移动版本)。
桌面版本支持 Windows(x64)、macOS(ARM64)和 Linux,可通过安装包或 Scoop 包管理器安装。对于 NixOS 用户,项目提供了 Flake 定义,解决了 Electron 依赖库路径问题。
在模型支持方面,AIRI 通过 xsAI 框架兼容 30 余种 LLM 提供商,包括 OpenAI、Anthropic Claude、DeepSeek、Google Gemini、本地 Ollama/vLLM 等。用户可以根据延迟、成本和隐私需求灵活选择后端。
自托管部署时需要考虑的资源配置包括:语音推理建议具备 GPU 加速(WebGPU 或 CUDA/Metal);游戏代理需要额外的网络端口配置用于与游戏服务器通信;桌面版本约需 200MB 磁盘空间,浏览器版本则取决于缓存策略。
局限与展望
作为早期阶段项目,AIRI 的部分功能仍处于开发中。Factorio 和 Helldivers 2 的集成标记为 WIP,Memory Alaya 记忆系统尚未完成。游戏代理的实现高度依赖特定游戏的可编程接口,对于没有官方 API 的游戏,集成难度会显著增加。
尽管如此,AIRI 展示了自托管 AI 伴侣的技术可行性:通过 Web 标准实现跨平台覆盖,通过模块化设计支持灵活的后端切换,通过游戏代理扩展 AI 的行动空间。对于希望拥有完全可控 AI 伴侣的开发者和技术爱好者,这是一个值得关注的开源方案。
资料来源
- AIRI GitHub 仓库:项目主页与架构文档
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。