Agora você tem dois sistemas: o motor do Alembic (Lição 1) e o Hermes Agent reconstruído por engenharia reversa (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.
A matriz não é uma lista de desejos. Cada capacidade do Hermes passou por duas perguntas, cada uma respondida contra um mapa verificado (não de memória):
docs/alembic-complete-map.md, com contagem de ocorrências no mapa e pacotes nomeados como evidência.docs/hermes-complete-map.md.A disposição decorre do par. O que não pôde ser confirmado foi marcado como [uncertain] em vez de adivinhado.
| Verbo | Quando |
|---|---|
| CLONE | Inédito no Alembic; portar o design do Hermes de perto, adaptando tipos para @alembic/*. |
| ADAPT | O Alembic tem equivalente parcial / diferente; reimplementar a ideia do Hermes no estilo do Alembic. |
| MERGE | O Alembic já tem superfície afim; dobrar a capacidade do Hermes nela — uma superfície mais rica. |
| IGNORE | O Alembic já faz tão bem ou melhor, ou está fora do escopo da missão. Sempre justificado. |
Estes não têm equivalente no Alembic (o mapa mostra zero ou ocorrências incidentais), então são portados de perto.
| Capacidade | Fonte no Hermes | Por que CLONE |
|---|---|---|
| Memória em arquivo (snapshot congelado) | memory_tool.py §3.2 (1089 LOC) | MEMORY.md/USER.md limitados, injetados como snapshot congelado no início da sessão. Fundamental para o ciclo de aprendizado. |
| Ciclo de aprendizado por auto-revisão | background_review.py §1.10 | O mecanismo "auto-aperfeiçoável" principal — a maior lacuna do Alembic. (Entregue como ADAPT; veja o destaque abaixo.) |
| Curador (ciclo de vida de skills) | curator.py + skill_usage.py §3.3 | active→stale→archived, nunca deleta. Dá controle de qualidade ao ciclo. |
| Busca / extração web | web_tools.py §3.1 (1377 LOC) | HTTP+JSON puro sobre vários backends. Reforça a camada SOURCE do funil. |
| Clarify (humano no loop) | clarify_*.py §3.7 | Perguntas estruturadas + gateway bloqueante. Vira a superfície de pergunta do portão humano T4. |
| Capacidade | Alembic hoje | Por que MERGE |
|---|---|---|
| Cliente MCP | O Alembic é um servidor MCP, somente-leitura — sem cliente (MCP=8 ocorrências) | Adicionar a capacidade de consumir servidores MCP externos. Alto valor; o SDK TS torna isso mais limpo que o original em Python. Estacionado como follow-up, ainda não conectado. |
| Automação de browser completa | encapsula agent-browser somente-leitura (browser=13 ocorrências) | Manter somente-leitura como padrão; combinar a superfície de interação atrás de opt-in explícito. |
| Autoria de skills + telemetria | carrega skills (skill=22 ocorrências) mas sem autoria pelo agente | Combinar create/edit/patch no loop-engineering para que skills criadas pelo agente alimentem o Curador. |
| Verifier / mixture-of-agents | verifier-panel do council (verifier=19 ocorrências) | O quórum de N-lentes + veto do Alembic é o equivalente mais rico do MoA — manter o do Alembic. |
ADAPT (equivalente parcial → reimplementar): session-search FTS5, skills-hub, conceitos de kanban no swarm, blueprints de cron, transcrição na nuvem, análise de visão.
IGNORE — e a justificativa é a parte interessante:
| Capacidade | Por que IGNORE |
|---|---|
Delegação a subagentes (delegate_tool.py, 3188 LOC) | O swarm do Alembic (swarm=63 ocorrências: orquestrador de 3 níveis, lead-worker, com limite de profundidade, fila com dependências) já faz isso nativamente e melhor. Mantém um insight portátil: "a conclusão re-entra 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 git-worktree. Redundante. |
| Computer use, TTS neural local, faster-whisper | Stacks ML só-Python ou fora da missão distill→venture. Difícil portar, sem valor de missão. |
| 23 adaptadores de plataformas de mensagens | O 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. |
"O Alembic tem um funil de destilação e um portão de validador, mas nenhum ciclo fechado de auto-aperfeiçoamento. O ciclo 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 ao motor. O Hermes fecha esse ciclo. Duas razões para encaixar tão bem:
AIAgent em Python para forkar como thread daemon, e auto-escrever burlaria o Validator Gate. Então o revisor propõe e o Validator do Alembic dispõe. Essa nuance é a Lição 4.delegate_tool.py (delegação a subagentes, 3188 LOC) recebe a disposição IGNORE. Por quê?swarm=63 ocorrências — orquestrador de 3 níveis com lead-worker, limites de profundidade e fila com dependências. IGNORE aqui significa "já tão bom ou melhor", não "fora de escopo". Um insight portátil ainda é mantido: a conclusão re-entra como um novo turno, nunca no meio do contexto.Result, FsPort, Zod). E uma disposição pode mudar entre o plano e a entrega: o ciclo de aprendizado foi de CLONE → ADAPT por razões fundamentadas.