Um repo isolado que você incorpora no seu sistema — jarvis, bot, agente CLI. Separa a memória em três cérebros de naturezas opostas e decide sozinho o que pode fazer sob uma política.
from cerebros import Brain brain = Brain("~/.cerebros") # cria os 3 cérebros brain.observe(who, msg) # triagem + save autônomo brain.recall("postgres", # busca por relevância (BM25) sector="projeto") brain.act("enviar_mensagem", # gate de ação SOB a política do=enviar)
A memória de IA quase sempre vira um balaio único. O 3cerebros separa em três setores que querem coisas diferentes, e ainda traz o que nenhum outro segundo cérebro tem: uma política de automação — o que ele faz sozinho vs. o que pede confirmação.
O que rolou, decisões, estado. Memória episódica — o diário do que aconteceu.
Quem você é, valores, dúvidas abertas. Memória de identidade — ancora as escolhas.
Fatos, o que aprendeu. Memória de referência — só acumula, não apaga.
Núcleo só stdlib: cada cérebro é uma pasta de .md + um índice SQLite. Spec aberta — aponte qualquer ferramenta pra ~/.cerebros/. mcp é dependência opcional.
Nada nasce classificado: tudo cai numa inbox e a triagem decide o setor. A recuperação monta o system prompt do host; toda ação externa passa pela política definida na entrevista.
O onboarding gera SOUL.md, values.md e a POLICY.md — as regras de allow / confirm / deny por ação.
observe roteia uma captura; jobs faz a manutenção autônoma (triagem da inbox, briefing, saúde) — sempre sob a política.
Cada item vira .md legível e entra num índice SQLite. recall busca por relevância (BM25) dentro de um cérebro ou em todos.
O núcleo não tem dependências — só Python. O MCP server é opcional, instalado num extra.
Núcleo 100% stdlib (.md + sqlite3). Sem serviço externo, sem chave de API.
Instala o comando cerebros a partir do repo clonado.
git clone https://github.com/inematds/3cerebros cd 3cerebros && pip install -e .
Só se for expor via MCP server pra um host (Claude Code, TS, etc.).
pip install 'cerebros[mcp]'
O cérebro vive em ~/.cerebros/ (ou aponte com --brain / $CEREBROS_PATH). Comandos reais abaixo — todos copiáveis.
Gera SOUL.md, values.md e a POLICY.md. É o que dá o diferencial: o cérebro passa a saber o que pode fazer sozinho.
cerebros init # entrevista interativa cerebros init --auto # usa defaults, sem perguntar
Joga um pensamento/decisão sem dizer onde — a triagem escolhe o setor (projeto | self | conhecimento) e salva, sob a política.
cerebros observe "decidi migrar pra Postgres na sexta" --who nei
Transforma um texto cru numa nota-átomo no cérebro Conhecimento (uma ideia por nota), indexada pra busca.
cerebros note "BM25 pondera frequência do termo e tamanho do documento."
Importa um histórico externo pra inbox; a triagem (no jobs) roteia cada item. Fontes: chatgpt_export, telegram, email, files.
cerebros ingest chatgpt_export --path conversations.json
Processa a inbox, indexa e move pro cérebro certo — sob a política. Se a regra triagem for confirm, ele lista o que faria sem mover.
cerebros jobs
recall busca por relevância (BM25); context monta o system prompt (Self + memórias relevantes) pra injetar no seu host.
cerebros recall "postgres" --sector projeto --limit 10 cerebros context "o que decidi sobre banco?" --who nei
O verdito de uma ação externa. Sem ação, lista todas as regras. Use antes de qualquer "mandar mensagem / postar".
cerebros policy enviar_mensagem # → allow | confirm | deny cerebros policy # lista as regras cerebros stats # memórias por cérebro
Sobe o MCP server pra qualquer host falar com o cérebro (precisa do extra cerebros[mcp]).
cerebros mcp
O 3cerebros é o cérebro; quem é o "corpo" é o seu host. Importe em Python, fale por MCP, ou opere via Agent Skills — todos batem no mesmo cérebro em ~/.cerebros/.
Importa o Brain direto. Veja examples/minimal_host.py e examples/intelecto_seam.py.
from cerebros import Brain brain = Brain("~/.cerebros") system = brain.build_context(query, who) # → system prompt brain.observe(who, user_msg, ai_reply) # save autônomo if brain.policy.check("enviar_mensagem") == "allow": brain.act("enviar_mensagem", do=enviar)
Três skills em skills/ que operam o mesmo cérebro via a CLI:
# cerebro-triagem — capturar e rotear cerebros observe "..." --who nei # cerebro-nota — destilar conhecimento cerebros note "..." # cerebro-socratica — pensar apoiado no Self cerebros context "" # SOUL + values
| Host | Como |
|---|---|
| Python (intelecto, jarvis) | pip install -e . ou git submodule → from cerebros import Brain |
| Claude Code / Codex / Gemini | Agent Skills de skills/ + MCP |
| Qualquer runtime | subir o MCP server (cerebros mcp) |
| TypeScript (ex.: openpcbot) | falar com o MCP server (SDK TS ainda não — único pendente) |
| Só o formato | apontar a ferramenta pra ~/.cerebros/ — spec aberta |
Núcleo rodável com tudo ligado: entrevista que gera a política, autonomia sob política, conectores de ingestão e empacotamento (CLI + MCP + Agent Skills).
POLICY.md do usuário + brain.act() — o diferencial.run_jobs() real (triagem / briefing / saúde) chamável por cron.cerebros + MCP server + Agent Skills.