Conheça o Dirge: O Agente de IA em Rust que Nunca Esquece Nada

Conheça o Dirge: O Agente de IA em Rust que Nunca Esquece Nada

Jun 18, 2026 ai coding agent rust developer tools ai-assisted development terminal tools machine learning software development productivity tools

Dirge: O Agente de Codificação que Realmente Lembra de Você

Vamos ser sinceros: a maioria dos agentes de IA para programação parece contratar um novo desenvolvedor a cada sessão. Eles chegam, fazem algum trabalho, e esquecem tudo no momento em que a conversa termina. Você fica explicando o mesmo projeto, as mesmas preferências, os mesmos padrões — repetidamente. É exaustivo. E francamente, um desperdício de tempo.

É exatamente esse problema que o Dirge quer resolver. Este agente de codificação em Rust nativo não é apenas mais um wrapper sobre um LLM — é um sistema pensado para tratar contexto como algo que vale a pena preservar.

Nascido no Rust, Construído para Velocidade

Uma das primeiras coisas que chama atenção no Dirge é sua pegada. Estamos falando de cerca de 8MB de RAM em repouso, um binário de 36MB, e zero dependências de runtime. Só isso. Compare com alternativas baseadas em Electron que devoram gigabytes da sua RAM antes mesmo de você escrever uma linha de código.

Isso importa porque ferramentas de IA para programação não deveriam ser divas. Elas devem ser discretas, eficientes, e estar prontas quando você precisa — não feras famintas que destroem o desempenho da sua máquina no instante em que você abre o terminal.

A interface TUI focada em terminal (construída com ratatui e crossterm) mantém tudo leve e orientado por teclado. Você tem streaming de tokens em tempo real, uma árvore de sessões com ramificações para rastrear seu histórico de conversas, e painéis de informação configuráveis. É a interface que desenvolvedores realmente querem: rápida, rica em informações, e sem mouse.

Um Agente Que Não Entra em Pânico

Aqui é onde o Dirge fica interessante. O loop do agente não é apenas "envia prompt, recebe resposta, executa ferramentas". Ele é projetado para lidar com a realidade.

Modelos têm alucinações em chamadas de ferramentas. Produzem JSON malformado. Interpretram caminhos incorretamente. Agentes comuns desmoronam nessas situações — ou travam, ou entram em loop infinito, ou geram porcaria que você tem que limpar manualmente. O Dirge repara chamadas de ferramentas malformadas, valida cada escrita de arquivo através de tree-sitter antes de tocar o disco, e tem disjuntores para loops repetitivos.

Mas o recurso killer? Quando um modelo continua falhando, o Dirge não desiste simplesmente. Ele injeta um checkpoint de recuperação, sugere o que o modelo provavelmente quis dizer (a ferramenta ou caminho), e se isso não funcionar, escala automaticamente para um modelo mais forte. É a diferença entre um agente que se espanca contra uma parede e um que realmente termina o serviço.

Memória que Persiste

O nome "dirge" é adequado. Caso você não conheça, um dirge é uma canção cantada para guiar os mortos — para impedir que eles percam o caminho. No contexto de agentes de IA, é exatamente isso que o Dirge faz com o contexto do seu projeto.

O Dirge implementa um sistema de memória de dois níveis. O nível hot mantém fatos inline onde o modelo pode acessá-los imediatamente. O resto vai para um índice de migalhas pesquisável. E há um nível global entre projetos para suas preferências pessoais — o jeito que você formata código, seus padrões preferidos, seus grievances. Isso persiste entre sessões, entre projetos.

Entre sessões, um orquestrador pós-sessão extrai aprendizados e curadoria de memória e habilidades. Então se você passou 20 minutos depurando um problema tricky de lifetime em Rust com um padrão específico, o Dirge lembra disso. Na próxima vez que você enfrentar algo similar, ele tem contexto.

Sessões de longo prazo usam checkpoints duráveis e incrementais ancorados a uma identidade estável. Retomar uma sessão compactada recupera seu estado vivo — não um snapshot obsoleto. Se você já tentou retomar uma tarefa de programação de uma semana atrás e gastou 30 minutos se reorientando, vai entender por que isso importa.

