Local primeiro · Rust · LLMs locais

Um briefing matinal que
se aprimora todos os dias.

O ibrief monta durante a noite um briefing curado, sob medida para uma pessoa específica — e então mede o que foi realmente útil para se adaptar. Cinco minutos de sinal em vez de horas de ruído. Totalmente local numa máquina Apple Silicon.

  • evoluir
  • manter-se atualizado
  • decidir bem
  • conversas melhores

Filosofia de design

A memória é o produto — não o modelo.

O ibrief adota uma postura "LLM-OS": o LLM é um núcleo de computação substituível, o valor está no estado persistente e versionado. A auto-melhoria fica na coleira — propor, verificar contra feedback real, proteger, adotar, reverter.

// substituível

Modelo ≠ dependência

Só artefatos de dados são aprendidos — pesos, prompts, fontes. Nunca o código da aplicação. A configuração sobrevive a qualquer troca de modelo.

// controle de autonomia

Na coleira

Cada mudança proposta passa por um portão de segurança antes de virar padrão. Verificar é mais barato que gerar — propor muito, adotar pouco (só o verificado).

// anti-bolha

Engajamento não é o objetivo

Um otimizador de engajamento ingênuo te deixa mais confortável, porém mais burro. O ibrief sacrifica de propósito a pontuação de curto prazo para preservar diversidade e invariantes anti-bolha.

// autoresearch contido

Profundidade, controlada

A pesquisa em várias etapas (estilo Karpathy) é poderosa, mas cara e propensa a alucinações — por isso é um módulo com orçamento e citações obrigatórias, não um agente solto.

O círculo de auto-melhoria

Entregar → Feedback → Avaliar → Aprender → Proteger.

O mesmo ciclo roda toda noite. O que foi útil se reforça; o resto se desvanece — dentro de limites de segurança rígidos.

01

Entregar

montar e enviar o briefing

02

Feedback

👍/👎 via botões do Telegram

03

Aval

comportamento + juiz + estrutura

04

Aprender

pesos · prompts · fontes

05

Portão

checar · adotar · reverter

↺ A pontuação comportamental é a verdade de referência; o juiz LLM ajuda sobretudo no arranque a frio e é calibrado contra o feedback real.

Três eixos, cada um protegido

Auto-melhoria não é uma função — são três.

EixoAlavancaSalvaguarda
Pesos
fontes & temas
Bandit multibraço (Thompson / amostragem Beta) com um piso de exploração [0.2, 2.0]
Portão de segurança: limites + diversidade de fontes (máx. 50%), versionado, reversão
Prompts
ex.: síntese do TL;DR
Um LLM otimizador gera variantes; um teste em sombra pontua ambas na mesma entrada
Adotado só com margem clara do juiz; versionamento de prompts + registro de experimentos
Fontes
registro de feeds
Pontuação de qualidade a partir de feedback + frequência de seleção; as fracas são aposentadas
Vigia de deriva (HHI): ao estreitar, a poda é suspensa — amplitude antes da pontuação

O pipeline noturno

Do feed bruto ao briefing curado.

IngestãoDedup.EnriquecerScore (pesos)CurarTL;DR (prompt aprendido)RenderPersistirEnviar

O nível de massa (resumir, etiquetar) roda num modelo pequeno e rápido, o nível de síntese (curadoria, juiz) num modelo da classe 70B — ambos locais. Todo o ciclo de aprendizado roda à noite praticamente de graça; um modelo de fronteira só é acionado de forma opcional para calibrar o juiz por meio de uma assinatura existente (claude -p).

Anatomia de um briefing

Três seções com intenção clara.

As duas últimas não podem ser otimizadas para fora pela personalização. O ciclo de aprendizado não pode te otimizar para uma bolha confortável.

Destaques

As notícias mais importantes do dia — personalizadas pelos pesos aprendidos. Mais "As 3 coisas de hoje" como resumo executivo.

Contraponto fixo

Um contra-argumento sério e apresentado com honestidade (steelman) à sua própria posição — para você conhecer o outro lado na conversa em vez de argumentar dentro da bolha.

Curinga fixo

Um artigo real deliberadamente surpreendente, fora dos seus interesses habituais — de preferência de uma fonte que não entrou na seleção principal.

Roteiro — totalmente implementado

Seis marcos, cada um útil por si só.

M1

Briefing estático

Ingestão → Enriquecer → Curar → Render contra o Ollama local.

M2

Persistência & feedback

SQLite (sqlx), dedup., registros de briefing; envio ao Telegram com botões 👍/👎.

M3

Motor de avaliação

Pontuação comportamental + juiz LLM contra uma rubrica versionada + verificações estruturais determinísticas.

M4

Aprendizado: pesos

Bandit de Thompson sobre fontes/temas, portão de segurança, versionamento de config e reversão.

M5

Aprendizado: prompts

LLM otimizador + teste em sombra; primitiva de decisão A/B temporal.

M6

Evolução de fontes + AutoResearch

Pontuação, poda, vigia de deriva; ciclo de pesquisa profunda contido com verificação de citações.

Início rápido

Local em dois minutos.

Requisito: Ollama com um modelo de massa e um de síntese. Em hardware mais modesto, basta colocar modelos menores em config/profile.toml.

# baixar modelos
ollama pull qwen2.5:14b      # nível de massa (enriquecer)
ollama pull llama3.3:70b     # nível de síntese (TL;DR, juiz)

# montar um briefing
cargo run -p ibrief-app                 # = brief

# aprender & otimizar
cargo run -p ibrief-app -- eval       # pontuar o briefing de hoje
cargo run -p ibrief-app -- learn      # aprender pesos (Thompson + portão)
cargo run -p ibrief-app -- optimize   # melhorar o prompt do TL;DR via teste em sombra
cargo run -p ibrief-app -- sources evolve   # pontuar fontes + vigia de deriva
cargo run -p ibrief-app -- research "O que há de novo em LLMs locais?"

Pilha técnica

Rust 1.95 · Edition 2024Tokio asyncOllama LLMs locaissqlx + SQLitefeed-rs ingestãoreqwest API do Telegramrand_distr Thompson12 crates · CI no verde

FAQ

Perguntas frequentes.

O que é o ibrief?

Um briefing matinal personalizado que se aprimora sozinho. Ele monta um briefing curado durante a noite e se adapta diariamente ao feedback medido — totalmente local em Rust, com LLMs locais via Ollama.

Como o ibrief se aprimora sozinho?

Em três eixos protegidos: pesos (bandit de Thompson), prompts (teste em sombra) e fontes (pontuação mais um vigia de deriva). Cada mudança passa por um portão de segurança e é versionada e reversível.

Como o ibrief evita a bolha de filtro?

O engajamento não é o objetivo de otimização. Duas seções — Contraponto e Curinga — não podem ser desativadas, e um vigia de deriva impõe a diversidade de fontes, mesmo ao custo da pontuação de curto prazo.

Preciso de uma API na nuvem?

Não. O ibrief roda totalmente local com o Ollama. Um modelo de fronteira na nuvem é opcional e usado apenas para a calibração periódica do juiz por meio de uma assinatura existente (claude -p).