Executando verificação de segurança...
6

O que não é um agente?

Chatbot não é agente. Assistente virtual também não é agente. Qualquer sistema que não toma decisões nem realiza ações por conta própria não é agente. Para ser agente, é preciso autonomia e iniciativa.

Na área de Inteligência Artificial, o conceito de agente é uma abstração para descrever entidades que percebem um ambiente por sensores (que podem ou não ser dispositivos eletrônicos), processam essas informações, tomam uma decisão e agem sobre o ambiente usando seus atuadores (também não restritos a dispositivos eletrônicos). Isso implica que há autonomia na tomada de decisão: um agente não depende de controle externo.

Por exemplo, um carro de controle remoto não é um agente. Ele não percebe o ambiente, não processa informações de entrada, nem toma decisões autonomamente. Quem percebe o ambiente e toma as decisões é quem está com o controle remoto. Portanto, sistemas controlados externamente não são agentes.

Um robô que limpa a casa sozinho, por mais simples que seja, batendo nos pés de mesas, paredes com seus sensores, é um agente. Ele navega em um ambiente de forma autônoma. Alguns modelos ainda retornam à base de carregamento quando a bateria está baixa, outro exemplo de autonomia. Esse é um exemplo de agente reflexivo simples, no qual “reflexivo” está relacionado a agir por reflexo (regras simples) e não a "refletir" no sentido humano.

Ultimamente, com a popularização da Inteligência Artificial Generativa, o palavra "agente" está sendo vista em toda parte. Muitas vezes associada a aplicações que usam grandes modelos de linguagem para tomar decisões.

É natural essa associação, pois esses modelos têm grande capacidade de compreensão e geração de texto. Porém, dependendo de como forem usados, eles não são agentes por si só.

Para facilitar, vamos pensar nos grandes modelos de linguagem como motores. Eles podem ser o núcleo de um agente, processando entradas e tomando decisões. Mas, sozinhos, não são agentes. É preciso adicionar as engrenagens e transmissões para fazê-los funcionarem desse jeito. É preciso acoplá-los a sensores e atuadores que permitam perceber o ambiente e agir de forma autônoma.

Por que um chatbot não é um agente? Se alguém abre a tela de um chatbot e não faz nada, não escreve nada, não clica em nada, o chatbot não vai fazer nada. Ele não tem autonomia para agir sem uma interação inicial. Ele só responde a demandas, não possui iniciativa própria. E os assistentes virtuais, que são versões especializadas de chatbots, seguem a mesma lógica.

Exemplos interessantes de agentes baseados em grandes modelos de linguagem destacam sua capacidade de atuar em ambientes nos quais podem perceber, processar informações, tomar decisões de forma autônoma e agir seguindo um objetivo.

Em Generative Agents, os pesquisadores exploraram agentes que interagiam em uma cidade virtual. Tais agentes chegaram ao ponto de organizar uma festa de Dia dos Namorados, demonstrando capacidades de planejamento e interação multiagente.

Já no ChatDev, os agentes assumiram papéis em uma simulação de um equipe de desenvolvimento de software, como CEO, CTO, programadores, testers e designers, colaborando para criar aplicações, incluindo jogos executáveis.

O Agent Hospital simulou a interação entre pacientes, enfermeiros(as) e médicos(as) em um ambiente hospitalar, resultando em agentes especializados em dar diagnósticos para doenças respiratórias de forma mais acurada.

Ao utilizarmos a palavra “agente” de forma adequada, conseguimos consolidar os conceitos que ela engloba e aprofundar nosso entendimento sobre autonomia, decisão e ação em sistemas de IA. Isso nos permite refletir criticamente sobre o grau de autonomia que estamos dispostos a conceder a esses sistemas.

Por outro lado, o uso indiscriminado e inadequado do termo não apenas dilui sua riqueza conceitual, mas também prejudica o entendimento coletivo, dificultando uma análise crítica mais precisa.

É importante lembrar que o conceito de agente possui mais de 30 anos de história na Inteligência Artificial, carregando uma base teórica robusta e essencial para discussões no campo.

Carregando publicação patrocinada...
4

Opa, Filipe, ótimo texto e bem relevante. Confesso que esbarrei nessa dúvida quando tava criando o clientai.

É realmente importante pensar na origem do termo, mas acho que no contexto de LLMs algumas nuances têm que ser abordadas. Este texto do Yoav Goldberg foi o que me deu mais clareza, além de levar a conversa pra outro nível de abstração (o que seriam sistemas multi-agentes). Aqui nesse paper do Barandiaran et al já dá pra ver várias definições diferentes (embora próximas), com requisitos mínimos pra o mínimo que configura um agente (inclusive a própria) definição deles, que é mais restritiva.

