El CHUWI AuBox Ai365: mi laboratorio de IA doméstico en una caja

Categoría
IA y LLM Local
Publicado
1 agosto 2026
Actualizado
1 agosto 2026
Por
Jacob Lloyd — escrito con ayuda de IA, después del proyecto
Tiempo de lectura
19 min de lectura

En palabras simples: Esta es la pequeña computadora que corre mis ayudantes de IA, mis sitios web y mi red doméstica. Tiene un chip AMD rápido, 30 GB de memoria y dos puertos de red, y reemplazó a una tablet cara que falló. Todo funciona en Linux sin tener que buscar controladores. Enumero exactamente qué corre, qué cuesta, qué perdí al pasar de la máquina anterior, y actualizo esta página cada semana.

El CHUWI AuBox Ai365 es un mini PC del que casi nadie ha oído hablar, de una marca conocida sobre todo por tablets baratas, construido alrededor de un chip que normalmente vive en laptops. Está detrás de mi monitor, consume menos energía en el chip que un cargador de teléfono, y corre ocho agentes de IA con nombre propio, una app de chat familiar, un servicio de clasificación de correo y todos los sitios web que mantengo. Ha sido la pieza de hardware más aburrida que he tenido en años, y después de la máquina que reemplazó, aburrida es exactamente el punto.

tl;dr

  • Qué es: un CHUWI AuBox Ai365 — AMD Ryzen AI 9 365, Radeon 880M, 30 GB de DDR5 utilizables, doble 2.5GbE, 2× USB4 — corriendo Bluefin, un escritorio Fedora atómico.
  • Qué corre: mi pila de OpenClaw de ocho agentes, una app de chat autoalojada que usa toda la casa, un servidor de modelos local, clasificación de correo, y la compilación de este sitio.
  • Soporte en Linux: todo funciona dentro del kernel. Sin controladores de terceros, sin DKMS, sin trucos de HSA_OVERRIDE. Hasta la NPU se enumera.
  • Qué costó: unos $900 por la caja, aproximadamente $24 al mes en créditos de API y unos cuantos dólares de electricidad.
  • Qué reemplazó: un ROG Flow Z13 que desarrolló una falla de alimentación. Esta caja tiene una cuarta parte de la memoria de aquella máquina — y el SSD de la máquina vieja ahora está atornillado dentro de esta, guardando las copias de seguridad.
  • Documento vivo: el registro semanal al final se actualiza cada semana con lo que cambió, lo que se rompió y lo que se arregló.

Especificaciones completas

ComponenteEspecificación
ModeloCHUWI AuBox Ai365 (BIOS AuBox_06)
CPUAMD Ryzen AI 9 365 "Strix Point" — 10 núcleos / 20 hilos (4× Zen 5 + 6× Zen 5c), hasta 5.0 GHz, 24 MB de L3, 4 nm
GPUAMD Radeon 880M — RDNA 3.5, 12 unidades de cómputo, hasta 2.9 GHz
NPUAMD XDNA 2 — 50 TOPS (73 TOPS en total de la plataforma)
RAM2× 16 GB DDR5-5600 SODIMM, doble canal — 30 GB utilizables, expandible a 96 GB
Ancho de banda de memoria~90 GB/s sobre un bus de 128 bits
Almacenamiento1 TB NVMe PCIe 4.0, 2× ranuras M.2 2280 (ambas ocupadas ahora)
Ethernet2× Realtek RTL8125 2.5GbE
Conectividad inalámbricaRealtek RTL8851BE — Wi-Fi 6 (802.11ax), Bluetooth 5.3
USB2× USB4 40 Gbps (modo alterno DP, 100 W PD de entrada), 3× USB 3.2 Gen 2 Type-A
VideoHDMI 2.1, DisplayPort 1.4, más ambos USB4 — hasta 4 pantallas, 8K60 / 4K144
SOBluefin 44 (20260721) — Fedora Silverblue atómico, GNOME 50.3 sobre Wayland, Linux 7.0.12
AlimentaciónAdaptador cilíndrico de 19 V / 6.32 A, 120 W
Físico140 × 139 × 55 mm, 846 g, todo metal, un solo ventilador — montable en VESA
Precio$899 de lista; pagué unos $900

