O CHUWI AuBox Ai365: Meu Laboratório Doméstico de IA numa Caixa

Publicado em
1 agosto 2026
Atualizado em
1 agosto 2026
Por
Jacob Lloyd — escrito com ajuda de IA, depois do projeto
Tempo de leitura
18 min de leitura

Em termos simples: Este é o computador pequeno que roda meus ajudantes de IA, meus sites e minha rede doméstica. Ele tem um chip AMD rápido, 30 GB de memória e duas portas de rede, e substituiu um tablet caro que falhou. Tudo funciona no Linux sem precisar caçar drivers. Listo exatamente o que ele roda, quanto custa, o que eu abri mão ao trocar da máquina antiga, e atualizo esta página toda semana.

O CHUWI AuBox Ai365 é um mini PC que quase ninguém conhece, de uma marca mais famosa por tablets baratos, construído em torno de um chip que normalmente mora em notebooks. Ele fica atrás do meu monitor, consome menos energia no chip do que um carregador de celular, e roda oito agentes de IA com nome, um app de chat da família, um serviço de triagem de e-mail e todos os sites que eu mantenho. Foi o hardware mais sem graça que tive em anos, e depois da máquina que ele substituiu, sem graça é exatamente o ponto.

tl;dr

  • O que é: um CHUWI AuBox Ai365 — AMD Ryzen AI 9 365, Radeon 880M, 30 GB de DDR5 utilizáveis, 2,5GbE duplo, 2× USB4 — rodando Bluefin, um desktop Fedora atômico.
  • O que ele roda: minha stack de oito agentes do OpenClaw, um app de chat autogerenciado que a casa toda usa, um servidor de modelo local, triagem de e-mail, e o build deste site.
  • Suporte no Linux: tudo funciona nativamente no kernel. Sem drivers de terceiros, sem DKMS, sem gambiarras de HSA_OVERRIDE. Até a NPU é reconhecida.
  • Quanto custou: cerca de $900 pela caixa, mais ou menos $24/mês em créditos de API e alguns dólares de eletricidade.
  • O que substituiu: um ROG Flow Z13 que desenvolveu uma falha de energia. Esta caixa tem um quarto da memória daquela máquina — e o SSD da máquina antiga agora está aparafusado dentro dela, guardando os backups.
  • Documento vivo: o log semanal no final da página é atualizado toda semana com o que mudou, o que quebrou e o que foi consertado.

Especificações completas

ComponenteEspecificação
ModeloCHUWI AuBox Ai365 (BIOS AuBox_06)
CPUAMD Ryzen AI 9 365 ("Strix Point") — 10 núcleos / 20 threads (4× Zen 5 + 6× Zen 5c), até 5,0 GHz, 24 MB de L3, 4 nm
GPUAMD Radeon 880M — RDNA 3.5, 12 unidades de computação, até 2,9 GHz
NPUAMD XDNA 2 — 50 TOPS (73 TOPS no total da plataforma)
RAM2× 16 GB DDR5-5600 SODIMM, dual channel — 30 GB utilizáveis, expansível até 96 GB
Largura de banda de memória~90 GB/s num barramento de 128 bits
Armazenamento1 TB NVMe PCIe 4.0, 2× slots M.2 2280 (os dois ocupados agora)
Ethernet2× Realtek RTL8125 2,5GbE
Sem fioRealtek RTL8851BE — Wi-Fi 6 (802.11ax), Bluetooth 5.3
USB2× USB4 40 Gbps (modo alternativo DP, 100 W PD de entrada), 3× USB 3.2 Gen 2 Type-A
VídeoHDMI 2.1, DisplayPort 1.4, mais as duas USB4 — até 4 monitores, 8K60 / 4K144
SOBluefin 44 (20260721) — Fedora Silverblue atômico, GNOME 50.3 no Wayland, Linux 7.0.12
EnergiaFonte jack de 19 V / 6,32 A, 120 W
Físico140 × 139 × 55 mm, 846 g, totalmente metálico, uma ventoinha — compatível com suporte VESA
Preço$899 de tabela; paguei cerca de $900

