Sockets & Regras de Conexão
Especificação de encaixe dos handles visuais do Flow Builder e regras de compatibilidade do grafo de automação.
A Hierarquia em Cruz (Sockets em Cruz)
Para evitar a poluição de fios cruzando a tela e manter a coesão arquitetural, o Flow Builder utiliza um padrão de conexões direcionais baseada nos eixos cartesianos:
{`
[ Top: Memory/Model Input ]
│
▼
[ Left: Flow Input ] ──▶ [ NODE ] ──▶ [ Right: Flow Output ]
│
▼
[ Bottom: Skill Output/Slots ]
`}
Mapeamento dos Eixos
- Eixo X (Horizontal - Fluxo de Execução):
- Left (Flow Input): Socket grande na lateral esquerda. Recebe o gatilho ou a sequência de execução do nó anterior.
- Right (Flow Output): Socket grande na lateral direita. Dispara a execução para o próximo nó do grafo.
- Eixo Y (Vertical - Dependências e Recursos):
- Top (Memory / Model): Sockets pequenos no topo de nós de agentes. Acoplam o modelo de linguagem (LLM) que o agente usará e as memórias de longo prazo (Vector Stores / RAG). Eles revelam configurações detalhadas no hover.
- Bottom (Skill slots): Sockets pequenos na base de nós de agentes. Permitem acoplar ferramentas e scripts (Skills) que o agente de IA está autorizado a disparar (ex: pesquisar na web, consultar faturamento).
Algoritmo de Validação (`areSocketsCompatible`)
O arquivo socket-definitions.ts implementa regras estritas de compatibilidade para impedir conexões inválidas no canvas:
- Regra de Ouro 1: Sockets de fluxo (eixo X) só podem conectar a sockets de fluxo. Conectar uma saída de execução a uma entrada de skill gerará erro visual imediato.
- Regra de Ouro 2: Sockets de recursos (eixo Y) são tipados e restritos a recursos compatíveis (ex: uma Skill de Web Scraper só se conecta ao slot de Skill de um Agente).
- Prevenção de Loops de Loopback: O algoritmo de validação varre recursivamente o grafo de forma bidirecional antes de aprovar a conexão, impedindo a criação de loops infinitos sem um nó de atraso (delay) ou controle de loop condicional.