Por qué esta caja

Mi laboratorio doméstico anterior era un ROG Flow Z13 — una tablet gaming con 128 GB de memoria unificada. En julio de 2026 desarrolló una falla de alimentación: enciende, se cuelga en el logo, y se pone en reposo unos treinta segundos después, cada vez. La autopsia completa está aquí. La versión corta es que nunca llega a un bootloader, así que nada que yo pudiera hacer desde software le iba a servir de algo.

Eso me dio una lista de compras bastante específica. Necesitaba un host Linux con al menos 32 GB de RAM, suficiente GPU para trabajo de visión local, red cableada, y — después de ver a una máquina alimentada por batería fallar en la gestión de energía — sin batería y sin negociación USB-PD en la ruta crítica. Un conector cilíndrico y un ventilador.

Lo inusual de esta caja es que es un escritorio Strix Point. El Ryzen AI 9 365 es un chip de laptop; vive en ThinkPads y OmniBooks y, hasta hace poco, en la tablet que acabo de perder. Ponerlo en un cubo de metal de 140 mm con dos puertos 2.5GbE y dos puertos USB4 es el tipo de decisión que solo pasa cuando un fabricante más pequeño construye algo un poco raro. Esa rareza es exactamente lo que quiere un home lab: eficiencia de laptop, entrega de energía de escritorio, redes de servidor.

Linux en este hardware

Esta es la parte que esperaba que fuera dolorosa y no lo fue. Cada dispositivo de la caja está soportado por un controlador integrado en un kernel de Fedora sin modificar. No hay ningún repositorio de terceros, ningún módulo DKMS, y ninguna variable de entorno de anulación de GPU en ninguna parte de mi configuración.

DispositivoControladorEstado en Linux 7.0.12
Radeon 880M (gfx1150)amdgpuFunciona. Se reporta como strix1, no necesita anulación.
2× RTL8125 2.5GbEr8169Ambos detectados y funcionando, sin parámetros de módulo.
Wi-Fi RTL8851BErtw89_8851beEn mainline desde 6.5. Funciona — pero mira la advertencia de abajo.
NPU XDNA 2amdxdnaIntegrado desde 6.14. Se enumera como /dev/accel/accel0.
USB4thunderboltFunciona.

Vale la pena decir con claridad la advertencia del Wi-Fi, porque el propio marketing de CHUWI es vago al respecto y una ficha técnica que encontré lo llama Wi-Fi 7. No lo es. El RTL8851BE es una pieza Wi-Fi 6, de un solo flujo, sin 2×2, sin 6 GHz — se identifica como un controlador 802.11ax y entrega en la práctica unos 300–400 Mbps. Es, sin lugar a dudas, el componente más débil de la máquina. También es una tarjeta M.2 2230 con llave A/E, así que se puede cambiar por una MediaTek MT7925 si quieres Wi-Fi 7. No me he molestado: esta caja vive en 2.5GbE cableado, y la interfaz Wi-Fi simplemente está apagada.

Bluefin, en concreto

Elegí Bluefin en vez de Bazzite aquí deliberadamente. Misma base ublue — rpm-ostree basado en imágenes, Flatpak primero, revertir una mala actualización con un solo reinicio — pero Bluefin sigue el kernel de Fedora sin modificar en vez de un kernel de gaming parcheado. En una máquina cuyo hardware más nuevo es una NPU con un controlador joven, seguir el upstream es la apuesta más segura.

Ha sido la parte más fácil de esta construcción. Lo que hace que un escritorio atómico sea el adecuado para una máquina así no es ninguna característica en particular, es que el sistema operativo no es algo que mantienes. Llega como una sola imagen firmada. O arranca, o reinicias hacia la anterior. No hay actualizaciones a medio aplicar, ninguna dependencia que quedó huérfana hace tres meses, ninguna acumulación lenta de ediciones a mano que nadie recuerda haber hecho — que es exactamente la podredumbre que convierte un servidor doméstico en algo que te da miedo reiniciar.