Por Que Esta Caixa

Meu laboratório doméstico anterior era um ROG Flow Z13 — um tablet gamer com 128 GB de memória unificada. Em julho de 2026 ele desenvolveu uma falha de energia: liga, trava no logo, e se coloca para dormir cerca de trinta segundos depois, todas as vezes. A autópsia completa está aqui. A versão curta é que ele nunca chega a um bootloader, então nada que eu pudesse fazer via software algum dia resolveria isso.

Isso me deu uma lista de compras bem específica. Eu precisava de uma máquina Linux com pelo menos 32 GB de RAM, GPU suficiente para trabalho local de visão, rede cabeada, e — depois de ver uma máquina alimentada por bateria falhar no gerenciamento de energia — nenhuma bateria e nenhuma negociação USB-PD no caminho crítico. Um conector jack e uma ventoinha.

A coisa incomum nessa caixa é que ela é um desktop Strix Point. O Ryzen AI 9 365 é um chip de notebook; ele mora em ThinkPads e OmniBooks e, até recentemente, no tablet que acabei de perder. Colocá-lo num cubo de metal de 140 mm com duas portas 2,5GbE e duas portas USB4 é o tipo de decisão que só acontece quando um fabricante menor constrói algo um pouco estranho. Essa estranheza é exatamente o que um home lab quer: eficiência de notebook, entrega de energia de desktop, rede de servidor.

Linux Neste Hardware

Esta é a parte que eu esperava ser dolorosa e não foi. Todo dispositivo na caixa é suportado por um driver nativo do kernel num kernel Fedora padrão. Não há repositório de terceiros, nenhum módulo DKMS, e nenhuma variável de ambiente forçando a GPU em lugar nenhum da minha configuração.

DispositivoDriverStatus no Linux 7.0.12
Radeon 880M (gfx1150)amdgpuFunciona. Se reporta como strix1, sem precisar de override.
2× RTL8125 2,5GbEr8169Ambas detectadas e funcionando, sem parâmetros de módulo.
Wi-Fi RTL8851BErtw89_8851beNo mainline desde a 6.5. Funciona — mas veja a ressalva abaixo.
NPU XDNA 2amdxdnaNativo no kernel desde a 6.14. É reconhecida como /dev/accel/accel0.
USB4thunderboltFunciona.

A ressalva do Wi-Fi vale a pena deixar clara, porque o próprio marketing da CHUWI é vago sobre isso e uma ficha técnica que encontrei o chama de Wi-Fi 7. Não é. O RTL8851BE é uma peça Wi-Fi 6, single-stream, sem 2×2, sem 6 GHz — se identifica como um controlador 802.11ax e entrega cerca de 300–400 Mbps na prática. É de longe o componente mais fraco da máquina. Também é uma placa M.2 2230 chave A/E, então pode ser trocada por uma MediaTek MT7925 se você quiser Wi-Fi 7. Eu não me incomodei: esta caixa vive na rede cabeada de 2,5GbE, e a interface Wi-Fi simplesmente fica desligada.

Bluefin, especificamente

Escolhi o Bluefin em vez do Bazzite aqui, deliberadamente. Mesma base ublue — rpm-ostree baseado em imagem, Flatpak em primeiro lugar, reverter uma atualização ruim com um único reinício — mas o Bluefin acompanha o kernel Fedora padrão em vez de um kernel de jogos remendado. Numa máquina cujo hardware mais novo é uma NPU com driver jovem, acompanhar o upstream é a aposta mais segura.

