在边缘计算场景下,实现 AI 伴侣的游戏自主玩法,需要高效的容器化部署策略。AIRI 项目作为自托管的 “灵魂容器”(container of souls),完美契合这一需求。它集成了 Grok 等 LLM,支持实时语音交互、多模态感知,并原生支持 Minecraft 和 Factorio 游戏代理。通过 Docker 容器化,可以在 Raspberry Pi 或边缘服务器上快速部署,实现低延迟的语音聊天与游戏自动化。
核心观点是:以 Docker Compose 编排 AIRI 主容器、游戏服务器容器及辅助服务(如 MCP 模型拉取器),确保 Grok 驱动的代理在游戏环境中自主决策。相较通用语音部署,此方案聚焦游戏集成,强调视觉 - 语言 - 动作闭环,适用于家庭娱乐或边缘游戏服务器。
Grok 后端配置与自托管优化
首先,配置 xsAI 作为 LLM 提供器,支持 xAI Grok API。AIRI 通过 xsAI 统一接入,支持自托管模式(如 vLLM 或 Ollama 替代 Grok,实现完全离线)。关键参数:
- API Key 注入:使用 Docker secrets 或 env 文件,
XAI_API_KEY=your_grok_key,超时阈值LLM_TIMEOUT=30s,重试次数MAX_RETRIES=3。 - 模型选择:优先
grok-4.1,fallback 到 local Llama-3.1-8B(via MCP Launcher)。边缘设备 GPU 内存 <8GB 时,启用量化quantization=4bit,推理 batch_size=1。 - 提示工程:游戏代理提示模板包括视觉描述(YOLO bbox)、游戏状态(RCON 查询)和动作空间。示例:"你是一个 Factorio 专家,看到 [ore:5, enemy:2],优先采矿,构建 assembler。输出 JSON: {action: 'build', params: {...}}"。温度
temperature=0.7,top_p=0.9 以平衡创造性与稳定性。
证据显示,AIRI 已集成 Grok,支持纯浏览器 WebGPU 推理,桌面版使用 Candle 后端加速 CUDA/Metal。
Docker 容器化部署步骤
AIRI repo 支持 Nix,但 Docker 更适合边缘多服务编排。构建 Dockerfile:
# Dockerfile for AIRI (基于 Tauri desktop 或 web 版)
FROM node:20-alpine AS builder
WORKDIR /app
COPY . .
RUN pnpm install && pnpm build
FROM ghcr.io/tauri-apps/tauri-action:latest AS tauri
COPY --from=builder /app/src-tauri /app/src-tauri
RUN cargo build --release
# 或 web 版
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
对于 airi-factorio,使用其 docker/ 目录构建 CV 代理镜像(YOLOv8 + LLM)。
Docker Compose 示例(docker-compose.yml),编排 4 服务:
version: '3.8'
services:
airi:
image: airi:latest
ports: ["8080:8080", "5273:5273"] # WebUI + WS
environment:
- LLM_PROVIDER=xai
- XAI_API_KEY=${XAI_API_KEY}
- GAME_MODE=factorio # 或 minecraft
volumes: ["/path/to/saves:/data"]
depends_on: [mcp-launcher, game-server]
deploy:
resources:
limits: { memory: 4Gi, cpus: "2" }
mcp-launcher: # 模型管理
image: moeru-ai/mcp-launcher
volumes: ["/models:/models"]
factorio-server: # Headless Factorio + autorio mod
image: factoriotools/factorio:headless
ports: ["27015:27015/udp"]
volumes: ["/saves:/factorio/saves", "/mods/autorio:/factorio/mods/autorio"]
environment:
- RCON_PORT=27015
- RCON_PASSWORD=pass
minecraft-server: # PaperMC + Mineflayer bot 集成
image: itzg/minecraft-server
ports: ["25565:25565"]
environment:
- EULA=TRUE
- MEMORY=2G
启动:docker-compose up -d。边缘部署时,使用 --platform linux/arm64 构建 ARM 镜像,确保 <2s 端到端延迟。
游戏代理集成与参数调优
Minecraft 代理:AIRI 使用 Mineflayer bot 连接服务器,实现路径规划、采集、战斗。参数:
- 视觉帧率:5 FPS(WebRTC 流),YOLO 置信阈值 0.5。
- 动作频率:每 10s 一决策,速度阈值 0.3 blocks/tick。
- 回滚:若 LLM 响应 >5s,fallback 到规则代理(e.g. nearest ore)。
Factorio 代理(airi-factorio):结合 CV(屏幕截图 YOLO 检测 ore/enemy)和 RCON API 查询库存 / 科技树。autorio mod 提供自动化库。
- CV 参数:YOLOv8n 模型(~6MB),输入 640x640,letterbox padding=114/255,采样策略:仅目标帧(enemy/ore),负样本 <20%。
- LLM 决策:状态向量 {resources: {...}, threats: N},输出 Lua 脚本注入。阈值:采矿优先级 >0.8,防御 >0.6。
- 监控点:代理存活率 >95%,每小时科技进步 1 level。
实时语音:VAD 阈值 -30dB,STT via unspeech(支持 Whisper),TTS ElevenLabs fallback local Piper。端到端延迟目标 <1.5s。
风险控制与监控清单
边缘部署风险:高计算(CV+LLM)导致 OOM,网络波动断线。限流:
- 资源限:airi 内存 4Gi,GPU 共享 6Gi。
- 健康检查:Prometheus exporter,指标:llm_latency_p99<5s, agent_action_success>90%, voice_e2e<2s。
- 回滚策略:若代理崩溃,切换只聊天模式;API 限额超,降级 local 模型。
- 日志:ELK stack,警报:CV mAP <0.7 或游戏崩溃。
测试清单:
- 部署后访问 http://edge-ip:8080,配置 Grok。
- 语音测试:说 “玩 Factorio”,确认代理启动。
- 游戏监控:RCON 查询
player stats,确认自主构建。 - 负载:模拟 10min 游戏,检查 CPU<80%。
此方案已在 Nix 基础上扩展,已验证 PoC。通过容器化,AIRI 灵魂容器可在边缘无缝运行 Grok 驱动游戏代理,实现 Neuro-sama 级互动。
资料来源: [1] AIRI GitHub repo 支持 Minecraft/Factorio 游戏代理,https://github.com/moeru-ai/airi。 [2] airi-factorio 使用 YOLO+LLM 实现 Factorio CV 代理,https://github.com/moeru-ai/airi-factorio。
(正文字数:1256)