Lição 3 · Curso de Fusão · Parte 1 · O motor · A matriz de fusão
Alembic × Hermes · O Curso de Fusão · Parte 1 · O motor

A matriz de fusão

Agora você tem dois sistemas: o motor Alembic (Lição 1) e o Hermes Agent que você fez reverse-engineering (Lição 2). A matriz é a ponte — uma decisão item a item sobre o que fazer com cada capacidade do Hermes. Quatro verbos, uma regra cada, sempre julgada contra um mapa verificado, nunca de memória.

Cada seção tem um modo Simples e um toggle Técnico com o detalhe de implementação.
Ao fim desta lição você será capaz de
  • Explicar as duas perguntas que decidem o destino de cada capacidade — e por que ambas são respondidas contra um mapa verificado.
  • Distinguir os quatro verbos (CLONE · ADAPT · MERGE · IGNORE) e aplicar a regra de cada um.
  • Justificar por que a coluna IGNORE vale tanto quanto a de construir — a matriz também é uma ferramenta de poda.
  • Reconhecer por que o loop de aprendizado é a pedra angular, e por que ele virou ADAPT no envio.
Suposições tolas (o que presumimos de você)
  • Que você leu (ou tem por perto) as Lições 1 e 2 — sabe o que é o motor Alembic e que o Hermes foi mapeado por reverse-engineering.
  • Que você entende a ideia de uma capacidade: uma habilidade isolada de um agente (memória, busca na web, delegação…).
  • Nada além disso. Os termos técnicos (Result, gate, swarm, funnel) aparecem definidos quando importam.
01

A grande ideia

Imagine que você herdou a oficina de outro mecânico (o Hermes) e já tem a sua própria (o Alembic). Você não joga tudo da oficina herdada na sua, nem ignora tudo. Você pega cada ferramenta, uma de cada vez, e decide: levo igual? refaço do meu jeito? encaixo numa que já tenho? ou descarto porque a minha é melhor?

É isso que a matriz de fusão faz com as capacidades do Hermes. Ela não é uma lista de desejos — é uma planilha de decisões justificadas. Metade do valor está em dizer não com um motivo escrito.

Analogia: a matriz é a triagem de uma mudança de casa. Cada caixa (capacidade) passa por: fica, adapta, junta com outra, ou doa. Ninguém empilha caixa sem decidir — senão a casa nova vira a bagunça da antiga.
capacidades do Hermes triagem · 1 a 1 fica (CLONE) adapta (ADAPT) junta (MERGE) doa (IGNORE) decisãojustificada
Cada capacidade entra na triagem e sai com exatamente um destino — nunca empilhada sem decisão.

O artefato real

A matriz vive em docs/alembic-hermes-fusion-matrix.md no monorepo. Sua estrutura: §1 a legenda dos verbos, §2 as quatro tabelas de veredicto, §3 as duas CLONEs-chave, §4 o esboço do pacote @alembic/hermes, §5 a ordem de implementação.

Cada veredicto é ancorado em contagens de hits sobre dois mapas verificados — não em impressão. A disciplina anti-fabricação é estrutural: o que não pôde ser confirmado foi marcado [uncertain] em vez de chutado.

02

O método: duas perguntas, um veredicto

Cada capacidade do Hermes passou por duas perguntas. E o ponto crucial: cada uma é respondida contra um mapa verificado — não de cabeça.

  • Q1 — O Alembic já tem um equivalente? Respondida contra docs/alembic-complete-map.md, com contagens de hits sobre o mapa e os pacotes nomeados como evidência.
  • Q2 — A versão do Hermes é superior ou inédita? Respondida contra docs/hermes-complete-map.md.

O veredicto sai do par de respostas. O que não deu para confirmar foi marcado [uncertain] em vez de adivinhado.

Preveja antes de revelar

Uma capacidade do Hermes existe no Alembic só de forma parcial (um equivalente diferente, incompleto). Qual dos quatro verbos isso provavelmente recebe?

ADAPT. Equivalente parcial → não é inédito (não é CLONE) nem uma superfície pronta para absorver (não é MERGE) nem redundante (não é IGNORE). Você reimplementa a ideia do Hermes no estilo do Alembic. Guarde isso — vamos ver as quatro regras agora.
capacidade do Hermes Q1: o Alembic já tem o equivalente? Q2: a versão do Hermes é melhor / inédita? CLONE inédito; portar de perto ADAPT equiv. parcial; reimplementar MERGE superfície afim; fundir nela IGNORE já tão bom, ou fora de escopo
Duas perguntas no topo, quatro veredictos embaixo. O destino segue do par de respostas.