Foi a parte mais fácil desta montagem. O que torna um desktop atômico certo para uma máquina assim não é nenhuma característica isolada, é que o sistema operacional não é uma coisa que você mantém. Ele chega como uma única imagem assinada. Ou ele dá boot, ou você reinicia na imagem anterior. Não há atualização meio aplicada, nenhuma dependência órfã de três meses atrás, nenhum acúmulo lento de edições manuais que ninguém lembra de ter feito — que é exatamente a podridão que transforma um servidor doméstico em algo que você tem medo de reiniciar.

O que isso parece na prática, checando a máquina enquanto escrevo isto: zero serviços de usuário falhos, o deployment batendo com seu digest publicado, e cada parte da stack que deveria estar rodando, rodando. A única unidade de sistema falha é a systemd-remount-fs, que tenta remontar / como leitura-escrita e não consegue, porque nessa imagem / é uma montagem composefs somente leitura. Isso é o design funcionando como pretendido e uma linha de erro cosmética, não uma falha de verdade.

O custo honesto é o que está nas ciladas abaixo: atualizações chegam como um novo deployment e pedem um reinício, o que é uma consideração real quando algum trabalho pode estar rodando. E como a base é imutável, qualquer coisa que espere se instalar no sistema com um gerenciador de pacotes precisa de outro lugar para morar — um contêiner, um Flatpak, ou uma instalação a nível de usuário. Esse é um ajuste genuíno vindo de uma distro tradicional, e também é todo o motivo pelo qual a máquina se mantém limpa.

O Que Ele Roda

Tudo é um serviço systemd --user. Sem Docker, sem scripts supervisores, sem reinícios manuais depois de uma queda de energia. O zoológico inteiro volta sozinho.

ServiçoO que fazOnde escuta
openclaw-gatewayO gateway de agentes — roteamento, ferramentas, sessõesporta 18789, só loopback
local-chatDisPatch, o app de chat que a casa usaporta 8765, LAN + Tailscale
lm-studioServidor de modelo local, compatível com a API da OpenAIporta 1234, loopback
comfyuiGeração de imagem local — agora o caminho de reservaporta 8188, loopback
openclaw-emailTriagem de e-mail em duas caixas de entrada. Rascunha respostas, nunca envia uma.
hermes-gatewayUm segundo gateway de mensagens, separado
rgb-idledDaemon de estado de energia — define o perfil de energia do sistema a partir do estado da tela e da sessão
openclaw-backup.timerBackup noturno de configuração e estado dos agentes02:17, diário
arkvault-backup.timerSnapshot noturno do Borg02:00, diário
arkvault-mirror.timerEspelho noturno datado para o segundo disco02:30, diário

O elenco de agentes

Oito agentes com nome mais dois agentes de caixa de entrada. A divisão que importa é onde o modelo de cada um roda: nuvem para tudo interativo, esta caixa para tudo privado ou de longa duração, e uma segunda máquina na rede para os modelos de visão.

AgenteTrabalhoModelo roda em
BitsRecepção. Recebe o pedido, delega, revisa o resultado.Nuvem
BrainsPensamento difícil — arquitetura, depuração, revisãoNuvem
FlashTrabalho rápido e barato — resumos, buscas, cobrar trabalhos travadosNuvem
HermesA faixa de deploy. Dry-run por padrão, ao vivo só com meu sinal verde explícito.Nuvem
DoxyTrabalho braçal em massa e tudo privado — roda a noite toda pelo custo da eletricidadeEsta caixa — MoE de 35B
CharleyVisão — capturas de tela, diagramas, caixas de diálogo de erroSegunda máquina
AlphaRecepção segura para os dispositivos da família — só ferramentas somente leituraNuvem
BetaSegundo bot seguro para os dispositivos da famíliaSegunda máquina

Alpha e Beta são com quem minha família fala. Eles podem buscar informações e responder perguntas; não podem tocar em arquivos nem rodar comandos, e o app de chat impõe isso separadamente da configuração do agente, então um erro numa camada não abre a outra. O raciocínio por trás da divisão entre nuvem barata e local está no detalhamento de custos.

Como Uma Mensagem Se Move Pela Caixa

