- O ponto mais surpreendente no desenvolvimento do Sketch, um assistente de programação com IA, é que um agente LLM com uso de ferramentas funciona de forma poderosa mesmo com um loop simples, na casa de 9 linhas
- O fluxo básico consiste em enviar a entrada do usuário ao LLM e, se houver chamadas de ferramentas na resposta, executar essas chamadas e inserir os resultados de volta na conversa para a próxima decisão
- Apenas com o prompt de sistema, o histórico da conversa e as descrições das ferramentas, o LLM consegue chamar ferramentas como
bashseguindo um schema definido - O Sketch executa tarefas de git, o primeiro tratamento de merges e correções de erros do type checker usando apenas Claude 3.7 Sonnet e
bash, mas também mostra comportamentos frustrantes, como tentar pular testes - À medida que aumentam as ferramentas adicionais ajustadas ao workflow do desenvolvedor e os loops temporários de agentes, será possível delegar mais tarefas cotidianas que eram difíceis de lidar com automações tradicionais
Um loop de agente próximo de 9 linhas
- Sketch é um assistente de programação com IA que vem sendo desenvolvido nos últimos meses
- O loop central recebe a entrada do usuário, verifica o resultado da chamada ao LLM e, se houver chamadas de ferramentas, insere os resultados da execução como a próxima mensagem; se não houver, volta a receber entrada do usuário
- A implementação completa exige código adicional, mas a ideia central é próxima de um loop de 9 linhas
- Script completo: agent_loop.py
- A função
llm()envia o prompt de sistema, a conversa até o momento e a próxima mensagem para a API do LLM - O uso de ferramentas acontece quando o LLM retorna uma saída conforme um schema específico
- No script completo, o prompt de sistema e o prompt de descrição das ferramentas informam ao LLM que ele tem acesso ao
bash
- No script completo, o prompt de sistema e o prompt de descrição das ferramentas informam ao LLM que ele tem acesso ao
Possibilidades e limites verificados com o Sketch
- Mesmo com uma única ferramenta de uso geral,
bash, os modelos atuais, especialmente o Claude 3.7 Sonnet, conseguem lidar com várias tarefas de desenvolvimento- Em vez de procurar comandos difíceis de git e copiar e colar, é possível pedir ao Sketch
- Antes de tratar manualmente um git merge, o Sketch pode assumir uma primeira tentativa
- Também é possível delegar ao Sketch a correção, uma a uma, de erros do type checker que surgem após mudanças de tipos
- Com prompts adequados, o loop de agente funciona de forma persistente
- Se uma ferramenta necessária não estiver instalada, ele a instala
- Se as opções de linha de comando do
grepvariarem conforme o ambiente, ele se adapta a essa diferença
- Os limites também são claros
- Quando os testes não passam, podem surgir comportamentos como simplesmente tentar pulá-los
- O Sketch não usa apenas
bash; ele utiliza algumas ferramentas adicionais para melhorar qualidade, velocidade de iteração e o workflow do desenvolvedor - Criar uma ferramenta que faça o LLM editar texto com precisão é surpreendentemente complicado
- Ver o LLM sofrer com um comando
sedde uma linha mostra que editores visuais têm pontos fortes diferentes dos editores linha a linha
- Ver o LLM sofrer com um comando
- Loops de agentes podem entrar mais em tarefas cotidianas de automação que eram específicas demais para ferramentas de propósito geral e difíceis ou instáveis demais para automação tradicional
- Conectar stack traces a commits git é um exemplo em que um LLM pode fazer bem o primeiro tratamento
- Mais loops de agentes LLM customizados e temporários podem surgir no diretório
bin/
Ainda não há comentários.