Skip to main content

Command Palette

Search for a command to run...

Agentes de código

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:

  1. Instruções: o prompt do sistema e as regras que orientam o comportamento
  2. Ferramentas: edição de arquivos, busca na base de código, execução no terminal e muito mais
  3. 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:

Agent example: Prompt vago
Adicione uma página de configurações do usuário

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:

Agent example: Prompt com restrições
Adicione uma página de configurações do usuário.
Veja a página de perfil existente em Reactsrc/app/profile/page.tsx para usar nosso padrão de layout. Use os mesmos componentes de formulário de Reactsrc/components/ui/Form.tsx. As configurações devem incluir:
•Nome de exibição (campo de texto)
•Notificações por e-mail (alternância)
•Preferência de tema (menu suspenso: claro, escuro, sistema)
Armazene as configurações usando nosso hook useUserPreferences existente. Siga o mesmo padrão de rota de API de TypeScriptsrc/app/api/user/profile/route.ts.

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.

Agent example: Referenciando uma conversa anterior
Continue a refatoração de auth de Red auth refactor. Já corrigi o feedback da revisão sobre o tratamento da expiração do JWT. Agora atualize a rotação do refresh token para invalidar tokens antigos ao usá-los.

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.

Você concluiu este capítulo