Roteamento Inteligente e Suporte Multi-Provedor

O Dirge não te prende a um único provedor de IA. Ele suporta OpenAI, Anthropic, DeepSeek, Gemini, Ollama, OpenRouter, e GLM — além de qualquer endpoint compatível com OpenAI. OpenRouter é o padrão, o que significa que funciona de cara para a maioria dos usuários.

Mas aqui está a parte sofisticada: você pode rotear diferentes tarefas para diferentes modelos. O loop principal, revisão, escalação, sumarização, e papéis de subagente podem cada um apontar para modelos diferentes. Quer usar um modelo barato e rápido para edições rotineiras mas escalar para algo mais robusto em refatorações complexas? O Dirge torna essa configuração trivial.

Segurança Sem Compromisso

O Dirge leva segurança a sério com um motor de permissões unificado — um Policy Decision Point com quatro modos, regras baseadas em operações, e allowlists de sessão. O comando /why rastreia exatamente qual política fez uma decisão e por quê. Sem caixas pretas.

Para os paranóicos (e você deveria ser paranóico), há o modo sandbox. Execute comandos bash em isolamento usando bubblewrap para uma prisão com namespaced, ou aproveite microVMs libkrun isoladas por hardware. Defesa em profundidade em cima do motor de permissões.

Construído para Desenvolvimento Sério

Além do loop central do agente, o Dirge traz recursos que desenvolvedores sérios precisam:

O workflow de planejamento em fases executa explore → plan → implement → review como fases isoladas de contexto. Um agente somente-leitura mapeia o código, um segundo rascunha o plano, então um revisor com escrita desabilitada executa o código e alimenta lacunas de volta para uma retry limitada. É como ter uma revisão arquitetural integrada ao seu fluxo.

O workflow orientado por spec rastreia mudanças como linhas no SQLite (não arquivos markdown frágeis). Propostas, deltas de requisitos, e checklists de tarefas com status real — a mudança ativa é sempre injetada no contexto, e arquivar forma uma memória durável.

Inteligência de código vem da integração com tree-sitter, com diagnósticos LSP inline para mais de 10 linguagens exibidos diretamente na saída de ferramentas para que o agente conserte erros de compilação na mesma rodada. Adeus loops de "tenta essa correção... build falha... tenta de novo".

E se você precisar depurar? O Dirge tem um cliente Debug Adapter Protocol integrado que controla debuggers reais — defina breakpoints, caminhe pelo código, inspecione stacks e variáveis — direto do loop do agente.

Extensível por Design

O sistema de plugins Janet conecta todo o ciclo de vida: intercepte ferramentas, reescreva prompts, registre comandos. Há também skills compatíveis com Claude carregadas sob demanda. E suporte MCP/ACP significa que o Dirge pode ser tanto provedor quanto consumidor de ferramentas — você poderia ter o Claude Code delegando tarefas de implementação para o Dirge e revisando os resultados, por exemplo.

O Veredito

O Dirge não está tentando ser a ferramenta de IA para programação mais chamativa. Está tentando ser a mais confiável. A persistência de memória, a recuperação de erros, o I/O eficiente em tokens (arquivos são lidos como esqueletos quando possível, saídas grandes demais são relayadas para disco com resumos), a flexibilidade multi-provedor — tudo isso se soma a um agente que realmente trabalha com você ao longo do tempo em vez de resetar cada sessão.

Para desenvolvedores cansados de começar do zero, startups que precisam de assistência de IA consistente sem lock-in de fornecedor, e qualquer um que já se queimou com uma IA que esqueceu tudo importante — o Dirge merece uma olhada.

Instale com uma linha do crates.io (cargo install dirge-agent), configure uma chave de API, e comece a programar. É simples assim.

O dirge fúnebre era uma canção para lembrar os mortos. Dirge, o agente de codificação, é um sistema para garantir que sua IA nunca esqueça o que vocês construíram juntos.

Read in other languages:

RU BG EL CS UZ TR SV FI RO PL NB NL HU IT FR ES DE DA ZH-HANS EN