Inteligência artificial
AutoGen: Impulsionando Aplicações de Modelo de Linguagem Grande de Próxima Geração

Modelos de Linguagem Grande (LLMs) são atualmente um dos tópicos mais discutidos na inteligência artificial mainstream. Desenvolvedores em todo o mundo estão explorando o potencial de aplicações de LLMs. Esses modelos são algoritmos de inteligência artificial que utilizam técnicas de aprendizado profundo e grandes quantidades de dados de treinamento para entender, resumir, prever e gerar uma ampla gama de conteúdo, incluindo texto, áudio, imagens, vídeos e muito mais.
Modelos de linguagem grande são algoritmos de inteligência artificial intricados. Desenvolver um modelo desses é uma tarefa exaustiva, e construir uma aplicação que aproveite as capacidades de um LLM é igualmente desafiador. Isso exige conhecimento especializado, esforço e recursos significativos para projetar, implementar e, finalmente, otimizar um fluxo de trabalho capaz de aproveitar ao máximo o potencial de um modelo de linguagem grande para produzir os melhores resultados. Dada a quantidade de tempo e recursos necessários para estabelecer fluxos de trabalho para aplicações que utilizam o poder dos LLMs, automatizar esses processos tem um grande valor. Isso é particularmente verdadeiro, pois os fluxos de trabalho são esperados para se tornarem ainda mais complexos no futuro próximo, com desenvolvedores criando aplicações cada vez mais sofisticadas baseadas em LLMs. Além disso, o espaço de design necessário para esses fluxos de trabalho é tanto intricado quanto amplo, o que aumenta os desafios de criar um fluxo de trabalho ótimo e robusto que atenda às expectativas de desempenho.
AutoGen é um framework desenvolvido pela equipe da Microsoft que visa simplificar a orquestração e otimização dos fluxos de trabalho de LLMs, introduzindo automação no pipeline de fluxo de trabalho. O framework AutoGen oferece agentes conversáveis e personalizáveis que aproveitam o poder de LLMs avançados, como GPT-3 e GPT-4, e, ao mesmo tempo, abordam suas limitações atuais, integrando os LLMs com ferramentas e entradas humanas, usando chats automatizados para iniciar conversas entre vários agentes.
Ao usar o framework AutoGen, são necessários apenas dois passos para desenvolver um sistema de conversação de multi-agente complexo.
Passo 1: Defina um conjunto de agentes, cada um com seus papéis e capacidades.
Passo 2: Defina o comportamento de interação entre os agentes, ou seja, um agente deve saber o que responder quando recebe uma mensagem de outro agente.
Ambos os passos acima são modulares e intuitivos, o que torna esses agentes compostos e reutilizáveis. A figura abaixo demonstra um fluxo de trabalho de amostra que aborda a resposta a perguntas baseadas em código na otimização da cadeia de suprimentos. Como pode ser visto, o escritor primeiro escreve o código e a interpretação, o Safeguard garante a privacidade e segurança do código, e o código é executado pelo Commander após receber a autorização necessária. Se o sistema encontrar algum problema durante a execução, o processo é repetido até que seja resolvido completamente. Implantar o framework abaixo resulta na redução da quantidade de interação manual de 3x a 10x quando implantado em aplicações como otimização da cadeia de suprimentos. Além disso, o uso do AutoGen também reduz a quantidade de esforço de codificação em até quatro vezes.