Cómo se ve eso en la práctica, revisando la máquina mientras escribo esto: cero servicios de usuario fallidos, el despliegue coincidiendo con su digest publicado, y cada parte de la pila que se supone debe estar corriendo, corriendo. La única unidad de sistema fallida es systemd-remount-fs, que intenta remontar / en lectura-escritura y no puede, porque en esta imagen / es un montaje composefs de solo lectura. Eso es el diseño funcionando según lo previsto y una línea de error cosmética, no una falla.

El costo honesto es el que aparece en las trampas de abajo: las actualizaciones llegan como un nuevo despliegue y quieren un reinicio, lo cual es una consideración real cuando podría haber un trabajo corriendo. Y porque la base es inmutable, cualquier cosa que espere instalarse a sí misma en el sistema con un gestor de paquetes necesita un hogar distinto — un contenedor, un Flatpak, o una instalación a nivel de usuario. Ese es un ajuste genuino viniendo de una distro tradicional, y también es la razón completa de que la máquina se mantenga limpia.

Lo que corre

Todo es un servicio systemd --user. Sin Docker, sin scripts supervisores, sin reinicios manuales después de un corte de luz. Todo el zoológico vuelve por sí solo.

ServicioQué haceDónde escucha
openclaw-gatewayEl gateway de agentes — enrutamiento, herramientas, sesionespuerto 18789, solo loopback
local-chatDisPatch, la app de chat que usa la familiapuerto 8765, LAN + Tailscale
lm-studioServidor de modelos local, compatible con OpenAIpuerto 1234, loopback
comfyuiGeneración de imágenes local — ahora la ruta de reservapuerto 8188, loopback
openclaw-emailClasificación de correo en dos buzones. Redacta respuestas, nunca envía ninguna.
hermes-gatewayUn segundo gateway de mensajería, separado
rgb-idledDemonio de estado de energía — ajusta el perfil de energía del sistema según el estado de la pantalla y la sesión
openclaw-backup.timerCopia de seguridad nocturna de la configuración y el estado de los agentes02:17 diario
arkvault-backup.timerInstantánea nocturna de Borg02:00 diario
arkvault-mirror.timerEspejo nocturno con fecha al segundo disco02:30 diario

El elenco de agentes

Ocho agentes con nombre más dos agentes de buzón. La división que importa es dónde corre el modelo de cada uno: la nube para todo lo interactivo, esta caja para todo lo privado o de larga duración, y una segunda máquina en la red para los modelos de visión.

AgenteTrabajoCorre en
BitsRecepción. Toma la petición, delega, revisa el resultado.Nube
BrainsPensamiento difícil — arquitectura, depuración, revisiónNube
FlashTrabajo rápido y barato — resúmenes, búsquedas, perseguir trabajos atascadosNube
HermesEl carril de despliegue. Dry-run por defecto, en vivo solo con mi visto bueno explícito.Nube
DoxyTrabajo pesado a granel y todo lo privado — corre toda la noche por el costo de la electricidadEsta caja — MoE de 35B
CharleyVisión — capturas de pantalla, diagramas, cuadros de errorSegunda máquina
AlphaRecepción segura para dispositivos de la familia — solo herramientas de solo lecturaNube
BetaSegundo bot seguro para dispositivos de la familiaSegunda máquina

Alpha y Beta son con quienes habla mi familia. Pueden buscar cosas y responder preguntas; no pueden tocar archivos ni ejecutar comandos, y la app de chat impone eso por separado de la configuración del agente, así que un error en una capa no abre la otra. El razonamiento detrás de la división nube-barata/local está en el desglose de costos.

Cómo se mueve un mensaje por la caja

