Skip to main content
Voltar para Projetos

engine-rs - O Motor de Execução Nativo do Bastion

Motor de execução em Rust que roda fluxos de agentes como grafos validados, mantém o estado ao vivo em memória e grava um registro durável no Postgres.

RustMotor de FluxoValidação de GrafoIA AgênticaPostgreSQLProgramação de Sistemas

Overview

O engine-rs é a camada que de fato executa. Ele recebe um fluxo de trabalho de agentes expresso como um grafo dirigido, valida o grafo antes de executar um único nó — ciclos, nós inalcançáveis e entradas não satisfeitas são rejeitados de antemão, em vez de descobertos no meio de uma execução — e então o executa, passando um contexto tipado entre os nós. Ele é embutido, e não isolado: compila dentro do `bastion serve`, então o Console inicia uma execução no próprio processo em vez de enviar o trabalho para um serviço separado. O estado ao vivo fica em memória por velocidade, enquanto o registro durável é gravado no Postgres seguindo um contrato de dados versionado, compartilhado com o resto do stack. Essa divisão é deliberada — a cópia em memória responde 'o que está acontecendo agora' com latência interativa, e o Postgres responde 'o que aconteceu' depois que o processo termina. O motor conduz o pipeline de SDLC sobre o qual toda a prática roda: uma execução servida de `SDLC_FLOW` já rodou de ponta a ponta e produziu um veredito de revisão por modelo ao vivo sobre um diff de código real. Usar o motor para construir o motor é o teste de integração mais honesto disponível, e é por isso que os modos de falha que importam aparecem cedo. A suíte de testes é hermética — sem rede, sem banco de dados, sem chamadas a modelos — e termina em cerca de dois segundos, o que a torna utilizável como portão de pré-commit em vez de algo que se roda antes do almoço.

Technical Stack

Núcleo

  • ▸Rust
  • ▸Tokio
  • ▸serde
  • ▸Validação de grafo

Persistência

  • ▸PostgreSQL
  • ▸Contrato de dados versionado
  • ▸Registros duráveis de execução

Integração

  • ▸Embutido no `bastion serve`
  • ▸Transporte de nós
  • ▸Nós de revisão por LLM estruturada

Testes

  • ▸cargo nextest
  • ▸Suíte hermética — sem rede, sem banco, sem chamadas a modelos

Key Features

✓

Valida o grafo do fluxo antes da execução — ciclos, nós inalcançáveis e entradas não satisfeitas são rejeitados de antemão

✓

Compila dentro do `bastion serve`, então as execuções começam no próprio processo em vez de cruzar uma fronteira de serviço

✓

Mantém o estado ao vivo em memória para latência interativa e grava o registro durável no Postgres

✓

Contexto tipado passado entre nós, tornando o estado entre nós explícito em vez de ambiente

✓

Grava seguindo um contrato de dados versionado compartilhado pelo stack, então consumidores quebram de forma ruidosa e não silenciosa

✓

Conduz o pipeline de SDLC sobre o qual a própria prática roda — o motor constrói o motor

✓

Suíte de testes hermética termina em cerca de dois segundos, rápida o bastante para servir de portão de commit

Technical Challenges

▪

Decidir o que pertence à memória e o que pertence ao Postgres — a cópia em memória responde 'o que está acontecendo', o registro durável responde 'o que aconteceu'

▪

Validar um grafo com rigor suficiente para pegar erros reais sem rejeitar topologias legítimas de ramificação e junção

▪

Manter a suíte de testes hermética quando o propósito do motor é justamente chamar modelos e bancos de dados

▪

Evoluir o contrato de dados compartilhado sem quebrar o Console e o Cérebro que o leem

Project Outcomes

Execução real e servida, gerando um veredito de revisão por LLM ao vivo sobre um diff real
Execução do SDLC_FLOW
Suíte hermética, 2,2s
Suíte de testes
1.606 declarações de funções de teste em 146 arquivos (contagem de declarações, não uma execução aprovada/reprovada)
Testes