AutoGen pode ser um divisor de águas, pois visa transformar o processo de desenvolvimento de aplicações complexas que aproveitam o poder dos LLMs. O uso do AutoGen não apenas pode reduzir a quantidade de interações manuais necessárias para alcançar os resultados desejados, mas também pode reduzir a quantidade de esforço de codificação necessário para criar essas aplicações complexas. O uso do AutoGen para criar aplicações baseadas em LLMs pode não apenas acelerar significativamente o processo, mas também ajudará a reduzir a quantidade de tempo, esforço e recursos necessários para desenvolver essas aplicações complexas.
Neste artigo, vamos mergulhar mais profundamente no framework AutoGen e explorar os componentes essenciais e a arquitetura do framework AutoGen, juntamente com suas aplicações potenciais. Vamos começar.
Introdução ao AutoGen: Impulsionando Aplicações de Modelo de Linguagem Grande de Próxima Geração
AutoGen é um framework de código aberto desenvolvido pela equipe da Microsoft que equipa os desenvolvedores com o poder de criar aplicações que aproveitam o poder dos LLMs, usando vários agentes que podem ter conversas uns com os outros para executar com sucesso as tarefas desejadas. Os agentes no AutoGen são conversáveis, personalizáveis e podem operar em diferentes modos que empregam a combinação de ferramentas, entrada humana e LLMs. Os desenvolvedores também podem usar o framework AutoGen para definir o comportamento de interação dos agentes, e os desenvolvedores podem usar tanto código de computador quanto linguagem natural para programar padrões de conversa flexíveis implantados em várias aplicações. Como um framework de código aberto, AutoGen pode ser considerado um framework genérico que os desenvolvedores podem usar para construir aplicações e frameworks de várias complexidades que aproveitam o poder dos LLMs.

Modelos de linguagem grande estão desempenhando um papel crucial no desenvolvimento de agentes que utilizam os frameworks de LLM para se adaptar a novas observações, uso de ferramentas e raciocínio em numerosas aplicações do mundo real. No entanto, desenvolver essas aplicações que podem aproveitar ao máximo o potencial dos LLMs é um assunto complexo, e, dado o aumento contínuo da demanda e das aplicações dos LLMs, juntamente com o aumento da complexidade das tarefas, é vital ampliar o poder desses agentes, usando vários agentes que trabalham em sincronia uns com os outros.Porém, como uma abordagem de multi-agente pode ser usada para desenvolver aplicações baseadas em LLM que possam ser aplicadas a uma ampla gama de domínios com complexidades variadas? O framework AutoGen tenta responder à pergunta acima, fazendo uso de conversas de multi-agente.
AutoGen: Componentes e Framework
Em uma tentativa de reduzir a quantidade de esforço que os desenvolvedores precisam dedicar para criar aplicações complexas que utilizam as capacidades dos LLMs em uma ampla gama de domínios, o princípio fundamental do AutoGen é consolidar e simplificar os fluxos de trabalho de multi-agente, fazendo uso de conversas de multi-agente, maximizando assim a reutilização desses agentes implementados. O AutoGen usa vários agentes que podem ter conversas uns com os outros para executar com sucesso as tarefas desejadas, e o framework é construído sobre dois conceitos fundamentais: Agentes Conversáveis e Programação de Conversa.
Agentes Conversáveis
Um agente conversável no AutoGen é uma entidade com um papel pré-definido que pode passar mensagens para enviar e receber informações para e de outros agentes conversáveis. Um agente conversável mantém seu contexto interno com base em mensagens recebidas ou enviadas, e os desenvolvedores podem configurar esses agentes para ter um conjunto único de capacidades, como ser habilitado por ferramentas de LLM ou receber entradas humanas.
Capacidades do Agente Impulsionadas por Humanos, Ferramentas e LLMs
As capacidades de um agente estão diretamente relacionadas à forma como ele processa e responde a mensagens, o que é a principal razão pela qual os agentes no framework AutoGen permitem que os desenvolvedores dotem esses agentes de várias capacidades. O AutoGen suporta várias capacidades comuns compostas para agentes, incluindo
- LLMs: Agentes apoiados por LLMs exploram as capacidades de frameworks de LLM avançados, como interferência de estado implícito, interpretação de papéis, fornecimento de feedback e até mesmo codificação. Os desenvolvedores podem usar técnicas de promptagem novas para combinar essas capacidades, tentando aumentar a autonomia ou habilidade de um agente.
- Humanos: Várias aplicações desejam ou requerem algum grau de envolvimento humano, e o framework AutoGen permite que aplicações baseadas em LLMs facilitem a participação humana na conversa de agente, usando agentes apoiados por humanos que podem solicitar entradas humanas durante certas rodadas de conversa, com base na configuração do agente.
- Ferramentas: Agentes apoiados por ferramentas geralmente têm a capacidade de usar execução de código ou execução de função para executar ferramentas.
Cooperação e Personalização do Agente
Com base nas necessidades específicas e nos requisitos de uma aplicação, os desenvolvedores podem configurar agentes individuais para ter uma combinação de tipos de backend essenciais para exibir o comportamento complexo envolvido em conversas de multi-agente. O framework AutoGen permite que os desenvolvedores criem facilmente agentes com papéis e capacidades especializados, estendendo ou reutilizando os agentes incorporados. A figura anexada abaixo demonstra a estrutura básica dos agentes incorporados no framework AutoGen. A classe ConversableAgent pode usar humanos, ferramentas e LLMs por padrão, pois é a abstração de agente de nível mais alto. O UserProxyAgent e o AssistantAgent são classes pré-configuradas de ConversableAgent, e cada um deles representa um modo de uso comum, ou seja, cada um desses agentes age como um assistente de IA (quando apoiado por LLMs) e solicita entrada humana ou executa chamadas de função ou código (quando apoiado por ferramentas e/ou humanos), agindo como um proxy de humano.

