Na primavera de 2023, o mundo ficou empolgado com o surgimento de agentes de IA baseados em LLM. Demos poderosos como AutoGPT e Babyagi demonstrou o potencial dos LLMs em execução em um loop, escolhendo a próxima ação, observando seus resultados e escolhendo a próxima ação, uma etapa de cada vez (também conhecida como estrutura do React). Esperava-se que esse novo método alojasse agentes que executam tarefas de várias etapas de forma autônoma. Dê um objetivo e um conjunto de ferramentas e ele cuidará do resto. No ultimate de 2024, a paisagem estará cheia de agentes de IA e estruturas de construção de agentes de IA. Mas como eles medem contra a promessa?
É seguro dizer que os agentes alimentados pelo ingênuo Estrutura de reação sofre de limitações graves. Dê a eles uma tarefa que requer mais de algumas etapas, usando mais de algumas ferramentas e elas falharão miseravelmente. Além de seus óbvios problemas de latência, eles perderão o controle, não seguirão as instruções, pararão muito cedo ou pararão muito tarde e produzirão resultados muito diferentes em cada tentativa. E não é de admirar. A estrutura do React pega as limitações de LLMs imprevisíveis e as compõe pelo número de etapas. No entanto, os construtores de agentes que desejam resolver casos de uso do mundo actual, especialmente na empresa, não podem fazer com esse nível de desempenho. Eles precisam de resultados confiáveis, previsíveis e explicáveis para fluxos de trabalho complexos de várias etapas. E eles precisam de sistemas de IA que mitigam, em vez de exacerbar, a natureza imprevisível dos LLMs.
Então, como os agentes são construídos na empresa hoje? Para casos de uso que requerem mais de algumas ferramentas e algumas etapas (por exemplo, pano de conversação), hoje os construtores de agentes abandonaram amplamente a promessa dinâmica e autônoma de reagir por métodos que dependem fortemente do encadeamento estático – a criação de cadeias predefinidas projetadas para resolver um caso de uso específico. Essa abordagem se assemelha à engenharia tradicional de software program e está longe da promessa agêntica de reação. Atinge níveis mais altos de controle e confiabilidade, mas carece de autonomia e flexibilidade. As soluções são, portanto, intensivas em desenvolvimento, estreitas em aplicação e rígidas demais para abordar altos níveis de variação no espaço de entrada e no meio ambiente.
Certamente, as práticas de encadeamento estáticas podem variar em como são “estáticas”. Algumas cadeias usam LLMs apenas para executar etapas atômicas (por exemplo, extrair informações, resumir o texto ou redigir uma mensagem), enquanto outros também usam LLMs para tomar algumas decisões dinamicamente em tempo de execução (por exemplo, um roteamento de LLM entre fluxos alternativos na cadeia ou um LLM validando o resultado de uma etapa para determinar se deve ser executado novamente). De qualquer forma, desde que os LLMs sejam responsáveis por qualquer tomada de decisão dinâmica na solução-somos inevitavelmente pegos em uma troca entre confiabilidade e autonomia. Quanto mais uma solução é estática, é mais confiável e previsível, mas também menos autônoma e, portanto, mais estreita em aplicação e mais intensiva no desenvolvimento. Quanto mais uma solução é dinâmica e autônoma, é mais genérica e simples de construir, mas também menos confiável e previsível.
Esta troca pode ser representada no gráfico seguinte:
Isso levanta a questão: por que ainda não vemos uma estrutura agêntica que possa ser colocada no quadrante superior direito? Estamos fadados a trocar para sempre a confiabilidade pela autonomia? Não podemos obter uma estrutura que forneça a interface simples de um agente do React (pegue um objetivo e um conjunto de ferramentas e descubra) sem sacrificar a confiabilidade?
A resposta é: nós podemos e vamos! Mas, para isso, precisamos perceber que estamos fazendo tudo errado. Todas as estruturas atuais de construção de agentes compartilham uma falha comum: eles dependem do LLMS como o componente dinâmico e autônomo. No entanto, o elemento essential que estamos perdendo – o que precisamos criar agentes que sejam autônomos e confiáveis - é a tecnologia de planejamento. E os LLMs não são ótimos planejadores.
Mas primeiro, o que é “planejar”? Ao “planejar”, queremos dizer a capacidade de modelar explicitamente os cursos alternativos de ação que levam a um resultado desejado e de explorar e explorar eficientemente essas alternativas sob restrições orçamentárias. O planejamento deve ser feito nos níveis macro e micro. Um plano de macro divide uma tarefa em etapas dependentes e independentes que devem ser executadas para alcançar o resultado desejado. O que muitas vezes é esquecido é a necessidade de micro-planejamento que visa garantir os resultados desejados no nível da etapa. Existem muitas estratégias disponíveis para aumentar a confiabilidade e alcançar garantias no nível de etapa única usando mais computação em tempo de inferência. Por exemplo, você pode parafrasear consultas de pesquisa semântica várias vezes, você pode recuperar mais contexto por uma determinada consulta, pode usar um modelo maior e você pode obter mais inferências de um LLM-tudo resultando em mais requisitos que se tornam resultados para escolher os quais escolher o melhor. Um bom micro-planejador pode usar com eficiência a computação em tempo de inferência para obter os melhores resultados em um determinado orçamento de computação e latência. Para dimensionar o investimento em recursos, conforme necessário, para a tarefa específica em questão. Dessa forma, os sistemas de IA planejados podem mitigar a natureza probabilística do LLMS para obter resultados garantidos no nível da etapa. Sem essas garantias, estamos de volta ao problema de erro de composição que prejudicará até o melhor plano de nível macro.
Mas por que os LLMs não podem servir como planejadores? Afinal, eles são capazes de traduzir instruções de alto nível em cadeias razoáveis de pensamento ou planos definidos em linguagem ou código pure. O motivo é que o planejamento requer mais do que isso. O planejamento requer a capacidade de modelar cursos alternativos de ação que podem razoavelmente levar ao resultado desejado e a raciocinar sobre a utilidade esperada e os custos esperados (em computação e/ou latência) de cada alternativa. Embora os LLMs possam gerar representações dos cursos de ação disponíveis, eles não podem prever a utilidade e os custos esperados correspondentes. Por exemplo, quais são a utilidade e os custos esperados do uso do Modelo X vs. Modelo Y para gerar uma resposta por um contexto específico? Qual é a utilidade esperada de procurar uma informação específica nos documentos indexados corpus vs. uma chamada de API para o CRM? Seu LLM não começa a ter uma pista. E por uma boa razão – traços históricos desses traços probabilísticos raramente são encontrados na natureza e não são incluídos nos dados de treinamento de LLM. Eles também tendem a ser específicos para a ferramenta e um ambiente de dados específicos no qual o sistema de IA operará, diferentemente do conhecimento geral que os LLMs podem adquirir. E mesmo que os LLMs possam prever a utilidade e os custos esperados, o raciocínio sobre eles escolher o curso de ação mais eficaz é uma dedução teórica da decisão lógica, que não se pode supor que seja executado de maneira confiável pelas previsões próximas do LLMS.
Então, quais são os ingredientes que faltam para a tecnologia de planejamento de IA? Precisamos de modelos de planejadores que possam aprender com a experiência e a simulação para modelar explicitamente cursos alternativos de ação e probabilidades correspondentes e probabilidades de custo por uma tarefa específica em uma ferramenta específica e um ambiente de dados. Precisamos de uma linguagem de definição de plano (PDL) que possa ser usada para representar e raciocinar sobre os referidos cursos de ação e probabilidades. Precisamos de um mecanismo de execução que possa executar de forma determinada e eficiente um determinado plano definido no PDL.
Algumas pessoas já estão trabalhando duro para cumprir essa promessa. Até então, proceed construindo correntes estáticas. Por favor, não os chame de “agentes”.