Sobre o projeto
Adrastea é um projeto Python com licença MIT (3.10+) que propõe uma arquitetura de "motor dual simbiótico" para orquestração autônoma de tarefas. Sua ideia central é dividir o trabalho entre uma camada de execução previsível e uma camada de raciocínio que intervém apenas quando algo dá errado.
**System Alpha — motor de execução determinística**
O Alpha é descrito como o processo hospedeiro que inicia primeiro. Ele gerencia o ciclo de vida e o bootstrap, verificando e estabilizando seu ambiente antes de gerar o Beta. Suas responsabilidades incluem um agendador de tarefas que despacha scripts locais, binários e definições de tarefas, além de um executor de programas locais que gerencia E/S padrão, registro de erros e tempos de vida de processos com ênfase em execução reprodutível.
Um planejador de RL guia as sequências de tarefas usando funções de pontuação vinculadas a resultados como latência, códigos de saída, utilização de recursos e validade de saída, e utiliza heurísticas de busca de caminho para escolher ramificações de execução com base em pesos históricos e ajustados. O Alpha também se conecta a um runtime de inferência local (Ollama em `http://127.0.0.1:11434`) para operações offline de baixo overhead, como parsing, extração de formato e análise de texto básica.
**System Beta — motor de decisão e raciocínio probabilístico**
O Beta é gerado pelo Alpha após a estabilização e atua como a camada de decisão para problemas não determinísticos. Ele monitora a telemetria do Alpha, métricas de saúde e o progresso das tarefas, intervindo quando o Alpha encontra exceções não tratadas, deriva de ambiente, estados de falha repetitivos ou loops de execução. O Beta também é responsável por ajustar os pesos de recompensa e penalidade usados pelo planejador de RL do Alpha, redirecionando efetivamente a execução para caminhos mais produtivos.
O Beta executa um loop autônomo com quatro modos declarados: idle/observe (monitoramento passivo), triage & unstick (diagnóstico de condições de bloqueio), optimize (remoção de redundâncias de caminhos de execução concluídos) e discover & innovate (hipotetização de novas sequências de tarefas e objetivos). Ele se integra com servidores Model Context Protocol (MCP) para ferramentas externas e contexto em tempo real, e pode consultar LLMs de fronteira ou externos para raciocínio profundo, decisões estratégicas, geração de código e resolução de problemas.
**Comunicação entre processos**
Alpha e Beta funcionam como processos concorrentes que se comunicam através de um canal bidirecional de baixa latência, como sockets de domínio, pipes nomeados ou um barramento de mensagens, transportando envelopes estruturados em JSON ou Protocol Buffer. Os sinais de controle documentados incluem `SIG_SPAWN`, `SIG_HEARTBEAT`, `SIG_SLEEP`, `SIG_WAKE`, `SIG_TELEMETRY`, `SIG_STUCK`, `SIG_INTERRUPT`, `SIG_DISPATCH`, `SIG_MUTATE` e `SIG_TUNE_WEIGHTS`. Juntos, eles cobrem o bootstrap do processo, pings de vitalidade, transições de sono/despertar, relatório de resultados, notificação de estado travado, aborto de tarefa, injeção de fila, mutação de parâmetros em andamento e atualizações de pesos de RL.
**Modo Keep-alive e long-sleep**
Um coordenador `KeepAliveProcess` permite que o sistema durma por períodos prolongados para reduzir o uso de CPU, memória e tokens, mantendo ativo o servidor TCP de IPC do Alpha em `127.0.0.1:8765`, canais de cliente e observadores de `DIRECTIVES.txt`. O roteamento de sinais para heartbeat, wake, sleep e dispatch visa responder rapidamente; subprocessos Beta em segundo plano e executores de tarefas permanecem supervisionados e são revividos se terminarem inesperadamente, e diretivas recebidas ou sinais de dispatch despertam o sistema imediatamente, em vez de aguardar o temporizador de sono.
**CLI**
O README documenta comandos como `python -m adrastea.cli keepalive --sleep-interval 300`, `ping`, `sleep --duration 600` e `wake`. Os pré-requisitos declarados são um servidor Ollama local (com modelos como `qwen3-coder:30b` ou modelos de instrução mais leves), configuração de cliente MCP, um runtime de execução local como PowerShell, Bash, Python ou Node, e um transporte assíncrono entre processos. Note que o README descreve a intenção arquitetural e inclui terminologia de keep-alive "rudimentar"; não são fornecidos benchmarks ou números de desempenho, portanto, os comportamentos descritos devem ser tratados como metas de design do projeto, e não como resultados medidos. Contribuições são bem-vindas via fork, feature branch e pull request contra a `main`.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.