A definição do Barandiaran et al diz que pra ser um agente:

  1. a system must define its own individuality,
  2. it must be the active source of activity in its environment (interactional asymmetry)
  3. it must regulate this activity in relation to certain norms (normativity)

A primeira essencialmente separa o que é agente e o que é ambiente, temos que um agente precisa ser justamente algo que é possível diferenciar do seu ambiente, ter "individualidade". Já começa com algo arbitrário, o que a gente escolhe pra definir como individualidade não é trivial. Fazer parte ou não do ambiente em um contexto de llm pode ser tanta coisa. A gente pode pensar que se tá dentro de uma abstração arbitrária com um estado próprio (uma classe com um "contexto", por exemplo), é diferente do ambiente, ou a gente pode falar que se tiver rodando em outro processador, o resto é ambiente, as duas (e todas as outras) são igualmente válidas.

A próxima parte seria as ações. O que define uma ação de um agente? No paper tem uma discussão bem interessante sobre isso, mas essencialmente se resume a "quem é a fonte de energia pro que tá acontecendo em uma interação". Mesmo um chatbot pode ser pensado como um agente nesse caso, basta pensarmos nas ferramentas ou em fontes de dados externas como o ambiente que o chatbot interage. Essas coisas existem separado do que é o chatbot, a energia nessa troca é feita pelo agente. Tudo bem, a pessoa interagindo que deu o "pontapé" inicial no agente, mas ele definiu a ferramenta que deveria ser usada, a informação que deveria procurar. Ele gastou a energia interagindo com esse ambiente, e a decisão foi autônoma.

Por fim, a normatividade diz que o agente está tomando as ações por um motivo, ele tem um objetivo, por exemplo. Como considerar que essa normatividade faz parte do agente ou é algo externo é outra coisa arbitrária, se parar pra pensar. Um system prompt certamente encaixaria nisso se pensarmos nele como parte do agente. Podemos dizer que o prompt interagindo com o chatbot que tem acesso a ferramentas é justamente onde nós passamos esse objetivo, já que esse prompt é salvo no contexto (memória de curto prazo) do chatbot, então passa a fazer parte dele.

Pegando a definição que você usou: "agente é uma abstração para descrever entidades que percebem um ambiente por sensores, processam essas informações, tomam uma decisão e agem sobre o ambiente usando seus atuadores" - que é a definição do livro do Norvig, Russell, ainda cabe em um chatbot que tem ferramentas e acesso a informações externas.

Essas definições não são suficientemente concretas, não tem uma coisa formal que realmente define o que é ou não um agente.

No texto do Yoav Goldberg ele diz que o que define um agente em um contexto de LLMs é:

  1. Um prompt que define um comportamento
  2. Um conjunto de ferramentas que podem ser usadas
  3. Habilidade de executar um processo com múltiplos passos por meio de prompts repetidos e mantendo memória/estado entre as diferentes chamadas

A gente carrega muito contexto em Inteligência Artificial, mas muita coisa foi desenvolvida em paralelo e muito ainda não é totalmente formalizado. Não existe o conceito de agente, existem vários conceitos de agente, cada um dependendo de outras definições igualmente arbitrárias. Acho que o problema tá justamente aí, ainda falta especificidade, falta formalização. O que a gente tem ainda é baseado em outras coisas muito abstratas.

1

Realmente interessante essa abordagem sobre os termos. Faz pouco mais de seis meses que estudo AI para uso comercial, navegando pelo conceitos técnicos porem m foco em consumo de API e refinamento por FineTunings e RAGs, ou Agents Swarm, M.A.S. ou libs CrewAI ou LangFlow, é um cenário completamente novo e cheio de posicionamentos para adocao das tecnologias, ver que assuntoa desse nichi estão se tornando aberto reforça o andamento do mercado.
obrigado pelo post!

1

Por que um chatbot não é um agente? Se alguém abre a tela de um chatbot e não faz nada, não escreve nada, não clica em nada, o chatbot não vai fazer nada. Ele não tem autonomia para agir sem uma interação inicial. Ele só responde a demandas, não possui iniciativa própria. E os assistentes virtuais, que são versões especializadas de chatbots, seguem a mesma lógica.

No campo da I.A. você deveria considerar o input do usuário como um "sensor", uma vez que ele percebe - ou não - a interação do usuário. Se você desconecta um sensor de um agente "tradicional" ele também não faz nada.

Se eu oriento uma I.A. com o seguinte prompt:

"Quando o usuário interagir, informe que você está disponível para agendá-lo. Solicite os dados necessários e quanto achar conveniente chame a função de agendamento agendar(data,hora,telefone)."

Do meu ponto de vista eu criei um agente, pois ele recebe um input do usuário (sensor) e realiza uma ação (atuador) quando considerar que já possui os dados necessários (chamar a função de agendamento) observando os parâmetros da função.

Em tempo, etimologicamente um "agente" é "aquele que age".