Dos detalles cargan con la mayor parte de la fiabilidad. Si un modelo está ocupado o caído, responde un respaldo en su lugar en vez de que la petición falle. Y cada vez que se despacha un trabajo, se arma un watchdog — si el trabajador se queda callado más allá de su ventana, se envía a Flash a averiguar por qué. Ninguno de los dos es ingenioso; ambos son la diferencia entre una pila que corre sin supervisión y una que necesita niñera.

Rendimiento en este silicio

Energía. Este es el número que me sorprendió. Medido en el paquete del SoC durante una ventana de cinco segundos, con toda la pila arriba y un promedio de carga alrededor de 2, el chip consumía 4.6 W. Suma la placa base, dos discos NVMe, la RAM, la NIC y el ventilador y terminas cerca de los 10 W en la toma de corriente — pero que el propio procesador sorba menos de 5 W mientras aloja ocho agentes es la ilustración más clara de lo que compran los núcleos de eficiencia Zen 5c. Las temperaturas en reposo se mantienen alrededor de 40 °C en Tctl.

CPU. Diez núcleos Zen 5 a 5 GHz es más de lo que esta carga de trabajo necesita. El enrutamiento de agentes es invisible en el promedio de carga; la máquina pasa la mayor parte de su vida casi en reposo y el ventilador es inaudible a un metro de distancia.

Inferencia local. Aquí es donde la caja tiene límites reales, y son límites de ancho de banda más que de cómputo. La Radeon 880M tiene 12 unidades de cómputo y ~90 GB/s de ancho de banda de memoria con los que trabajar. Para comparar, el Z13 tenía 40 CU y 256 GB/s, y las tarjetas discretas de mi escritorio tienen cerca de 1.8 TB/s cada una. La generación local en esta caja se mide en decenas bajas de tokens por segundo, no en cientos. Eso está bien para el trabajo que tiene — trabajo a granel nocturno y todo lo que no debe salir de la casa — e inútil para chat interactivo, que es por qué el chat interactivo va a la nube.

NPU. La NPU XDNA 2 se enumera limpiamente en /dev/accel/accel0 y no hace nada. Esto es honesto más que decepcionante: los 50 TOPS son reales, pero la ruta de software de «tengo una NPU» a «mi pila de agentes la usa» todavía no existe para los modelos que me importan, que necesitan ventanas de contexto largas y buenas llamadas a herramientas. Donde eventualmente se va a ganar su lugar es en trabajos pequeños y fijos — servir un endpoint de embeddings para el índice de búsqueda del agente de correo, o un clasificador de primera pasada que decida qué correo vale la pena para despertar a un modelo de verdad. Eso es un proyecto para después, y la caja se puso en marcha completamente sin ella.

Redes. Ambos puertos 2.5GbE funcionan sin configuración. Uno está cableado a la red; el segundo está de repuesto.

Lo que dejé atrás

El costo honesto de este cambio es la memoria, y no es un costo pequeño. El Z13 tenía 128 GB de LPDDR5X unificada, de los cuales separaba 64 GB como VRAM y corría un modelo de 120B de parámetros en local. Esta caja tiene 30 GB utilizables, en total, compartidos entre el sistema operativo y todo lo demás.

Así que el nivel de 120B simplemente desapareció. El agente local ahora corre un modelo de mezcla de expertos de 35B en su lugar — un modelo de verdad que hace trabajo de verdad, pero no la misma categoría de cosa. Varias entradas más antiguas de este sitio describen un 120B local como parte de mi pila; eso era cierto en el Z13 y ya no lo es ahora.

Lo que obtuve a cambio es la razón completa por la que ocurrió el cambio: sin batería que envejezca, sin negociación USB-PD bajo carga, sin máquina de estados de Modern Standby en la cual colapsar. La placa se puede actualizar a 96 GB entre dos ranuras SODIMM, lo cual traería de vuelta algo del techo. Todavía no lo hago — los precios de DDR5 aproximadamente se duplicaron este año, y añadir capacidad no añadiría ancho de banda, que es el eje que en realidad limita la inferencia local aquí.

