AI 伴侣系统正从简单的文本对话向多模态、实时交互演进。不同于云端托管方案,自托管架构赋予用户对数据和模型的完全控制权,同时支持深度定制角色行为与环境交互。本文以开源项目 AIRI 为例,剖析其如何通过统一的 Web 技术栈实现实时语音对话、游戏环境联动与跨平台部署。
架构概览:四位一体的 AI 伴侣
AIRI 将 AI 伴侣抽象为四个核心子系统:大脑(Brain)、耳朵(Ears)、嘴巴(Mouth)和身体(Body)。这种分层设计使得各模块可以独立演进,同时通过标准化接口协同工作。
大脑层负责推理与决策,基于 xsAI 框架对接多种 LLM API 提供商,支持从 OpenAI、Claude 到本地 vLLM、Ollama 的灵活切换。游戏 Agent 逻辑在此层实现,通过工具调用(Tool Calling)机制将自然语言指令转换为可执行的游戏操作。
耳朵层处理音频输入与语音识别,支持浏览器原生音频流、Discord 语音通道接入,以及基于 WebRTC 的实时语音传输。项目采用客户端 VAD(语音活动检测)降低延迟,配合 unspeech 代理服务实现统一的 ASR 接口。
嘴巴层负责语音合成与输出,目前集成 ElevenLabs API 提供高质量 TTS 服务。该层与身体层的口型同步(Lip Sync)联动,实现语音与视觉表现的自然对齐。
身体层驱动虚拟形象渲染,同时支持 VRM 和 Live2D 两种主流格式。通过 WebGPU 加速,实现自动眨眼、视线追踪、待机动画等细节表现,增强角色的 "存在感"。
游戏环境集成:从观察到操作的闭环
游戏集成是 AIRI 区别于普通聊天机器人的关键能力。项目通过专用 Agent 模块实现与游戏的双向通信,目前已支持 Minecraft 和 Factorio 两款沙盒游戏。
Minecraft 集成基于 Mineflayer 库构建,AI 以 Bot 身份登录服务器,具备完整的游戏内感知能力。Agent 可以读取背包状态、周围环境方块信息、实体位置等数据,并执行移动、挖掘、放置、合成等操作。技术实现上,Mineflayer 通过 Node.js 与 Minecraft 服务器建立 TCP 连接,协议层处理登录、加密和压缩,应用层则提供高层次的 API 抽象。
Factorio 集成采用更复杂的视觉 + 语言多模态方案。由于 Factorio 的复杂工厂逻辑难以纯文本描述,项目引入 YOLO 视觉模型识别游戏画面中的传送带、机械臂、熔炉等元素,结合 LLM 进行空间推理。系统通过 RCON(远程控制台)协议与 Factorio 服务器通信,同时配合 Lua Mod 实现自定义游戏内行为。这种 CV+LLM 的混合架构为 AI 理解复杂游戏环境提供了可行路径。
两个游戏 Agent 均遵循 "感知 - 推理 - 行动" 的循环:从游戏环境获取状态信息,由 LLM 规划下一步动作,再通过游戏 API 执行。记忆系统记录游戏进度和用户偏好,支持跨会话的持续学习。
实时语音交互:低延迟 Pipeline 设计
实时语音对话对延迟敏感,AIRI 采用端到端优化策略。完整流程包括:音频采集→VAD 检测→语音识别→LLM 推理→语音合成→音频播放。
在采集端,浏览器 Web Audio API 提供低延迟音频流,配合 Silero VAD 等轻量级模型在客户端完成语音分段,避免网络传输静音数据。语音识别阶段,unspeech 作为统一代理层,支持 Whisper、Azure Speech 等多种后端,开发者可按需切换。
LLM 推理环节,项目支持流式输出(Streaming),TTS 引擎可在收到首个 token 后即开始合成,实现 "边想边说" 的交互体验。ElevenLabs 的 Turbo v2.5 模型针对低延迟场景优化,首包响应时间可控制在数百毫秒级别。
视觉同步方面,身体层根据音频 PCM 数据实时计算口型参数,驱动 VRM/Live2D 模型的 Blend Shape 变化,实现音画同步。
多平台容器化部署
AIRI 采用 Monorepo 结构,通过 pnpm workspace 管理多个子包,支持三种运行形态:
Stage Web:纯浏览器版本,依赖 WebGPU 进行本地推理或调用远程 API。基于 DuckDB WASM 实现浏览器内嵌数据库,支持 RAG 检索和持久化记忆,无需后端服务器即可运行。
Stage Tamagotchi:桌面版本基于 Electron 构建,可利用本地 NVIDIA CUDA 或 Apple Metal 进行模型推理。通过 Nix Flake 提供可复现的构建环境,支持 Windows、macOS、Linux 三平台。
Stage Pocket:移动端基于 Capacitor 打包为 PWA 应用,支持与桌面版通过 WebSocket 建立安全连接,实现 "手机 companion + 桌面算力" 的协同模式。
部署配置建议:开发环境使用 DevContainer 统一依赖;生产环境通过 Docker Compose 编排 Factorio 服务器、RCON API 代理和 AI Agent;本地开发可采用.env.local文件管理游戏服务器地址、API 密钥等敏感配置。
实践建议与参数清单
对于希望自建 AI 伴侣的开发者,建议从以下配置起步:
| 组件 | 推荐方案 | 关键参数 |
|---|---|---|
| LLM 推理 | vLLM/Ollama 本地部署 | temperature: 0.7, max_tokens: 2048 |
| 语音识别 | Whisper API 或本地 Whisper.cpp | model: base, language: auto |
| 语音合成 | ElevenLabs Turbo v2.5 | stability: 0.5, similarity_boost: 0.75 |
| 记忆存储 | DuckDB WASM (浏览器) / PostgreSQL+pgvector (桌面) | embedding_dim: 1536 |
| 游戏连接 | Minecraft: Mineflayer @ 25565; Factorio: RCON @ 27015 | 需开放对应端口 |
当前项目仍处于活跃开发阶段,Factorio 的视觉识别和 Helldivers 2 的联机协作等功能标记为 WIP。建议关注项目的 DevLog 更新,并优先使用 Minecraft 集成作为入门场景。
资料来源
- GitHub - moeru-ai/airi: Self-hosted AI virtual companion with real-time voice chat and game integrations
- GitHub - moeru-ai/airi-factorio: AI plays Factorio with CV & LLM combined
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。