Dois detalhes carregam a maior parte da confiabilidade. Se um modelo está ocupado ou fora do ar, um fallback responde no lugar em vez de o pedido falhar. E sempre que um trabalho é despachado, um watchdog é armado — se o trabalhador fica quieto além da sua janela, a Flash é enviada para descobrir por quê. Nenhum dos dois é genial; os dois são a diferença entre uma stack que roda sem supervisão e uma que precisa de babá.

Desempenho Neste Silício

Energia. Este é o número que me surpreendeu. Medido no pacote do SoC ao longo de uma janela de cinco segundos, com a stack inteira no ar e uma média de carga em torno de 2, o chip consumia 4,6 W. Some a placa-mãe, dois discos NVMe, a RAM, a placa de rede e a ventoinha e você chega perto de 10 W na tomada — mas o processador em si consumindo menos de 5 W enquanto hospeda oito agentes é a ilustração mais clara do que os núcleos de eficiência Zen 5c compram para você. As temperaturas em repouso ficam em torno de 40 °C no Tctl.

CPU. Dez núcleos Zen 5 a 5 GHz é mais do que essa carga de trabalho precisa. O roteamento de agentes é invisível na média de carga; a máquina passa a maior parte da vida quase ociosa e a ventoinha é inaudível a um metro de distância.

Inferência local. É aqui que a caixa tem limites de verdade, e são limites de largura de banda, não de poder de computação. A Radeon 880M tem 12 unidades de computação e ~90 GB/s de largura de banda de memória para trabalhar. Para comparação, o Z13 tinha 40 CUs e 256 GB/s, e as placas dedicadas do meu desktop têm cerca de 1,8 TB/s cada. A geração local nesta caixa é medida em dezenas baixas de tokens por segundo, não centenas. Isso é tranquilo para o trabalho que ela tem — trabalho em massa durante a noite e tudo que não pode sair de casa — e inútil para chat interativo, motivo pelo qual o chat interativo vai para a nuvem.

NPU. A NPU XDNA 2 é reconhecida de forma limpa em /dev/accel/accel0 e não faz nada. Isso é honesto, não decepcionante: os 50 TOPS são reais, mas o caminho de software entre "eu tenho uma NPU" e "minha stack de agentes usa ela" ainda não existe para os modelos com que eu me importo, que precisam de janelas de contexto longas e boa chamada de ferramentas. Onde ela eventualmente vai ganhar seu lugar é em trabalhos pequenos e fixos — servir um endpoint de embeddings para o índice de busca do agente de e-mail, ou um classificador de triagem de primeira passada que decide qual e-mail vale a pena acordar um modelo de verdade. Isso é um projeto para depois, e a caixa foi montada completamente sem ela.

Rede. As duas portas 2,5GbE funcionam sem configuração nenhuma. Uma está cabeada à rede; a segunda está de reserva.

O Que Eu Abri Mão

O custo honesto dessa mudança é memória, e não é um custo pequeno. O Z13 tinha 128 GB de LPDDR5X unificada, dos quais eu reservava 64 GB como VRAM e rodava um modelo de 120B parâmetros localmente. Esta caixa tem 30 GB utilizáveis, no total, compartilhados entre o sistema operacional e tudo mais.

Então o nível 120B simplesmente acabou. O agente local agora roda um modelo mixture-of-experts de 35B no lugar — um modelo de verdade que faz trabalho de verdade, mas não a mesma classe de coisa. Vários posts mais antigos deste site descrevem um 120B local como parte da minha stack; isso era verdade no Z13 e não é verdade agora.

O que eu ganhei em troca é todo o motivo pelo qual a mudança aconteceu: nenhuma bateria para envelhecer, nenhuma negociação USB-PD sob carga, nenhuma máquina de estados Modern Standby para travar dentro. A placa pode ser atualizada para 96 GB nos dois slots SODIMM, o que traria de volta parte do teto. Não estou fazendo isso ainda — os preços de DDR5 praticamente dobraram este ano, e adicionar capacidade não adicionaria largura de banda, que é o eixo que realmente restringe a inferência local aqui.

