Segundo cérebro · embutível · zero deps no núcleo

Um cérebro de IA com 3 cérebros.

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)
O que é

Três cérebros com necessidades opostas — em vez de um monte só que incha.

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.

🧠 1 · Projeto

O que rolou, decisões, estado. Memória episódica — o diário do que aconteceu.

🧠 2 · Self

Quem você é, valores, dúvidas abertas. Memória de identidade — ancora as escolhas.

🧠 3 · Conhecimento

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.

Como funciona

Capturar → triar → guardar no cérebro certo → recuperar → agir sob política.

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.

ingest / observe 0-inbox triagem Projeto · Self · Conhecimento recall (BM25) build_context act · política

🗣️ Entrevista → política

O onboarding gera SOUL.md, values.md e a POLICY.md — as regras de allow / confirm / deny por ação.

⚙️ Triagem & autonomia

observe roteia uma captura; jobs faz a manutenção autônoma (triagem da inbox, briefing, saúde) — sempre sob a política.

🔎 Memória buscável

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.

Pré-requisitos

O que precisa pra rodar.

O núcleo não tem dependências — só Python. O MCP server é opcional, instalado num extra.

🐍 Python 3

Núcleo 100% stdlib (.md + sqlite3). Sem serviço externo, sem chave de API.

📦 Instalar

Instala o comando cerebros a partir do repo clonado.

git clone https://github.com/inematds/3cerebros
cd 3cerebros && pip install -e .

🔌 MCP (opcional)

Só se for expor via MCP server pra um host (Claude Code, TS, etc.).

pip install 'cerebros[mcp]'
Guia de uso · passo a passo

Operando o cérebro pela CLI.

O cérebro vive em ~/.cerebros/ (ou aponte com --brain / $CEREBROS_PATH). Comandos reais abaixo — todos copiáveis.

1

Onboarding: entrevista → política

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
2

Capturar: triagem + save autônomo

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
3

Destilar conhecimento em notas

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."
4

Ingerir fontes externas → inbox

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
5

Manutenção autônoma (cron)

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
6

Recuperar e montar contexto

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
7

Conferir a política antes de agir

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
8

Expor via MCP (opcional)

Sobe o MCP server pra qualquer host falar com o cérebro (precisa do extra cerebros[mcp]).

cerebros mcp
Como incorporar

Embutir no seu sistema — três caminhos.

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/.

HOST PYTHON

intelecto · jarvis caseiro

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)
AGENT SKILLS

Claude Code · Codex · Gemini

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
HostComo
Python (intelecto, jarvis)pip install -e . ou git submodule → from cerebros import Brain
Claude Code / Codex / GeminiAgent Skills de skills/ + MCP
Qualquer runtimesubir o MCP server (cerebros mcp)
TypeScript (ex.: openpcbot)falar com o MCP server (SDK TS ainda não — único pendente)
Só o formatoapontar a ferramenta pra ~/.cerebros/ — spec aberta
Roadmap

Status: operacional (F1–F4, menos o SDK TS).

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).

F0 ✅
NúcleoBrain, memória (índice SQLite), triagem, política, destilação.
F1 ✅
Entrevista → políticaOnboarding gera a POLICY.md do usuário + brain.act() — o diferencial.
F2 ✅
Autonomiarun_jobs() real (triagem / briefing / saúde) chamável por cron.
F3 ✅
ConectoresChatGPT export, Telegram, email/mbox e arquivos → inbox.
F4 ✅
EmpacotarCLI cerebros + MCP server + Agent Skills.
F4 ⏳
Resta: SDK TypeScriptHosts TS usam o MCP server enquanto isso.