El SSD del Z13 vive aquí ahora

Hay un detalle que me gusta más de lo que debería. La única parte reparable por el usuario del Z13 era su SSD, detrás de una puertita en el soporte plegable. Salió sana, pasó por un soporte adaptador de 2230 a 2280, y ahora está instalada en la segunda ranura M.2 de esta caja.

Guarda las copias de seguridad. Cada noche a las 02:30, se escribe un espejo con fecha del estado de esta máquina en el disco que solía ser la máquina. El último trabajo de la computadora muerta es asegurarse de que su reemplazo se pueda restaurar. También sigue llevando una imagen completa del sistema viejo tomada el día antes de la falla — lo que hizo que la migración fuera una copia en vez de una reconstrucción.

Lo que cuesta

CostoMontoNotas
La caja~$900 una vez$899 de lista, configuración de 32 GB + 1 TB
Créditos de API en la nube~$24/mesTodos los agentes interactivos — desglose completo
Electricidad~$4.50/mesCorriendo 24/7 a tarifas de Tokio
Modelos locales$0El nivel de privacidad. Ya pagaste por el hardware.

Digamos que son menos de $30 al mes para correr todo el asunto. El hardware se paga solo frente a cualquier servicio alojado comparable en menos de un año, y el nivel privado no está disponible a ningún precio en un servicio alojado.

Trampas comunes

Cosas que de verdad me mordieron, en orden aproximado de cuánto tiempo me costaron:

  • El techo de 30 GB es real. 32 GB nominales menos lo que reservan el firmware y la iGPU dejan 30 GB en free -h. La generación de imágenes local y el modelo de lenguaje local no pueden estar residentes al mismo tiempo, así que la generación de imágenes arranca bajo demanda y se detiene en reposo — y la ruta de imágenes por defecto se mudó por completo a una segunda máquina en la red.
  • El servidor de modelos local se caía bajo presión de memoria. El mismo error que golpeó a la máquina anterior: el montaje temporal del AppImage se recicla cuando la memoria aprieta y el proceso recibe un error de bus en vez de una terminación limpia por falta de memoria. Correr una copia extraída bajo systemd en vez del AppImage lo arregló de forma permanente.
  • Los tiempos de espera asumen velocidad de nube. Un modelo grande en una iGPU es lento, no está roto, pero los tiempos de espera por defecto de proveedor, turno y aborto del gateway lo van a matar a mitad de respuesta y reportar un estancamiento. Hay que subirlos como una cadena ordenada — solicitud, luego turno, luego aborto — o simplemente mueves dónde ocurre la falla. Los modelos de razonamiento además tienen que marcarse como tales, o parecen estancados mientras piensan y se abortan.
  • Los IDs de agente se ponen en minúsculas en una ruta de código y no en otra. Los mensajes entre agentes fallaban en silencio hasta que la lista de permitidos tuvo entradas en minúsculas. Sin error, sin línea de log, simplemente nada se entregaba — el peor modo de falla que existe.
  • Las actualizaciones atómicas reinician la máquina. Silverblue prepara una actualización en un nuevo despliegue y reinicia hacia él. Si eso cae a mitad de un trabajo, el trabajo muere. Las actualizaciones ahora ocurren según mi horario, en una ventana tranquila.
  • La configuración vieja te sigue. Parte de la migración reinyectó un archivo de identidad obsoleto de la copia de seguridad de la máquina vieja y metió al gateway en un bucle de caídas. Restaurar un sistema que funciona no es lo mismo que restaurar uno correcto; una configuración que un agente puede reescribir es una configuración que puede morderte desde hace seis meses.

