Introduzindo a anatomia de um agente de IA
Vamos agora entender como é a anatomia de um agente e quais são as partes que compõem formalmente um agente de IA, para que possamos pensar em como deverá ser elaborado nosso sistema. O importante, que nem sequer havíamos mencionado no início, quando começamos a falar de processos, IA generativa e inteligência artificial de maneira mais geral, é que, como mencionado no primeiro curso, falamos sobre os agentes. A característica principal que destacamos dos agentes, e que continua válida, é que a diferença entre um agente e um modelo de linguagem natural padrão, ou uma metodologia de inteligência artificial com redes neurais, é que o agente de IA tem a capacidade e a autonomia para atuar no ambiente, utilizando essas ferramentas em nosso lugar. Assim, ele fará mudanças em nossos sistemas e ferramentas. Essa é a característica principal que mencionamos e que continua verdadeira, mas não é suficiente para descrever tudo o que compõe o agente.
Digamos que esse é o objetivo: estamos criando uma peça de software que vai manipular e alterar um sistema ou uma ferramenta que estamos usando. Através de uma ferramenta que estamos utilizando, ele vai mudar o estado dessa ferramenta, como costumamos dizer. Por exemplo, se tínhamos um quadro no Trello com todas as tarefas na coluna "Backlog" e agora o agente foi lá e as modificou, temos tarefas na coluna "Backlog" e na coluna "Em progresso", porque ele conseguiu separar quais são as tarefas que estamos realizando, de acordo com a conversa que tivemos com ele, e mudar o estado dessas tarefas diretamente no Trello. Nesse sentido, ele tem autonomia para usar as ferramentas e realizar tarefas em nosso lugar.
Explorando as partes que compõem um agente
Mas, além disso, o que mais pode ter um agente? Se pensarmos que temos aqui no meio nosso agente, quais são as partes que o compõem? Conhecendo cada uma das partes, podemos segmentá-lo em nossa mente para entender onde podemos mudar, onde faz sentido intervir, o que pode não estar ideal e o que podemos melhorar. Com essa segmentação clara em nossa mente, será mais fácil entender como podemos modificar esse agente.
A primeira coisa que temos, o mais claro e óbvio para nós, é que todo agente de IA usa um LLM, um modelo de linguagem natural, por trás. Com LLM, referimo-nos a linguagem natural, que pode ser multimodal ou unimodal. Pode trabalhar com imagens, vídeos, textos, ou tudo isso junto, ou de forma individual. É isso que queremos dizer com modal ou multimodal.
Detalhando o uso de prompts e interação humana
Além disso, fornecemos um prompt. Colocamos nesse sistema, nessa peça que estamos montando, as instruções. Lá está o que queremos que ele faça, como queremos que se comporte, qual tom de voz queremos que tenha ao responder, e assim por diante. O prompt é outra peça. Com essas duas, ajustamos bastante, pois são muito semelhantes a quando enviamos uma mensagem a um modelo de linguagem natural, também usamos o modelo de linguagem natural com um prompt e esperamos uma resposta.
Outra coisa que o agente pode fazer é nos perguntar e manter o humano dentro desse ciclo de informação atualizado com as coisas que podemos fazer. Então, damos a ele ferramentas para que possa nos perguntar, esclarecer dúvidas, pedir permissões, e assim por diante. Esse é outro aspecto que temos dentro de um agente. Ele tem nosso modelo de linguagem natural, as instruções, e fornecemos maneiras e ferramentas para que ele decida automaticamente se precisa de uma permissão nossa, se quer resolver alguma dúvida conosco, e assim por diante. Esse ciclo humano também faz parte do agente.
Incorporando memória e ferramentas no agente
Além disso, temos a parte de memória. Um agente, à medida que a conversa avança e as interações ocorrem, vai armazenando isso em uma memória, em um local de onde possa recuperar esse contexto, entender sobre o que estávamos falando e associar as próximas perguntas que faremos com as perguntas já feitas anteriormente, com as respostas já dadas. A memória é outra característica, outro componente que temos nesse agente de IA.
Por fim, temos as ferramentas. As ferramentas são o que mencionamos anteriormente. Por exemplo, Trello, Calendário, Homespot, nossa base de Notion para consultar informações, Notion para inserir informações. Temos uma série de ferramentas que podemos fornecer para dotar o agente de sua característica principal, que é atuar em nosso lugar. Ele vai manipular essas ferramentas e mudar o estado de cada uma delas de acordo com nossa solicitação, com nosso prompt. Tudo isso faz parte do agente.
Implementando segurança com guardrails
Todo isso também deve estar envolto em uma camada de segurança que, atualmente, chamamos de guardrails (trilhos de proteção). Precisamos garantir que o sistema fará apenas o que estamos solicitando. Mesmo que os modelos de IA sejam não determinísticos e probabilísticos, o que significa que, ao dar um comando, o resultado pode variar, é importante ter salvaguardas. Mesmo que o comando seja sempre o mesmo e todas as condições sejam iguais, o resultado pode variar, assim como a forma de resposta e as palavras escolhidas.
Devido a essa característica não determinística e probabilística, é necessário implementar salvaguardas nos guardrails para garantir ou aumentar a confiança de que o sistema fará exatamente o que foi solicitado. Isso também evita que usuários abusem do agente, pedindo ações além do que ele pode realizar ou tentando explorá-lo de maneiras inadequadas. Portanto, uma camada de segurança é essencial.
Analisando e ajustando o comportamento do agente
Cada uma dessas partes compõe um agente, e a ideia é que, conhecendo essas partes, possamos resolver problemas. Durante o desenvolvimento do agente e a configuração dos especialistas, se percebermos que ele não está atuando conforme desejado, podemos analisar cada parte. Por exemplo, se houver um problema no LLM (Modelo de Linguagem Grande), podemos considerar mudar o modelo de linguagem utilizado. Se estivermos usando GPT, talvez possamos mudar para Gemini, Cloud, DeepSeek ou outro modelo disponível. Podemos optar por uma versão mais recente ou mais antiga do GPT, ou uma versão menor, visando maior rapidez.
Se o agente estiver agindo de maneira indesejada, talvez seja necessário modificar o prompt ou fornecer informações mais detalhadas ou abrangentes, dependendo do caso. Pode ser que falte alguma ferramenta ou autorização necessária para executar uma ação esperada. Nos próprios guardrails, é importante prevenir ações indesejadas dos usuários e proteger informações confidenciais que o agente possa acessar.
Concluindo com um marco de análise
Compreendendo todas essas partes, podemos questionar o que precisa ser alterado para alcançar o comportamento esperado do agente de IA. Definimos o comportamento do agente através dessas várias partes que o compõem. Temos um marco de análise que nos permite examinar opções no LLM, nos prompts (de sistema, usuário ou assistente), nas ferramentas (como Notion, Calendário, MCPs) e nas habilidades (skills), que são novidades nos agentes.
Precisamos verificar se as regras dos guardrails estão claras e alinhadas com os temas de atuação do agente. Por exemplo, se o assistente é especialista em calendário, ele deve apenas modificar o calendário ou também responder sobre o clima, se solicitado? É importante validar a saída para não filtrar informações sensíveis.
Todos esses componentes formam um marco para analisar os agentes. Durante o curso, ao montar o sistema de multiagentes, é essencial ter clareza sobre onde estamos intervindo e quais partes estamos modificando. Se estivermos montando dentro de nosso contexto, é recomendável pensar nas ferramentas que precisamos manipular e nas perguntas que precisamos fazer. Identificar onde intervir e qual componente falta para adequar o comportamento esperado é crucial.
Com esse marco completo de análise, teremos uma ferramenta para depurar e melhorar o comportamento do agente, ajustando-o conforme desejado.