- Com base na experiência de desenvolvimento do Sketch, um assistente de programação com IA, o texto destaca a implementação enxuta de uma estrutura de loop que combina LLM com uso de ferramentas
- Com apenas 9 linhas de código de loop, modelos LLM modernos como o Claude 3.7 Sonnet conseguem resolver problemas reais rapidamente
- Mesmo com apenas uma ferramenta genérica como o bash, já é possível automatizar boa parte de tarefas repetitivas e trabalhosas dos desenvolvedores
- Além da resolução de problemas, conectar ferramentas adicionais pode aumentar a qualidade e a velocidade de repetição em edição de texto ou tarefas especializadas
- Há uma tendência de adoção crescente de loops de agentes LLM personalizados na automação do dia a dia dos desenvolvedores
Introdução: experiência de desenvolvimento e o projeto Sketch
- Philip Zelliger e seus colegas, ao desenvolverem o Sketch, uma ferramenta de assistência à programação baseada em IA, se surpreenderam com a alta eficiência de uma estrutura simples de loop de agente que combina LLM com uso de ferramentas
- A estrutura central consiste em apenas 9 linhas de código de loop, que enviam o prompt de sistema, o histórico da conversa e a mensagem mais recente para a API do LLM
- O LLM gera a saída e, quando necessário, retorna
tool_calls (solicitações de chamada de ferramenta)
Integração entre LLM e uso de ferramentas
- "Uso de ferramentas (tool use)" significa que o LLM retorna uma saída compatível com um esquema predefinido, e que, por meio do prompt de sistema e do prompt de descrição das ferramentas, o LLM pode acessar ferramentas genéricas como
bash
- LLMs modernos (por exemplo, o Claude 3.7 Sonnet) automatizam rapidamente vários tipos de problema mesmo com uma única ferramenta genérica, e alguns casos podem ser resolvidos até em uma única execução ("one shot")
- Antes, era preciso procurar comandos
git complexos, copiar e colar, e fazer merges manualmente; agora, basta pedir ao Sketch para resolver isso na hora
- Vários erros de verificação de tipos surgidos após mudanças de tipo também passaram a ser tratados automaticamente pelo Sketch pela primeira vez
- O loop de agente funciona de forma contínua e adaptativa, instalando ferramentas automaticamente quando necessário e se ajustando até mesmo a diferenças nas opções de comando
- Durante o uso, às vezes o LLM faz sugestões inesperadas, como "pular o teste" quando um teste falha, mas, no geral, a qualidade da automação do trabalho melhorou
Diversificação e especialização das ferramentas
- O Sketch percebeu que, além do
bash, usar ferramentas adicionais (cf. ferramentas de edição de texto) melhora a qualidade do trabalho e torna o fluxo de desenvolvimento ainda mais eficiente
- Editar texto com precisão usando
sed e afins é mais complicado do que parece para o LLM, e ferramentas no estilo de editor visual se mostraram superiores
Perspectivas futuras e mudanças no fluxo de trabalho
- A estrutura de loop de agente tende a ser usada cada vez mais em tarefas repetitivas do dia a dia dos desenvolvedores que eram difíceis de tratar com ferramentas tradicionais de automação genérica
- Como exemplo, até tarefas incômodas e repetitivas, como analisar a correlação entre stack traces e commits no git, podem ter um processamento inicial rápido feito pelo LLM
- No futuro, é de se esperar que mais loops de agentes LLM personalizados e de uso pontual passem a ser usados em ambientes como o diretório
bin/ dos desenvolvedores
- Os usuários podem preparar apenas o bearer token desejado e experimentar facilmente em seu próprio ambiente
Links de referência
1 comentários
Comentários do Hacker News
?utm_source=hn&utm_medium=browser// omitted for brevity, então não dava para usar. Desisti aí. Fico curioso se os agentes resolvem esse problema. No momento, minha impressão é que essa experiência está completamente quebrada, e me preocupa demais dar acesso a bash em um estado desses