AtlasKronos Android v1.0.0 — MVP (IA local offline)
Pre-release
Pre-release
·
1 commit
to main
since this release
🤖 AtlasKronos Android v1.0.0 — MVP
Assistente de IA brasileiro 100% offline para Android, rodando Qwen2.5-0.5B via llama.cpp.
⚠️ LEIA ANTES DE USAR — Estado de testes honesto
Este MVP foi desenvolvido num ambiente sem emulador Android (sem /dev/kvm) e sem dispositivo físico ADB conectado. Portanto:
✅ O que FOI testado de verdade
| Teste | Resultado |
|---|---|
| Inferência llama.cpp + Qwen2.5-0.5B no Linux | ✓ 25 tokens/s |
| Function-calling — 4 prompts (whatsapp/chrome/configuracoes/camera) | ✓ JSON válido em 4/4 |
| Conversa normal em português | ✓ Respondeu corretamente |
| Build APK debug | ✓ 35s, 200MB |
| 24 testes unitários JVM | ✓ 24/24 passaram |
❌ O que NÃO foi testado (precisa de device Android)
- ❌ Instalar o APK num emulador/celular
- ❌ Validar que o
llama-cliexecuta no Android - ❌ Medir RAM real com
adb shell dumpsys meminfo - ❌ Testar 'abre o WhatsApp' via PackageManager de verdade
- ❌ Validar visualmente o rosto animado
📊 Sobre a meta de 500MB de RAM
Não atingida com qualidade mínima de conversa. Trade-off real:
| Configuração | RAM estimada | Qualidade |
|---|---|---|
| Qwen2.5-0.5B Q4_K_M (atual) | ~650MB | Boa — faz function-calling |
| Qwen2.5-0.5B Q3_K_S | ~510MB | Razoável — erra JSON às vezes |
| TinyLlama-1.1B Q2_K | ~400MB | Ruim — não segue instruções |
O MVP usa Q4_K_M porque sem function-calling confiável, o 'abre o WhatsApp' não funciona.
🎯 Funcionalidades do MVP
- ✅ App Android instalável (APK debug, 200MB)
- ✅ Chat com contexto (sliding window 20 turns, ~2048 tokens)
- ✅ Rosto animado fofo (Canvas, 5 estados: IDLE/LISTENING/THINKING/SPEAKING/HAPPY)
- ✅ Function-calling: abrir apps por comando de texto
- ✅ Memória local: fatos extraídos do chat são persistidos (Room) e injetados no system prompt
- ✅ HUD técnico: modelo + RAM em tempo real + tokens/s
- ✅ Tema deep-tech idêntico ao portfólio NATSKY
📦 Instruções de uso
1. Baixar o modelo GGUF (NÃO vem no APK — 380MB)
O APK não inclui o modelo (ficaria gigante). Baixe manualmente:
curl -L -o qwen2.5-0.5b-instruct-q4_k_m.gguf \
https://huggingface.co/bartowski/Qwen2.5-0.5B-Instruct-GGUF/resolve/main/Qwen2.5-0.5B-Instruct-Q4_K_M.gguf
adb push qwen2.5-0.5b-instruct-q4_k_m.gguf \
/sdcard/Android/data/com.kronos1027.atlaskronos.debug/files/models/Ou coloque em /sdcard/Download/atlaskronos/models/.
2. Instalar o APK
adb install AtlasKronos-v1.0.0-debug.apk3. Testar
"oi! quem é você?"→ conversa normal"abre o whatsapp"→ abre o WhatsApp"abre o chrome"→ abre o Chrome"abre as configurações"→ abre Settings"abre a câmera"→ abre a câmera"meu nome é Darlan"→ aprende seu nome
📋 Checklist de aceite
| Item | Status |
|---|---|
| 🧪 App instala e abre sem crashar | ❌ NÃO TESTADO (sem device) |
| 🧪 Conversa offline com contexto | |
| 🧪 Rosto animado troca de estado | |
| 🧪 3+ comandos 'abrir app' | |
| 🧪 RAM real medida | ❌ NÃO TESTADO (estimativa ~650MB) |
| 🧪 Fato influencia resposta | |
| Commit/autoria corretos | ✓ OK |
🏗️ Stack
- Linguagem: Java 17 (com Java 21 features via desugaring)
- UI: Views XML + ConstraintLayout + Canvas (sem Compose)
- DB: Room 2.6.1 (conversations + user_facts)
- LLM: llama.cpp b10298 (binário ARM64 pré-compilado)
- Modelo: Qwen2.5-0.5B-Instruct Q4_K_M (379MB GGUF)
- Tema: Material 3 dark + paleta deep-tech
💜 Créditos
Feito por Darlan (NATSKY) — @Kronos1027
- llama.cpp — runtime de inferência
- Qwen2.5-0.5B-Instruct — modelo (Alibaba Cloud)
- bartowski's GGUF — versão Q4_K_M
⚠️ Aviso
O app usa QUERY_ALL_PACKAGES para listar apps instalados (necessário para function-calling). Esta permissão é restrita na Play Store para apps públicos, mas é aceita em instalações via APK (sideload).
📄 Licença
MIT License.