O SSD do Z13 Mora Aqui Agora

Há um detalhe do qual eu gosto mais do que deveria. A única peça do Z13 que o usuário podia mexer era o SSD, atrás de uma tampa no apoio dobrável. Ele saiu saudável, passou por um suporte adaptador de 2230 para 2280, e agora está instalado no segundo slot M.2 desta caixa.

Ele guarda os backups. Toda noite às 02:30, um espelho datado do estado desta máquina é escrito no disco que costumava ser a máquina. O último trabalho do computador morto é garantir que seu substituto possa ser restaurado. Ele também ainda carrega uma imagem completa do sistema antigo, tirada no dia anterior à falha — o que fez da migração uma cópia, em vez de uma reconstrução.

Quanto Custa

CustoValorNotas
A caixa~$900 uma vez$899 de tabela, configuração de 32 GB + 1 TB
Créditos de API de nuvem~$24/mêsTodos os agentes interativos — detalhamento completo
Eletricidade~$4,50/mêsRodando 24/7 nas tarifas de Tóquio
Modelos locais$0O nível de privacidade. Você já pagou pelo hardware.

Digamos menos de $30 por mês para rodar tudo. O hardware se paga sozinho, comparado a qualquer serviço hospedado equivalente, em menos de um ano, e o nível privado não está disponível a preço nenhum num serviço hospedado.

Ciladas

Coisas que realmente me morderam, em ordem aproximada de quanto tempo custaram:

  • O teto de 30 GB é real. 32 GB nominais menos o que o firmware e a iGPU reservam deixam 30 GB no free -h. A geração de imagem local e o modelo de linguagem local não conseguem ficar residentes ao mesmo tempo, então a geração de imagem inicia sob demanda e para quando ociosa — e o caminho padrão de imagem passou inteiramente para uma segunda máquina na rede.
  • O servidor de modelo local travava sob pressão de memória. O mesmo bug que atingiu a máquina antiga: o ponto de montagem temporário do AppImage é reciclado quando a memória aperta, e o processo sofre um erro de barramento em vez de um kill limpo por falta de memória. Rodar uma cópia extraída sob o systemd em vez do AppImage resolveu isso permanentemente.
  • Os timeouts pressupõem velocidade de nuvem. Um modelo grande numa iGPU é lento, não quebrado, mas os timeouts padrão de provedor, turno e aborto do gateway vão matá-lo no meio da resposta e reportar um travamento. Eles precisam ser aumentados como uma cadeia ordenada — requisição, depois turno, depois aborto — ou você só muda onde a falha acontece. Modelos de raciocínio também precisam ser sinalizados como tal, ou parecem travados enquanto estão pensando e são abortados.
  • Os IDs de agente são convertidos para minúsculas num caminho de código e não em outro. Mensagens entre agentes falhavam silenciosamente até a lista de permissões ter entradas em minúsculas. Sem erro, sem linha de log, só nada era entregue — o pior modo de falha que existe.
  • Atualizações atômicas reiniciam a máquina. O Silverblue prepara uma atualização num novo deployment e reinicia nele. Se isso acontecer no meio de um trabalho, o trabalho morre. Atualizações agora acontecem na minha agenda, numa janela tranquila.
  • Configuração antiga te segue. Parte da migração reinjetou um arquivo de identidade desatualizado do backup da máquina antiga e colocou o gateway num loop de pane. Restaurar um sistema que funciona não é o mesmo que restaurar um que está correto; configuração que um agente pode reescrever é configuração que pode te morder vinda de seis meses atrás.

