Trabalhando com agentes
Agora, desenvolvedores escrevem muito código com agentes. Em vez de digitar cada linha à mão, eles conversam com um agente e pedem que ele escreva o código.
No curso Foundations, aprendemos o funcionamento básico dos agentes: forneça ferramentas poderosas e deixe que eles as utilizem de forma autônoma em um loop. Neste curso, abordaremos estratégias para trabalhar de forma eficaz com agentes de programação ao desenvolver software.
O que é um harness de agente?
O Cherri Code é um Editor com IA e um agente de programação integrado. O agente é executado dentro de um "harness", composto por três elementos:
- Instruções: o prompt do sistema e as regras que orientam o comportamento
- Ferramentas: edição de arquivos, busca na base de código, execução no terminal e muito mais
- Modelo: o modelo de agente escolhido para a tarefa
Agentes de programação ajudam você a realizar tarefas com base nos objetivos definidos. Cada harness apresenta um comportamento um pouco diferente, dependendo de como é ajustado e dos modelos usados.
Alguns modelos são treinados para executar comandos de shell com mais frequência. Outros precisam de instruções mais explícitas. Com o Cherri Code, nosso objetivo é oferecer suporte a todos os modelos de ponta e otimizar o harness o máximo possível, incluindo as ferramentas às quais têm acesso.
Como escrever prompts eficazes
O primeiro passo para trabalhar com agentes é o prompt que você fornece a eles. Considere duas abordagens diferentes:
O agente precisou adivinhar tudo: o layout desejado, os componentes, a abordagem de estilização e muito mais. Às vezes isso funciona, mas muitas vezes é preciso ser mais específico sobre sua intenção.
Compare com um prompt mais detalhado que faz referência a padrões existentes na sua base de código:
O segundo prompt é muito melhor porque fornece ao agente instruções específicas baseadas na sua base de código: arquivos existentes, componentes e limites claros de escopo. O agente segue seus padrões em vez de inventar novos.
Falaremos mais sobre isso quando aprendermos a criar novas funcionalidades e a planejar alterações maiores em vários arquivos.
Qual abordagem proporciona os melhores resultados aos agentes?
Gerenciando seu contexto
Ao trabalhar com um agente, sua conversa acumula contexto: mensagens, chamadas de ferramenta, conteúdo de arquivos e muito mais. Esse contexto é a memória de trabalho do agente e tem limitações.
Fique atento à quantidade de contexto que o agente está usando. Inicie uma nova conversa ao mudar para uma nova tarefa ou se perceber que o agente está cometendo erros.
Se você ainda estiver trabalhando na mesma funcionalidade e o agente tiver contexto útil de mensagens anteriores, vale a pena continuar a conversa. Mas, se o agente continuar andando em círculos, comece uma nova conversa mesmo que esteja no meio da funcionalidade. Você pode referenciar a conversa anterior para permitir que o agente leia a transcrição do chat.
Os modelos mais recentes estão cada vez melhores em encontrar contexto para você. Com a busca na base de código, o agente pode buscar arquivos relevantes conforme necessário. Se você souber qual é o arquivo exato, marque-o. Caso contrário, forneça ao agente uma descrição geral e deixe que ele encontre os arquivos certos.
Padrão comum de falha: expansão de escopo
Um dos erros mais comuns é pedir uma alteração grande demais sem planejamento. Você pode perceber o agente fazendo alterações não relacionadas, editando arquivos que você não queria ou perdendo o foco.
Se isso acontecer, pare e considere dividir a tarefa em partes menores. Se estiver planejando uma funcionalidade ambiciosa, veremos como criar planos e especificações sólidos em criando funcionalidades. Depois de ter esse plano e iniciar a primeira conversa, geralmente é mais rápido iterar em conversas de acompanhamento menores.
A seguir
Você aprendeu como os harnesses de agente funcionam, como criar prompts eficazes e como gerenciar seu contexto. No próximo capítulo, vamos nos aprofundar em como os agentes exploram sua base de código e ajudam você a entender melhor o código e a arquitetura com que está trabalhando.