A figura abaixo demonstra como os desenvolvedores podem usar o framework AutoGen para desenvolver um sistema de dois agentes que tem uma função de resposta personalizada, juntamente com uma ilustração da conversa de agente automatizada resultante que usa o sistema de dois agentes durante a execução do programa.

Ao permitir o uso de agentes personalizados que podem conversar uns com os outros, esses agentes conversáveis servem como um bloco de construção fundamental no framework AutoGen. No entanto, os desenvolvedores precisam especificar e moldar essas conversas de multi-agente para desenvolver aplicações onde esses agentes possam fazer progressos significativos nas tarefas especificadas.
Programação de Conversa
Para resolver o problema acima, o framework AutoGen usa a programação de conversa, um paradigma de computação construído sobre dois conceitos essenciais: cômputo, as ações tomadas pelos agentes em uma conversa de multi-agente para computar sua resposta, e fluxo de controle, as condições ou sequência sob as quais esses cômputos ocorrem. A capacidade de programar esses permite que os desenvolvedores implementem vários padrões de conversa de multi-agente flexíveis. Além disso, no framework AutoGen, os cômputos são centrados em conversa. As ações tomadas por um agente são relevantes para as conversas em que o agente está envolvido, e as ações tomadas pelos agentes resultam no envio de mensagens para conversas subsequentes, até que uma condição de término seja satisfeita. Além disso, o fluxo de controle no framework AutoGen é impulsionado por conversas, pois é a decisão dos agentes participantes sobre quais agentes enviarão mensagens para e do procedimento de cômputo.

A figura acima demonstra uma ilustração simples de como os agentes individuais realizam operações específicas de papel, cômputos centrados em conversa para gerar as respostas desejadas, como execução de código e chamadas de interferência de LLM. A tarefa avança com a ajuda de conversas exibidas na caixa de diálogo.
Para facilitar a programação de conversa, o framework AutoGen apresenta os seguintes padrões de design.
- Mecanismos de Resposta Automática e Interface Unificada para Chats de Agente Automatizados
O framework AutoGen tem uma interface unificada para realizar o cômputo correspondente que é centrado em conversa, incluindo uma função “receber ou enviar” para receber ou enviar mensagens, juntamente com uma função “gerar_resposta” que gera uma resposta com base na mensagem recebida e toma a ação necessária. O framework AutoGen também introduz e implanta o mecanismo de resposta automática do agente por padrão para realizar o controle impulsionado por conversa.
- Controle por Combinação de Linguagem Natural e Programação
O framework AutoGen facilita o uso de linguagem natural e programação em vários padrões de gerenciamento de fluxo de controle, incluindo controle de linguagem natural usando LLMs, controle de linguagem de programação e transição de controle entre programação e linguagem natural.
Em seguida, além de fluxos de conversa estáticos que geralmente são acompanhados de um fluxo pré-definido, o framework AutoGen também suporta fluxos de conversa dinâmicos, usando vários agentes, e o framework fornece aos desenvolvedores duas opções para alcançar isso
- Usando chamadas de função.
- Usando uma função de resposta personalizada.
Aplicações do AutoGen
Para ilustrar o potencial do framework AutoGen no desenvolvimento de aplicações de multi-agente complexas, aqui estão seis aplicações potenciais do AutoGen, selecionadas com base em sua relevância no mundo real, capacidades de resolução de problemas aprimoradas pelo framework AutoGen e seu potencial inovador.
Essas seis aplicações do framework AutoGen são
- Resolução de problemas matemáticos.
- Chats de recuperação aumentada.
- Chats ALF.
- Codificação de multi-agente.
- Bate-papo de grupo dinâmico.
- Xadrez conversacional.

