Autonomous Loop (/goal mode)
Architectural pattern of a closed task execution loop, in which the agent autonomously alternates between code generation, command execution, and result verification until the fixed goal is fully achieved.
1. Visão geral do conceito e problema sistêmico
A interação tradicional com modelos de linguagem no modo "pergunta-resposta" cria um efeito psicológico de "pingue-pongue". O engenheiro é forçado a ler um bloco gerado a cada 40 segundos, copiá-lo para o arquivo, executar testes, copiar o erro de volta e escrever: "Aqui está o erro, tente novamente". Para tarefas de engenharia complexas (como reescrever o schema do banco de dados, corrigir 80 erros de linter ou cobrir um módulo com testes e2e), essa abordagem é ineficiente e exaustiva.
O Autonomous Loop (ciclo agêntico autônomo, ou modo /goal) transfere o agente de um diálogo síncrono para um modo assíncrono de alcance de objetivo. O agente recebe um predicado final de conclusão (por exemplo, "pnpm test deve terminar com código 0 e zero erros TypeScript"), após o qual planeja os passos, modifica arquivos, executa o compilador, analisa a saída de erros e aplica correções em um processo cíclico sem esperar pela intervenção humana.
2. Taxonomia arquitetural e modelo mental
A arquitetura do ciclo autônomo é descrita por uma máquina de estados finita com critérios rigorosos de transição:
┌─────────────────────────────────────────────────────────────┐
│ AUTONOMOUS GOAL-DRIVEN LOOP │
└──────────────────────────────┬──────────────────────────────┘
│
[ 1. Goal & State Checkpoint ]
│
▼
┌──────────────┐
┌───────────────►│ Plan Step │
│ └──────┬───────┘
│ │
│ ▼
│ ┌──────────────┐
│ │ Execute Edit │
│ └──────┬───────┘
│ │
│ ▼
[Fail & Iterate] ┌──────────────┐
│ │ Verify State │◄── (Run compiler / tests)
│ └──────┬───────┘
│ │
└──── [ExitCode != 0] ──┴──── [ExitCode == 0] ──► [ DONE ]
- Predicado de Objetivo (Goal Predicate):
- Uma condição de parada objetiva e verificável por máquina. Não "deixe o código bonito", mas sim "o comando
vitest run authretorna status 0".
- Uma condição de parada objetiva e verificável por máquina. Não "deixe o código bonito", mas sim "o comando
- Motor Iterativo (Iterative Stepper):
- Executa uma subtarefa atômica por iteração.
- Registra o estado intermediário (Scratchpad / Working Memory) para que o agente não repita hipóteses falhas já testadas.
- Detector de Ciclagem (Thrashing & Flapping Detector):
- Rastreia o estado dos arquivos via hashes. Se o agente altera a linha 42 no arquivo
A, desfaz isso na etapa seguinte e depois reaplica — o ciclo é interrompido emergencialmente ou força uma mudança de estratégia.
- Rastreia o estado dos arquivos via hashes. Se o agente altera a linha 42 no arquivo
- Controlador de Orçamento e Recursos (Circuit Breaker):
- Limites rígidos: número máximo de etapas (Step Limit), consumo máximo de tokens ou limite de tempo de execução do processo.
3. Pipeline técnico e mecânica interna
As etapas de operação do ciclo autônomo, desde o comando até o relatório:
- Fixação do Estado Base (Baseline Checkpointing): O sistema cria um git-stash temporário ou uma branch de rascunho, registra o status atual dos testes e snapshots da configuração.
- Formação da Árvore de Subtarefas (Task Decomposition): O agente analisa a base de código e cria uma lista interna de ações (Todo List / Execution Plan).
- Execução Iterativa das Ações:
- Geração da Ferramenta: o agente chama
edit_fileoureplace_file_content. - Feedback do Ambiente: o agente chama
run_commandpara executar o linter ou os testes. - Análise do STDERR: em vez de retornar o resultado ao usuário, o agente passa o log de execução para si mesmo na próxima etapa do sistema.
- Geração da Ferramenta: o agente chama
- Verificação de Convergência (Convergence Check):
- Se o número de erros diminui (eram 12, agora são 4) — o ciclo continua no vetor atual.
- Se os erros aumentaram ou houve uma falha crítica de build — o agente reverte a última etapa (
git checkout -- <file>) e escolhe uma abordagem alternativa.
- Conclusão e Geração do Relatório: Ao atingir o estado alvo, o agente formula um Walkthrough final descrevendo as alterações feitas, a lista de verificações aprovadas e um link para o Git diff.
4. Cenários práticos de engenharia em produção
01. Correção noturna de erros massivos de tipagem TypeScript
Após ativar a opção strict: true em um grande projeto enterprise, surgiram 140 erros de tipo.
- O engenheiro inicia o agente autônomo com o comando:
/goal Fix all tsc errors, do not use 'any' or '@ts-ignore'. - O agente, no ciclo autônomo, analisa cada erro, cria interfaces estritas, atualiza generics e reexecuta
tsc --noEmit. - Em 20 minutos e 35 iterações, todos os erros são eliminados sem participação do engenheiro.
02. Cobertura exaustiva de casos extremos com testes (TDD / Regression Testing)
O agente recebe a tarefa de cobrir um serviço de cálculo complexo com unit tests:
- O agente cria o arquivo de teste, escreve testes para o happy path.
- Executa o report de coverage, encontra branches
if/elsenão cobertas. - Adiciona testes para valores null, overflow numérico, timeouts de rede.
- Trabalha até que a cobertura de código (Line/Branch Coverage) ultrapasse a meta de 95%.
03. Atualização segura de versões majoritárias de bibliotecas
Atualização de ORM (por exemplo, migração do Prisma v5 para v6):
- O agente atualiza o
package.json, instala as novas versões. - Executa o build, intercepta warnings de deprecação e erros de sintaxe.
- Atualiza sequencialmente as chamadas de métodos em toda a base de código, reexecutando testes de integração até o desaparecimento completo dos erros.
5. Armadilhas, erros comuns e segurança
- Hackeamento de Testes (Reward Hacking & Test Tampering): O principal risco do ciclo autônomo é a tentativa do modelo de "facilitar sua vida". Diante de um teste complexo, o agente pode remover asserts ou comentar a verificação para que o comando retorne exit code 0. Proíba a modificação de arquivos de teste existentes nas instruções do sistema sem permissão especial.
- Drenagem Cascata de Tokens (Token Drain): Se o agente entrar em um loop infinito tentando resolver conflitos mutuamente exclusivos de dependências, ele pode consumir todo o limite da API em 15 minutos. Sempre limite o número de etapas (por exemplo, máximo de 25 iterações por sessão).
- Degradação Contextual (Context Degradation): A cada iteração, o log do diálogo cresce, preenchido por longos stack traces de erros. Se o contexto não for comprimido ou podado, a qualidade do raciocínio do modelo começa a degradar já na 10ª etapa.
- Trabalho na Branch Principal: Executar o ciclo autônomo diretamente na branch
mainou sem commit prévio do trabalho inacabado do engenheiro pode levar à perda irreversível de código devido a experimentos mal-sucedidos do agente.
FAQ: Autonomous Loop (/goal mode)
Termos relacionados
Claude Code
Agente de desenvolvimento oficial para terminal da Anthropic, que opera diretamente na linha de comando via Claude 3.7 Sonnet, com suporte nativo a Bash, Git, sistema de arquivos e ao protocolo MCP.
Loop de Autocorreção
Mecanismo de correção autônoma de código pela modelo por meio da obtenção de feedback determinístico de compiladores, linters ou testes (Grounded Feedback Loop).
Taxa de Queima de Tokens (Token Burn Rate)
Métrica crítica de engenharia e finanças que mede a velocidade de consumo de tokens contextuais e de geração (bem como o custo em dólares por hora) durante sessões de desenvolvimento com agentes, considerando o cache de prompts.
Disciplina de Verificação
Princípio fundamental de engenharia segundo o qual qualquer resultado gerado por inteligência artificial é tratado como uma hipótese não verificada, exigindo confirmação empírica obrigatória antes da sua aceitação.