Ariadne
O Agente Ariadne atua como a Engenheira Reversa Semântica de Lógica de Negócio dentro do ecossistema Jack-In Station. Enquanto o agente Huginn mapeia as conexões estruturais e frias do banco de dados, Ariadne desce nas entranhas do código para descobrir o porquê dessas relações existirem.
A Origem do Nome¶
Na mitologia grega, Ariadne foi a princesa que ajudou o herói Teseu a navegar pelo labirinto do Minotauro, entregando-lhe um novelo de lã (conhecido como o "fio de Ariadne") para que ele encontrasse a saída. No Jack-In Station, essa metáfora é exata: o gigantesco banco de dados legado de 1993, repleto de procedures e funções complexas, é o labirinto. O papel da Ariadne é guiar o sistema por esse labirinto, extraindo o "fio condutor" da lógica de negócio. Ela responde diretamente à pergunta: "Como essa lógica foi construída?".
O Papel de Ariadne¶
Ariadne é uma analista de regras de negócio sob demanda. Sua responsabilidade principal é transformar rotinas SQL cruas e procedurais em blocos semânticos rastreáveis, decompondo lógicas antigas em conhecimento de negócio compreensível.
Ela atua em simbiose com Huginn. Se Huginn descobre pelo dicionário de dados que a "Tabela A depende da Tabela B", Ariadne entra em ação para explicar qual é o motivo de negócio que faz A depender de B.
A regra de ouro epistemológica da Ariadne é: Ela pode levantar hipóteses, mas não pode fabricar evidências. Ela trabalha apontando a "fumaça" (possíveis lógicas de negócio), e deixa a tarefa de confirmar o "incêndio" para a auditoria humana ou para validações posteriores de Huginn.
Seu Comportamento e Arquitetura¶
O comportamento da Ariadne é altamente metódico, operando como uma agente de anatomia de código aprofundada:
1. Anatomia sob Demanda e Cache:
Ariadne não sai analisando todo o banco de dados. Ela é acionada por demanda (através do Job Board da orquestradora Rogue) quando há necessidade de significado. Ao receber a missão, ela primeiro busca em seu cache de embeddings (silver_docs.ariadne_blocks). Se a rotina já foi traduzida antes (cache hit), ela devolve o resultado instantaneamente; se for um cache miss, ela puxa o código original e inicia o processo de anatomia.
2. Navegação Controlada pelo Labirinto:
Para evitar ficar presa em loops percorrendo milhares de artefatos interligados, Ariadne obedece a uma regra estrita de profundidade (depth). Com uma profundidade inicial configurada para 1, ela analisa apenas a rotina alvo e os artefatos que se relacionam diretamente com ela. Ela não segue caminhos secundários sucessivos, focando apenas no contexto imediato.
3. Decomposição Heurística em Blocos: Ao olhar para o código legado, ela faz um "Parse Estrutural", quebrando a procedure em blocos lógicos menores (como SELECTs principais, IFs, JOINs). Para cada bloco, ela aplica uma heurística que gera uma hipótese rastreável com 5 componentes: * WHAT: O que o bloco de código faz literalmente. * WHY: A hipótese sobre qual intenção de negócio o código tenta resolver. * SIGNAL: As evidências exatas no código (filtros, tabelas, campos) que embasam sua hipótese. * AUDIT: Recomendações de como validar essa regra (ex: consultar um relatório específico ou validar com o Huginn). * RAW: O trecho exato do código SQL original que foi analisado.
4. Embeddings de Estrutura: Após extrair a regra, Ariadne gera um embedding (vetor) desse bloco. O trunfo arquitetural aqui é que o vetor não é gerado apenas a partir do código SQL, mas da estrutura interpretada (objeto + what + why + signal + audit + código). Isso garante que buscas futuras no RAG retornem resultados baseados no significado extraído do negócio, e não apenas na similaridade textual da linguagem SQL.