Lo que cambiaría

  • Mejor Wi-Fi, si usara Wi-Fi. La tarjeta Wi-Fi 6 de un solo flujo es el único componente genuinamente débil. Es una pieza M.2 2230 con llave A/E que se puede cambiar, así que es un arreglo de quince minutos. La red cableada significa que no lo he necesitado.
  • Más memoria, eventualmente. 96 GB entre las dos ranuras SODIMM restaurarían algo de lo que tenía el Z13. Los precios actuales de la RAM lo hacen un mal negocio, y no subiría el ancho de banda.
  • Las actualizaciones de firmware son un misterio. No hay descarga pública de BIOS para este modelo. Conseguir una significa escribirle por correo al fabricante con el modelo y el número de serie, y esperar. Ese es el costo de comprar algo poco conocido.
  • La NPU necesita una razón para existir. Cincuenta TOPS sentados en reposo son una invitación permanente. Un endpoint de embeddings es el primer trabajo obvio.

Veredicto

Lo compraría otra vez. No porque sea rápido — no lo es, particularmente — sino porque hace exactamente lo que necesita un home lab siempre encendido y nada de lo que no necesita. Es pequeño, silencioso, sorbe energía, no tiene modos de falla mecánicos más allá de un ventilador, corre Linux mainline sin un solo controlador fuera del árbol, y tiene dos puertos Ethernet y dos puertos USB4 en una máquina del tamaño de un sándwich.

La lección de la máquina que reemplazó fue que el hardware emocionante que muere vale menos para la infraestructura que el hardware aburrido que se mantiene encendido. Este es el hardware aburrido. Dos semanas después, no ha hecho nada interesante en absoluto, que es el cumplido más alto que le puedo hacer.

Registro semanal

Esta sección se actualiza cada semana con lo que cambió en la caja, lo que se rompió, y lo que se arregló. Última actualización: 1 de agosto de 2026.

Semana del 26 de julio al 1 de agosto de 2026

FechaQué pasó
29 de julioSe rediseñó la autorreparación del gateway para ser orientada a eventos: una unidad de rescate ahora se dispara solo cuando el servicio realmente entra en estado de falla, y se rinde después de tres intentos en vez de pelear contra un apagado deliberado. Un agente había detenido el gateway y lo dejó caído toda una tarde.
30 de julioSe configuró el acceso remoto de forma correcta, con dos puertas deliberadamente separadas: una sirviendo la pantalla de inicio de sesión desde arranque en frío, otra reflejando la sesión de escritorio en vivo. Almacenes de credenciales distintos, así que una falla en uno no me deja fuera del otro.
30 de julioSe añadió un demonio de estado de energía. Con la pantalla apagada la máquina baja a un perfil de bajo consumo y apaga la luz del teclado; una sesión remota activa tiene prioridad sobre ambos, porque de otro modo la entrada remota parece inactividad.
31 de julioAuditoría completa del gateway de agentes. Se encontraron IDs de agente normalizados a minúsculas en una ruta pero no en una anulación de directorio, lo cual había bifurcado en silencio la memoria de un agente hacia un segundo directorio. Se quitaron las anulaciones para que las rutas se deriven correctamente.
31 de julioEl SSD de la máquina vieja entró en la segunda ranura M.2 como destino de las copias de seguridad. Los espejos nocturnos con fecha ahora corren a las 02:30, después de la instantánea de Borg existente a las 02:00.
31 de julioLa generación de imágenes se mudó por defecto a una segunda máquina en la red; la instancia local ahora es la reserva. Se liberó la contención de memoria descrita en las trampas de arriba.
1 de agostoLa app de chat ganó imágenes de reacción efímeras — una imagen aparece sobre cada dispositivo conectado durante diez segundos y se descarta con cualquier entrada. Restringido a un solo bot por diseño.
1 de agostoSe midió por primera vez la energía del paquete del SoC: 4.6 W con toda la pila corriendo. Tctl en reposo 40 °C, disco 286 GB usados de 952 GB.

Instantánea actual

MétricaValor
SOBluefin 44 (20260721), Linux 7.0.12
Tiempo activo1 día
Promedio de carga0.67
Memoria7.8 GB usados de 30 GB
Disco286 GB usados de 952 GB (31%)
Energía del paquete SoC4.6 W
Agentes respondiendo8 de 8, más 2 agentes de buzón

← Más de IA y LLM Local