🧠 LLM Core(s) — Multi-modelo plugável
O LLM Core é onde as chamadas de modelo acontecem. AIOS suporta múltiplos cores em paralelo — um por provider/modelo. O agente pede "LLM com modelo claude-sonnet-4" e o kernel roteia para o core correto. Isso permite trocar modelos por tarefa sem refactor.
💡 O que o LLM Core resolve
- •Conexão com providers (OpenAI, Anthropic, Gemini, Groq, HF, Novita).
- •Retry, timeout e backoff padronizados.
- •Streaming de tokens quando o provider suporta.
- •Contabilidade de tokens e custo por agente.
💡 Dica
Rode 2 cores em paralelo: um com modelo barato (Gemini Flash) para classificação, outro com modelo top (Claude Sonnet) para raciocínio. Agente escolhe por syscall. Economiza ~70% em workloads mistos.
💾 Memory Manager — Curto prazo, em memória
O Memory Manager é o cache rápido por agente. Guarda histórico de conversa, variáveis de estado, working set. Vive em RAM — some quando o kernel reinicia. É o equivalente à memória de processo no SO clássico.
✓ Para que serve
- ✓Histórico da conversa atual
- ✓Cache de respostas do LLM
- ✓Working set entre passos
- ✓Variáveis temporárias
✗ Não use para
- ✗Conhecimento permanente (use Storage)
- ✗Dados que vão sobreviver a restart
- ✗Compartilhar entre agentes (use Storage)
- ✗Logs auditáveis
📊 Memory vs Storage — regra mental
- Memory = RAM = rápido, volátil, por agente
- Storage = disco = persistente, lento, compartilhável
- A-MEM = camada agêntica de memória, paper 2025, futuro do Memory Manager
🗄️ Storage Manager — Persistência durável
O Storage Manager persiste dados em disco. Arquivos brutos, documentos, vetores. Pode usar FS local ou LSFS (Semantic File System, paper ICLR 2025) que indexa por embeddings e permite busca em linguagem natural.
📊 Casos de uso
- Dataset de pesquisa que o agente consulta semanas depois
- Vector store de embeddings para RAG
- Outputs intermediários para reuso
- Logs de auditoria de longo prazo
- Estado compartilhado entre agentes (com cuidado)
💡 LSFS é opcional
Comece com FS local. Migre para LSFS quando perceber que está reescrevendo busca semântica manualmente em volta do Storage. O paper LSFS detalha a integração.
🔧 Tool Manager — Registry + execução
O Tool Manager é catálogo + runtime de ferramentas. Agente diz "executa web_search com {query}" e o Tool Manager localiza, valida permissões, executa em sandbox quando relevante e devolve resultado. No modo computer-use, hospeda o MCP Server que expõe o computador como conjunto de tools.
# Registrar uma tool no kernel
from cerebrum import tool
@tool(name="get_weather", description="Retorna clima atual")
def get_weather(city: str) -> dict:
import requests
return requests.get(f"https://wttr.in/{city}?format=j1").json()
# Agente invoca via syscall
result = ToolCall(name="get_weather", args={"city": "Brasília"}).execute()
💡 Centralize tools
Resistência inicial: "minha tool é só usada por um agente, registro local". Errado — centralize. Outros agentes reaproveitam, auditoria fica unificada, e migrar para MCP depois é trivial.
📋 Scheduler — FIFO / Round-Robin
O Scheduler arbitra a fila de syscalls. Sem ele, um agente longo trava todos. Com ele, política configurável: FIFO (simples) ou Round-Robin (fairness). O paper COLM 2025 dedica seção inteira ao Scheduler porque é o módulo que mais separa AIOS de framework comum.
| Política | Fairness | Throughput | Uso |
|---|---|---|---|
| FIFO | Baixa | Alto | 1-2 agentes |
| Round-Robin | Alta | Médio | 3+ agentes |
💡 Sintoma
Se um agente parece "esquecido", é hora de trocar de FIFO para RR. Olhar o log de syscalls confirma rapidamente.
🔄 Context Manager — Snapshot/restore
O Context Manager implementa o context switch: salva estado completo de um agente (memória, posição no plano, working set) e restaura depois. Sem ele, scheduler não consegue pausar agente longo para dar vez a outro.
📊 Operações
- Snapshot — serializa estado do agente
- Restore — restaura snapshot e retoma execução
- Migrate — move agente entre kernels (modo remoto)
- Pause/Resume — atalhos comuns para snapshot+restore
💡 Use com moderação
Snapshot tem custo (serialização de estado). Não use a cada syscall. Use quando o Scheduler precisa preemptar agente longo, ou quando você quer migrar agente para outro kernel.
✅ Resumo do Módulo
Próxima trilha:
Trilha 3 — ⚙️ Instalação e Setup. Python, requirements, config.yaml e providers passo a passo.