Aqui, no TechBlog, temos falado sobre Inteligência Artificial no ecossistema Salesforce e, neste artigo, vamos apresentar mais uma ferramenta de IA da plataforma: o Agentforce for Developers. Nos últimos dias, estamos testando essa ferramenta no CoE Salesforce da SysMap e, agora, vamos compartilhar a nossa experiência. Contextualizando, o Agentforce for Developers é uma ferramenta, em fase experimental de desenvolvimento, impulsionada por IA, disponível como uma extensão para o Visual Studio Code. Construído usando os modelos de IA personalizados CodeGen e xGen-Code da Salesforce, o Agentforce for Developers não usa dados de clientes para treinar seu LLM. É semelhante ao GitHub Copilot nas suas funcionalidades, porém usando um modelo próprio da Salesforce. 

O que o Agentforce for Developers pode fazer?

Use o Agentforce for Developers para aprimorar sua produtividade como desenvolvedor:

  • Converse com o Dev Assistant para obter ajuda com suas tarefas de programação;
  • Use o recurso de preenchimento automático de código inline para obter conclusões para códigos Apex e LWC (JS, CSS e HTML);
  • Gere unidade de testes Apex para seu código e melhore sua cobertura de código.

Como instalar

Antes de iniciar, é necessário realizar a instalação dos seguintes componentes:

Feito isso, abra o VS Code e configure:

  1. Selecione File | Preferences | Settings (Windows or Linux) ou Code | Settings | Settings (macOS);
  2. Procure por salesforcedx-vscode-core.telemetry.enabled para confirmar que a configuração de telemetria está ativa no seu Workspace. Ative-a caso esteja desativada;
  3. Procure por telemetry, depois escolha all a partir do menu para as configurações Telemetry: Telemetry Level;
  4. Abra um terminal e execute sf config set disable-telemetry=false –global para ativar a telemetria CLI;
  5. Aperte Command+Shift+P no Mac ou Ctrl+Shift+P no Windows para abrir a Command Palette, e execute Developer: Reload Window.

Agora é hora de instalar as extensões no VSCode:

  • Apex;
  • Salesforce CLI Integration;
  • Salesforce Extension Pack (Expanded);
  • Agentforce for Developers.

Após finalizar, dê um >Developer: Reload Window na paleta de comando para atualizar o VS Code e garanta que está usando a versão mais recente da CLI por meio do comando sf update no terminal. 

Também no terminal, faça o login na org desejada: sf org login web –instance-url [URL DA ORG] –set-default. E crie um projeto com a opção manifest pela paleta de comando.



Na sequência, selecione a opção Standard.


Aguarde alguns minutos para que sejam carregadas todas as pastas e arquivos relacionados. Verifique se a lista de comandos que iniciam com
SFDX: está completa. Na sequência, solicite o retrieve do código, clicando com o botão direito no arquivo “package.xml”.


Esta etapa é a mais demorada, pode levar entre 5 e 10 minutos para carregar todos os arquivos relacionados.

Agora você consegue usar o Dev Assistant no menu à esquerda. É possível usar os seguintes comandos para facilitar a conversação: /explain; /test e /document.


Uma vez realizadas as alterações de códigos, a subida pode ser realizada clicando com o botão direito + Ctrl sobre os arquivos alterados:


As vantagens

A Inteligência Artificial, especialmente os Modelos de Linguagem de Grande Escala (LLMs), é projetada para trabalhar bem na identificação de padrões. Na nossa experiência, a ferramenta realmente auxilia na geração de código LWC e Apex. É uma ferramenta valiosa para sugestões de código e aceleração do desenvolvimento. Os maiores benefícios que notamos:

  • Explicação do código
    A IA pode ser de grande ajuda para ajudar os desenvolvedores a entenderem, de forma mais rápida, uma base de código existente. Mesmo que a explicação não seja 100% correta, ainda pode fornecer orientações valiosas.
  • Identificação de código mal otimizado
    Ferramentas de IA podem rapidamente escanear grandes bases de código e identificar ineficiências comuns. Ao sinalizar esses problemas, a IA ajuda a priorizar áreas para refatoração e reduz o tempo gasto em revisões manuais de código.
  • Automatização de tarefas repetitivas
    A IA pode lidar com tarefas rotineiras de refatoração, como renomeação de variáveis, simplificação de condicionais ou extração de métodos. Essas mudanças repetitivas podem consumir tempo dos desenvolvedores, mas a IA pode automatizá-las, permitindo que a equipe se concentre em tarefas mais complexas. 
 

Obstáculos

No entanto, é importante notar que o código gerado pela IA pode precisar de ajustes para atender aos padrões de qualidade. No geral, em comparação com a ferramenta do GitHub Copilot, o Agentforce for Developers apresentou mais erros. E por mais que desejemos que a IA resolva todos os nossos problemas de codificação, a realidade, por enquanto, é que há desafios a serem ultrapassados, como:

  • Contexto
    A IA generativa pode ter dificuldades em entender o contexto, o que pode levar a sugestões que não se alinham totalmente com o que está disponível na base de código. Por exemplo, a IA pode sugerir métodos e classes Apex que não existem, tentar consultar objetos e campos que não foram criados ou tentar invocar funções JavaScript que não foram escritas.
  • Imprecisões de código
    JavaScript (a linguagem na qual se baseia o LWC) é particularmente desafiadora de refatorar devido às sutilezas de sua sintaxe. Alguns padrões comuns que notamos em relação ao modo como a IA trata de LWC: inverter a lógica booleana (por exemplo, a “&& b” se torna “!(a && b)”), refatorar incorretamente o código com a expressão “this” ao mover o código para uma função separada, fazendo com que “this” perca seu contexto original ou até a eliminação de branches inteiros.
  • Riscos de Segurança e Propriedade Intelectual
    O código gerado por IA pode introduzir problemas de segurança ou riscos de propriedade intelectual que podem não ser imediatamente aparentes. Por exemplo, a IA pode sugerir eliminar blocos inteiros de “if”. Esse tipo de bug poderia se tornar uma ameaça à segurança se, por exemplo, inputs de validação de entrada importantes forem removidos.
  • Testes gerados por IA
    Escrever casos de teste é, muitas vezes, uma das tarefas menos apreciados pelos desenvolvedores. O desenvolvimento orientado a testes é considerado uma boa prática e é tentador pedir para a IA escrever os testes para nós, mas isso é arriscado. O mesmo LLM que produziu um output errado pode muito bem produzir testes errados. A IA pode ajudar a iniciar alguns dados de teste e sugerir diferentes cenários de teste, mas será necessário um humano verificar se o teste é válido.

    Agentforce


Aqui estão algumas recomendações para melhores práticas com esta ferramenta:

  • Combine ferramentas tradicionais com o Agentforce:
    Ferramentas como linters combinadas com o Agentforce podem ajudar a identificar possíveis problemas desde cedo e garantir a conformidade com os padrões de codificação. Linters são ferramentas tradicionais de verificação de código que analisam o código-fonte estático para detectar e sinalizar problemas que podem levar a bugs, vulnerabilidades ou gargalos.
  • Revisões de código regulares:
    Revisões regulares de código feitas por humanos são essenciais para manter sua qualidade e garantir que todos na equipe estejam familiarizados com a base de código, independentemente de uma IA ter ajudado a gerá-lo.
  • Monitore KPI’s:
    Fique de olho na taxa de crescimento do código e no tempo de depuração. Se algum deles começar a aumentar, isso pode ser um sinal de que o código gerado pela IA está introduzindo complexidade ou problemas desnecessários.