Evidência, não impressão

impressão "acho que o Alembic não tem busca web" evidência (auditável) web search = 0 hits no mapa verificado
Cada veredicto troca uma impressão por uma contagem de hits que qualquer pessoa pode reabrir e checar.

A frase "contra um mapa verificado" é o coração do método. Em vez de "acho que o Alembic não tem busca na web", a matriz escreve web search=0 hits sobre docs/alembic-complete-map.md. Cada veredicto carrega esse número.

Isso transforma a fusão em algo auditável: qualquer pessoa pode reabrir o mapa, rodar a mesma contagem e checar a decisão. É a mesma disciplina de prova (Proof Gate) que o resto do Alembic aplica a código — aqui aplicada a decisões de arquitetura.

03

Os quatro verbos

Uma regra por verbo. Decore estas quatro linhas e você lê a matriz inteira.

Árvore de decisão da matriz de fusão: a capacidade do Hermes passa por duas perguntas (Q1 já existe no Alembic, Q2 é melhor ou inédita) e desce para quatro veredictos coloridos — CLONE, ADAPT, MERGE e IGNORE.

As duas perguntas no topo abrem em quatro veredictos. Cada cartão traz a regra de uma linha do seu verbo.

VerboQuando
CLONEInédito no Alembic; portar o design do Hermes de perto, adaptando os tipos a @alembic/*.
ADAPTO Alembic tem um equivalente parcial / diferente; reimplementar a ideia do Hermes no estilo do Alembic.
MERGEO Alembic já tem uma superfície relacionada; dobrar a capacidade do Hermes dentro dela — uma superfície mais rica.
IGNOREO Alembic já faz tão bem ou melhor, ou está fora do escopo da missão. Sempre justificado.
Flashcard · verbo
Quando uma capacidade vira CLONE?
clique para virar
Quando é inédita no Alembic (mapa mostra zero ou hits incidentais). Porta-se o design de perto, adaptando os tipos.
Flashcard · verbo
Qual a diferença entre ADAPT e MERGE?
clique para virar
ADAPT: existe um equivalente parcial → você reimplementa. MERGE: existe uma superfície pronta → você dobra dentro dela.
Flashcard · verbo
IGNORE quer dizer "ruim"?
clique para virar
Não. Quer dizer "o Alembic já faz tão bem ou melhor" ou "fora de escopo". É uma recusa justificada, não um descarte.
CLONE Hermes cópia portar o desenho ADAPT ideia refeita reimplementar MERGE Alembic +Hermes dobrar numa só IGNORE Hermes recusar c/ motivo um gesto por verbo — o destino segue das duas perguntas
CLONE copia o desenho; ADAPT refaz a ideia; MERGE dobra duas superfícies em uma; IGNORE recusa, com motivo.
DicaUm jeito rápido de lembrar: CLONE = copiar o desenho, ADAPT = redesenhar, MERGE = encaixar, IGNORE = recusar com motivo.
04

CLONE — os cinco inéditos de alto valor

Estes não têm equivalente no Alembic (o mapa mostra zero ou hits incidentais), então são portados de perto.

CapacidadeFonte no HermesPor que CLONE
Memória em arquivo (frozen-snapshot)memory_tool.py §3.2 (1089 LOC)MEMORY.md/USER.md limitados, injetados como um snapshot congelado no início da sessão. Fundamental para o loop de aprendizado.
Loop de auto-revisão (aprendizado)background_review.py §1.10O mecanismo "auto-melhorável" de manchete — a maior lacuna do Alembic. (Enviado como ADAPT; veja o destaque adiante.)
Curator (ciclo de vida das skills)curator.py + skill_usage.py §3.3active→stale→archived, nunca deleta. Dá controle de qualidade ao loop.
Busca / extração webweb_tools.py §3.1 (1377 LOC)HTTP+JSON puro sobre múltiplos backends. Reforça a camada SOURCE do funil.
Clarify (humano-no-loop)clarify_*.py §3.7Perguntas estruturadas + gateway bloqueante. Vira a superfície de "perguntar" do gate humano T4.
memory_tool.py design + disciplina portar o DESIGN @alembic/hermes → memory/ Result · FsPort · Zod não é copiar-e-colar o Python
O que atravessa é o design e a disciplina, retipados aos invariantes do Alembic — não as linhas de Python.
Guarde isto"CLONE" não é copiar-e-colar o Python. É portar o design de perto, adaptando aos tipos e invariantes do Alembic (Result, FsPort, Zod). E um veredicto pode mudar entre o plano e o envio.

O esboço de @alembic/hermes (§4 da matriz)

@alembic/hermes
  memory/     # CLONE: snapshot congelado MEMORY.md/USER.md (memory_tool.py §3.2)
  web/        # CLONE: web_search / web_extract sobre HTTP+JSON (web_tools.py §3.1)
  clarify/    # CLONE: perguntas estruturadas + gateway bloqueante (clarify_*.py §3.7)
  curator/    # CLONE: ciclo active→stale→archived das skills (curator.py §3.3)
  review/     # o loop de aprendizado — entrou como ADAPT (ADR-0018)

A ordem de implementação (§5) começa por memory/ — "fundamental, fácil, zero binds externos" — porque o loop de aprendizado depende dela.

05

MERGE — dobrar numa superfície relacionada

Aqui o Alembic já tem uma superfície parecida. Em vez de criar uma nova, você funde a capacidade do Hermes dentro dela — uma superfície só, mais rica.

CapacidadeAlembic hojePor que MERGE
Cliente MCPO Alembic é um servidor MCP, read-only — sem cliente (MCP=8 hits)Adicionar a capacidade de consumir servidores MCP externos. Alto valor; o SDK TS deixa isso mais limpo que o original em Python. Parado como follow-up, ainda não conectado.
Automação completa de browserEnvolve o agent-browser read-only (browser=13 hits)Manter read-only como padrão; fundir a superfície de interação atrás de um opt-in explícito.
Autoria + telemetria de skillsCarrega skills (skill=22 hits) mas não tem autoria por agenteFundir create/edit/patch dentro de loop-engineering para que skills feitas por agente alimentem o Curator.
Verifier / mixture-of-agentsverifier-panel do council (verifier=19 hits)O quórum de N-lentes + veto do Alembic é o equivalente mais rico do MoA — mantém-se o do Alembic.
Alembic = servidor MCP read-only · MCP=8 hits dobra dentro servidor + cliente MCP também CONSOME externos uma superfície, mais rica parked (follow-up)
O cliente não vira pacote novo: dobra na superfície MCP que já existe — e fica parked até ser conectado.
CuidadoMERGE de alto valor ainda pode ser parked. O cliente MCP é um MERGE excelente, mas a matriz o marca como follow-up ainda não conectado — listar não é o mesmo que enviar.
06

ADAPT & IGNORE — o resto, justificado

ADAPT (equivalente parcial → reimplementar): session-search com FTS5, skills-hub, conceitos de kanban no swarm, blueprints de cron, transcrição em nuvem, análise de visão.

IGNORE — e a parte interessante é justamente a justificativa:

CapacidadePor que IGNORE
Delegação de subagente (delegate_tool.py, 3188 LOC)O swarm do Alembic (swarm=63 hits: orquestrador 3-tier, lead-worker, profundidade limitada, fila dependency-gated) já faz isso nativamente e melhor. Guarda-se um insight portável: na delegação assíncrona, "a conclusão reentra como um novo turno, nunca no meio do contexto".
Backends de terminal (6 contextos)A factory do Alembic já entrega docker/podman/no-sandbox + isolamento por git-worktree. Redundante.
Computer use, TTS neural local, faster-whisperStacks de ML só-Python ou fora da missão distill→venture. Difíceis de portar, sem valor para a missão.
23 adaptadores de plataformas de mensagensO Alembic é um motor interno (ADR-0001), não um gateway de assistente pessoal. Os clientes L4 são API/MCP/CLI/cockpit — não Telegram/WhatsApp.
delegate_tool.py 3188 LOC IGNORE swarm já faz (swarm=63 hits) orchestrator lead worker · leaf o insight portável que SE guarda: a conclusão reentra como NOVO turno, nunca no meio
IGNORE não é "ruim": o swarm 3-tier do Alembic já delega melhor. Guarda-se só um insight de cache-safety.
A coluna IGNORE é metade do valor. Cada linha aqui é uma recusa que mantém o Alembic um motor interno, e não um gateway de assistente pessoal. Dizer "não" com motivo é design.
07

A pedra angular: por que o loop de aprendizado fica acima de tudo

A linha mais importante da matriz

"O Alembic tem um funil de destilação e um gate de validação, mas nenhum loop fechado de auto-melhoria. O loop de aprendizado do Hermes é a peça que falta, e ele compõe com o que o Alembic já tem em vez de substituir."

O funil transforma fontes em Learnings — mas nada realimenta esses learnings de volta para o motor. O Hermes fecha esse ciclo. Dois motivos de ele encaixar tão bem:

  • Encaixa na cintura estreita. A memória vive dentro do system prompt, congelada no início da sessão — exatamente a disciplina que mantém o cache de prefixo do prompt quente. O fork de revisão herda o prompt em cache, verbatim.
  • Encaixa no pipeline de gates. O reviewer é, ele mesmo, gateável — as escritas passam pelo Validator Gate existente do Alembic antes de sedimentar. Isso dá o "aprenda só com vitórias validadas".
Encaixe 1 · cintura estreita system prompt (congelado no início) MEMORY.md · snapshot o fork de revisão herda o prompt em cache, verbatim → cache de prefixo continua quente
A memória mora dentro do prompt, congelada — não invalida o cache de prefixo.
Encaixe 2 · pipeline de gates reviewer ValidatorGate memóriadurável propõe → valida → só então sedimenta → aprende só com vitórias validadas
Escritas duráveis atravessam o Validator Gate antes de sedimentar: nada entra sem validação.
Três faixas: Alembic hoje (SOURCE → distill → Learnings, sem realimentação), o Hermes adiciona (fork de revisão → memória e skills duráveis) e o resultado fundido (distill → Learnings → snapshot com gate mantido limpo pelo curator → o próximo run fica mais esperto).

Hoje + Hermes = o loop fechado fundido. O reviewer propõe; o Validator dispõe; o curator mantém limpo.

Alembic hoje: SOURCE distill (T0–T3) Learnings ⊘ sem realimentação O Hermes adiciona: após o run → fork de revisão memória + skills duráveis Fundido: distill → Learnings (com gate) snapshot memória/skillso curator mantém limpo o próximo run é mais esperto
Três faixas: o que existe, o que o Hermes acrescenta e o ciclo fundido onde cada run fica mais esperto.
CLONE no papel, ADAPT no envio. A matriz listou o loop de aprendizado como CLONE, mas ele foi enviado como ADAPT (ADR-0018): não existe um AIAgent em Python para forquilhar como daemon thread, e auto-escrever burlaria o Validator Gate. Então o reviewer propõe e o Validator do Alembic dispõe. Essa nuance é a Lição 4.

Por que a disposição mudou entre o plano e o código

O original do Hermes forquilha o próprio loop do agente como uma thread em background depois do run. No Alembic não há esse objeto AIAgent para forquilhar — a arquitetura é diferente. Portar "de perto" (CLONE) seria importar uma forma que não existe aqui.

Pior: deixar o reviewer escrever direto na memória/skills passaria por cima do Validator Gate, violando a invariante de que escritas duráveis são validadas. A solução (ADR-0018) separa os papéis: o reviewer propõe um patch; o Validator Gate dispõe (aprova/rejeita) antes de sedimentar. Resultado: "aprende só com vitórias validadas". É por isso que o veredicto correto, no código, é ADAPT — não CLONE.

08

Experimente — classifique a capacidade

Você é o arquiteto agora. Para cada capacidade do Hermes abaixo, escolha o verbo. O painel diz se acertou e por quê — com a evidência da matriz.

Exemplo resolvido — passo a passo
1
Capacidade: "Memória em arquivo (snapshot congelado)".
2
Q1 — já existe no Alembic? Quase não: o mapa mostra memory=1 hit incidental, sem pacote de memória. → praticamente inédito.
3
Q2 — é valiosa / inédita? Sim, e é fundamental para o loop de aprendizado.
4
Veredicto: inédito + valioso → CLONE. Vai para @alembic/hermes → memory/.
5
Agora você: use o classificador abaixo para fazer o mesmo com delegação de subagente, cliente MCP e session-search. Decida o verbo antes de tocar o botão.
Delegação de subagente
delegate_tool.py · 3188 LOC
Capacidade 1 / 4
Por baixoO classificador é puro HTML/JS desta página — cada veredicto e sua justificativa vêm direto das tabelas que você acabou de ler. Nada aqui chama rede.
09

Confusões comuns

"A matriz é uma lista de desejos de features." Não — é tanto uma ferramenta de poda quanto de construção. Metade do valor está na coluna IGNORE: cada item é uma recusa justificada que mantém o Alembic um motor interno, e não um gateway de assistente pessoal.
"CLONE quer dizer copiar-e-colar o Python." Não — CLONE é portar o design de perto, adaptando aos tipos e invariantes do Alembic (Result, FsPort, Zod). E um veredicto pode mudar entre plano e envio: o loop de aprendizado foi CLONE → ADAPT por razões de princípio.
Poda é auditável. Cada IGNORE cita a evidência que a torna segura: swarm=63 hits contra delegate_tool.py; a factory contra os backends de terminal; ADR-0001 (motor interno) contra os 23 adaptadores de mensagens. A recusa é tão ancorada quanto a construção.
O veredicto é uma decisão de design, não um rótulo fixo. CLONE→ADAPT do loop (ADR-0018) mostra que a matriz é o plano; o ADR registra o envio. Quando a forma da arquitetura ou uma invariante (passar pelo Validator Gate) exige, o verbo muda — e o motivo fica escrito.
CLONE na matriz (o plano) sem AIAgent p/ forquilhar + não burlar o Validator Gate ADAPT no envio (ADR-0018)
O mesmo item, dois momentos: o plano dizia CLONE; o envio, por princípio, registrou ADAPT.
10

Recapitulando

Recap 1 de 5

Duas perguntas, um veredicto

Q1: o Alembic já tem? Q2: a versão do Hermes é melhor/inédita? Ambas respondidas contra um mapa verificado (contagens de hits) — nunca de memória.

Q1 + Q2verboverbo
1

Recap 2 de 5

Quatro verbos, uma regra cada

CLONE inédito → portar de perto · ADAPT parcial → reimplementar · MERGE superfície afim → fundir nela · IGNORE já tão bom / fora de escopo → recusar com motivo.

CLONEADAPTMERGEIGNORE
2

Recap 3 de 5

IGNORE é metade do valor

Delegação (swarm=63), backends de terminal (factory), ML só-Python e 23 adaptadores de mensagens (ADR-0001) são recusas justificadas — poda que mantém o Alembic um motor interno.

recusamotor internofoco preservadocada NÃOtem motivo
3

Recap 4 de 5

O loop é a pedra angular

O Alembic destila em Learnings mas não realimenta o motor. O loop do Hermes fecha o ciclo — e compõe com o funil (cintura estreita) e o gate (escritas gateáveis) em vez de substituir.

distill → Learnings→ memória/skills (com gate)→ próximo run mais esperto ↺
4

Recap 5 de 5

O veredicto pode mudar

O loop era CLONE no papel, virou ADAPT no envio (ADR-0018): sem AIAgent para forquilhar e para não burlar o Validator Gate. O reviewer propõe, o Validator dispõe.

reviewerpropõe →Validator Gatedispõe
5
Slide 1 / 5 Use
Em uma frase, para você mesmo: "A matriz decide cada capacidade por ____ e ____; os quatro verbos são ____; e o ____ é a pedra angular porque fecha um ciclo que o Alembic não tinha." Se você preenche as quatro lacunas, está pronto para a Lição 4.
11

Verifique

Revisão cumulativa

Três perguntas. O placar conta abaixo.

1. delegate_tool.py (delegação de subagente, 3188 LOC) recebe IGNORE. Por quê?
Correto: c. A matriz cita swarm=63 hits — um orquestrador 3-tier com lead-worker, profundidade limitada e fila dependency-gated. IGNORE aqui é "já tão bom ou melhor", não "fora de escopo". Um insight portável é guardado: a conclusão reentra como um novo turno, nunca no meio do contexto.
2. Por que o cliente MCP é um MERGE e não um CLONE?
Correto: b. O Alembic se expõe via MCP (servidor, read-only) mas não consegue consumir servidores MCP externos. O cliente dobra dentro dessa superfície existente — um MERGE. É de alto valor, mas parked como follow-up ainda não conectado.
3. O que faz do loop de aprendizado a pedra angular de toda a matriz?
Correto: d. O Alembic destilava em Learnings mas não tinha caminho de volta para o motor. O loop acrescenta exatamente isso, encaixa na cintura estreita (memória congelada no prompt) e no pipeline de gates (escritas gateáveis) — composição, não substituição.
Acertos: 0/3
As cinco linhas que você leva desta lição
  1. A matriz é uma planilha de decisões justificadas, não uma lista de desejos.
  2. Cada capacidade passa por duas perguntas, ambas contra um mapa verificado.
  3. Quatro verbos: CLONE (portar) · ADAPT (refazer) · MERGE (encaixar) · IGNORE (recusar com motivo).
  4. A coluna IGNORE vale tanto quanto construir — é poda que mantém o foco do motor.
  5. O loop de aprendizado é a pedra angular e foi CLONE→ADAPT (o reviewer propõe, o Validator dispõe).
Pergunta para levar à Lição 4: se o reviewer apenas propõe e o Validator dispõe, como uma proposta vira memória durável sem burlar o gate — e o que acontece com uma proposta rejeitada? É o loop fechado, em detalhe.