O Que Eu Mudaria

  • Wi-Fi melhor, se eu usasse Wi-Fi. A placa Wi-Fi 6 single-stream é o único componente genuinamente fraco. É uma peça M.2 2230 chave A/E trocável, então é um conserto de quinze minutos. A rede cabeada significa que eu não precisei.
  • Mais memória, eventualmente. 96 GB nos dois slots SODIMM restauraria parte do que o Z13 tinha. Os preços atuais de RAM fazem disso um mau negócio, e não aumentaria a largura de banda.
  • Atualizações de firmware são um mistério. Não existe download público de BIOS para este modelo. Conseguir uma significa mandar e-mail para o fabricante com o modelo e o número de série e torcer. Esse é o custo de comprar algo obscuro.
  • A NPU precisa de um motivo para existir. Cinquenta TOPS parados é um convite permanente. Um endpoint de embeddings é o primeiro trabalho óbvio.

Veredito

Eu compraria de novo. Não porque é rápido — não é, particularmente — mas porque faz exatamente o que um home lab sempre ligado precisa e nada do que não precisa. É pequeno, silencioso, consome pouca energia, não tem modos de falha mecânicos além de uma ventoinha, roda Linux mainline sem um único driver fora da árvore, e tem duas portas Ethernet e duas portas USB4 numa máquina do tamanho de um sanduíche.

A lição da máquina que ele substituiu foi que hardware empolgante que morre vale menos para infraestrutura do que hardware sem graça que continua ligado. Este é o hardware sem graça. Duas semanas depois, ele não fez absolutamente nada interessante, o que é o maior elogio que posso fazer a ele.

Log Semanal

Esta seção é atualizada semanalmente com o que mudou na caixa, o que quebrou, e o que foi consertado. Última atualização: 1º de agosto de 2026.

Semana de 26 de julho a 1º de agosto de 2026

DataO que aconteceu
29 de julhoA autorrecuperação do gateway foi reformulada para ser orientada a eventos: uma unidade de resgate agora dispara só quando o serviço realmente entra em estado de falha, e desiste depois de três tentativas em vez de brigar com um desligamento deliberado. Um agente tinha parado o gateway e deixado ele fora do ar por uma noite.
30 de julhoAcesso remoto configurado direito, com duas portas deliberadamente separadas: uma servindo a tela de login desde o boot a frio, outra espelhando a sessão de desktop ao vivo. Repositórios de credenciais diferentes, então uma falha numa não me tranca para fora da outra.
30 de julhoDaemon de estado de energia adicionado. Tela apagada joga a máquina para um perfil de baixa energia e apaga a luz do teclado; uma sessão remota ativa tem prioridade sobre os dois, porque input remoto senão parece ociosidade.
31 de julhoAuditoria completa do gateway de agentes. Encontrei IDs de agente sendo normalizados para minúsculas num caminho, mas não num override de diretório, o que tinha bifurcado silenciosamente a memória de um agente para um segundo diretório. Removi os overrides para que os caminhos se derivem corretamente.
31 de julhoO SSD da máquina antiga foi para o segundo slot M.2 como alvo de backup. Espelhos noturnos datados agora rodam às 02:30, depois do snapshot do Borg já existente às 02:00.
31 de julhoA geração de imagem passou por padrão para uma segunda máquina na rede; a instância local agora é o fallback. Liberou a disputa de memória descrita nas ciladas acima.
1º de agostoO app de chat ganhou imagens de reação efêmeras — uma imagem aparece sobre cada dispositivo conectado por dez segundos e some com qualquer input. Restrito a um único bot, por design.
1º de agostoMedi a energia do pacote do SoC pela primeira vez: 4,6 W com a stack inteira rodando. Tctl em repouso 40 °C, disco com 286 GB usados de 952 GB.

Retrato atual

MétricaValor
SOBluefin 44 (20260721), Linux 7.0.12
Uptime1 dia
Média de carga0,67
Memória7,8 GB usados de 30 GB
Disco286 GB usados de 952 GB (31%)
Energia do pacote do SoC4,6 W
Agentes respondendo8 de 8, mais 2 agentes de caixa de entrada

← Mais de IA e LLM Local