Aplicação 1: Resolução de Problemas Matemáticos
A matemática é uma das disciplinas fundamentais para aproveitar os modelos de linguagem, ajudando a resolver problemas matemáticos complexos que abrem um novo mundo de aplicações potenciais, incluindo assistência de pesquisa de IA e tutoria personalizada de IA.

A figura acima demonstra a aplicação do framework AutoGen para alcançar um desempenho competitivo na resolução de problemas matemáticos.
Aplicação 2: Resposta a Perguntas e Geração de Código Aumentada por Recuperação
Nos últimos meses, a geração de código aumentada por recuperação surgiu como uma abordagem eficaz e prática para superar as limitações dos LLMs na incorporação de documentos externos. A figura abaixo demonstra a aplicação do framework AutoGen para uma recuperação eficaz e melhoria do desempenho em tarefas de resposta a perguntas.

Aplicação 3: Tomada de Decisão em Ambientes de Mundo de Texto
O framework AutoGen pode ser usado para criar aplicações que trabalham com tomada de decisão online ou interativa. A figura abaixo demonstra como os desenvolvedores podem usar o framework AutoGen para projetar um sistema de conversação de três agentes com um agente de aterramento para aumentar significativamente o desempenho.

Aplicação 4: Codificação de Multi-Agente
Os desenvolvedores que trabalham no framework AutoGen podem usar o framework OptiGuide para construir um sistema de codificação de multi-agente que é capaz de escrever código para implementar soluções otimizadas e responder a perguntas do usuário. A figura abaixo demonstra que o uso do framework AutoGen para criar um design de multi-agente ajuda a aumentar o desempenho geral, especialmente em tarefas de codificação que exigem um safeguard.

Aplicação 5: Bate-Papo de Grupo Dinâmico
O framework AutoGen fornece suporte a um padrão de comunicação que gira em torno de bate-papos de grupo dinâmicos, nos quais os agentes participantes compartilham o contexto e, em vez de seguir uma sequência pré-definida, conversam uns com os outros de forma dinâmica. Esses bate-papos de grupo dinâmicos dependem de conversas em andamento para guiar o fluxo de interação dentro dos agentes.

A figura acima ilustra como o framework AutoGen suporta bate-papos de grupo dinâmicos entre agentes, usando um Gerenciador de Bate-Papo de Grupo, um agente especial.
Aplicação 6: Xadrez Conversacional
Os desenvolvedores do framework AutoGen usaram-no para desenvolver uma aplicação de Xadrez Conversacional, que é um jogo de interferência natural que apresenta agentes incorporados para jogadores que podem ser um LLM ou humano, e há também um agente de terceiros que fornece informações relevantes e valida as movimentações no tabuleiro com base em um conjunto de regras padrão pré-definidas. A figura abaixo demonstra o Xadrez Conversacional, um jogo de interferência natural construído usando o framework AutoGen, que permite que os jogadores usem piadas, interpretação de personagens ou até mesmo referências a memes para expressar suas movimentações de forma criativa, tornando o jogo de xadrez mais interessante não apenas para os jogadores, mas também para a plateia e os observadores.

Conclusão
Neste artigo, falamos sobre o AutoGen, um framework de código aberto que usa os conceitos de programação de conversa e agentes conversáveis, visando simplificar a orquestração e otimização dos fluxos de trabalho de LLM, introduzindo automação no pipeline de fluxo de trabalho. O framework AutoGen oferece agentes conversáveis e personalizáveis que aproveitam o poder de LLMs avançados, como GPT-3 e GPT-4, e, ao mesmo tempo, abordam suas limitações atuais, integrando os LLMs com ferramentas e entradas humanas, usando chats automatizados para iniciar conversas entre vários agentes.
Embora o framework AutoGen ainda esteja em estágios experimentais iniciais, ele abre caminho para futuras explorações e oportunidades de pesquisa no campo, e o AutoGen pode ser a ferramenta que ajuda a melhorar a velocidade, as funcionalidades e a facilidade de desenvolvimento de aplicações que aproveitam as capacidades dos LLMs.












