Sobre o projeto

Longe é um harness autoaperfeiçoável para qualquer LLM, distribuído como binário único, escrito em Rust. Construído com base nas ideias das palestras do YC Harness Club (2026), ele trata os pesos do modelo como o motor e o runtime como o carro, transformando um modelo de pesos fixos em um agente persistente. Arquitetura: o Longe executa um daemon em segundo plano (`longed`) que gerencia uma árvore de sessões. Cada sessão tem um histórico, um estado de REPL Lua 5.4, uma sandbox e um orçamento configurável. A hierarquia de memória tem três níveis: L1 é a janela de contexto do modelo (com compactação automática em 70%); L2 é o REPL Lua persistente, onde as variáveis sobrevivem entre turnos; L3 é um armazenamento de arquivos versionado com git que guarda habilidades, memória, prompts, especificações de subagentes e trajetórias. O modelo vê apenas uma ferramenta: `exec(code)`, que executa código Lua. Bindings nativos dentro da VM Lua expõem entrada/saída de arquivos (confinada ao workspace), comandos de shell (sandboxados via Seatbelt no macOS, Landlock no Linux, tokens restritos no Windows), manipulação de memória, operações CRUD de habilidades e subagentes, edição de prompts, consultas LLM recursivas sem estado, troca de modelo entre provedores, compactação de contexto, verificação externa e uma chamada `done()` que é recusada até que um orçamento mínimo e um verificador sejam aprovados. Provedores: APIs compatíveis com Anthropic, OpenAI (incluindo DeepSeek, OpenRouter) e Ollama para modelos locais. O modelo pode trocar de provedor no meio da sessão sem perder estado, permitindo que um modelo local barato lide com trabalho rotineiro enquanto uma API de fronteira lida com etapas mais complexas. Subagentes: Sessões persistentes que são finalizadas, ficam ociosas na RAM, são transferidas para o disco e ativadas por mensagens. Pais, filhos e irmãos se comunicam por meio de um barramento de mensagens que compartilha contexto diretamente. Sandbox: Três modos (somente leitura, gravação no workspace, acesso total). Regras fixas sempre ocultam o armazenamento, a pasta ~/.ssh, credenciais, arquivos .env e o próprio binário. Segredos são removidos do ambiente; a rede é negada a menos que seja configurada. Orçamento: Um piso antes de ser um teto. A chamada `done()` é recusada antes de `min_seconds` e `min_turns`; saída limpa forçada ao atingir `max_turns`/`max_tokens`. Reflexão: Após cada conclusão aceita (e em agendamentos cron), o runtime condensa a trajetória completa e pede a um modelo que proponha alterações para habilidades, memória, especificações de subagentes, prompt e configuração. As alterações são aplicadas a uma branch git, um comando de fitness é reexecutado e a branch é mesclada apenas se a pontuação não cair, ou mantida para revisão humana no cockpit. Cockpit: Uma TUI (`longe cockpit`) exibe a árvore de sessões, o orçamento, o estado do verificador, o final da trajetória e as alterações de reflexão pendentes. Uma superfície HTTP JSON na porta 7878 permite acesso remoto, por exemplo via Tailscale. Compilação: `cargo build --release` (Rust 1.85+, sem código unsafe). Os testes incluem 91 casos unitários e de ponta a ponta executados por um servidor de modelo falso scriptado. Licença: MIT. Repositório: edouard-claude/longe.