Os sistemas modernos de IA estão evoluindo além das interações de prompt-resposta. Os agentes de IA atuais podem realizar raciocínio estruturado multietapas, tomada de decisão e coordenar tarefas complexas de forma autônoma. Esse recurso emergente é conhecido como fluxo de trabalho agêntico, uma mudança poderosa no aprendizado de máquina, em que os agentes operam por meio de uma série de etapas lógicas para resolver problemas com mais eficiência.
Neste tutorial, vamos explorar como criar esses fluxos de trabalho agênticos de IA usando duas ferramentas-chave: LangGraph, um framework para construir caminhos de raciocínio baseados em gráficos e modelos IBM® Granite, um modelo robusto que complementa essa estrutura. Cada etapa do fluxo de trabalho (chamada de "nó") é tratada por um agente, geralmente impulsionado por grandes modelos de linguagem. Esses agentes migram entre estados com base em saídas do modelo ou lógica condicional, formando um gráfico dinâmico e orientado por decisões.
Para dar vida a esses fluxos de trabalho agênticos, vamos analisar mais de perto dois componentes essenciais: o LangGraph e o modelo Granite.
O LangGraph é um framework poderoso projetado para agilizar o desenvolvimento de fluxos de trabalho orientados por IA, representando modelos de IA como agentes com estado dentro de um gráfico computacional. Ele permite que os desenvolvedores criem sistemas modulares escaláveis em que cada comportamento ou ponto de decisão é definido como um nó no gráfico.
Com o LangGraph, você pode:
Sistemas multiagentes e frameworks como o LangGraph, quando aplicados a tarefas de IA generativa (IA gen), normalmente estruturam a execução de tarefas como fluxos de trabalho sequenciais ou condicionais. Não importa se você está trabalhando com o LangChain, os modelos IBM Granite, os modelos GPT da OpenAI ou outras ferramentas de inteligência artificial, o LangGraph ajuda a otimizar seu fluxo de trabalho para obter melhor escalabilidade e desempenho.
O LangGraph introduz uma abordagem moderna para tecnologias de IA de orquestração por meio de Tecnologia, dividindo fluxos de trabalho complexos em componentes modulares e inteligentes. Ao contrário da automação tradicional ou da automação robótica de processos (RPA), o LangGraph permite a execução dinâmica de tarefas com reconhecimento de contexto usando lógica e memória em tempo real. Aqui estão os quatro componentes principais que alimentam esse framework:
Juntos, esses componentes permitem que o LangGraph transforme a forma como as organizações projetam e executam fluxos de trabalho orientados por IA, preenchendo a lacuna entre as ferramentas de IA e os processos de negócios do mundo real.
O Granite-4.0-Tiny-Preview, desenvolvido pela IBM Research, é um modelo de linguagem de código aberto leve e capaz, projetado para resolver problemas complexos e tarefas práticas de processamento de linguagem natural (NLP). Embora seja menor do que modelos comerciais como o GPT-4, o Granite é rápido, eficiente e totalmente compatível com o Hugging Face, o que o torna uma ótima opção para desenvolvedores que buscam eficiência operacional sem sacrificar o desempenho.
O Granite se destaca em:
Neste tutorial, o modelo Granite desempenha um papel fundamental em vários estágios do fluxo de trabalho agêntico, auxiliando tanto na solução de problemas quanto na geração de conteúdo. Seu design leve o torna adequado para aplicações do mundo real, onde a intervenção humana pode ser limitada e onde padrões de design escaláveis são essenciais para construir soluções robustas de IA em diversos conjuntos de dados e provedores.
Neste tutorial, criaremos um fluxo de trabalho agêntico que atua como um assistente criativo para escrever roteiros animados curtos.
Considerando uma ideia de história do usuário, o agente irá:
Este caso de uso foi criado para mostrar o raciocínio e os recursos generativos de um modelo de linguagem, estruturados por meio do fluxo de trabalho composicional do LangGraph.
Cada uma das etapas a seguir é implementada como um nó do LangGraph:
Esses nós são conectados sequencialmente em um LangGraph, e o modelo se move por eles enquanto leva adiante um dicionário de estados mutável.
Este fluxo de trabalho estabelece um equilíbrio entre a geração criativa e o planejamento estrutural. Ele demonstra:
Como ele também escala bem, você pode estendê-lo facilmente adicionando etapas de revisão, vários geradores de cenas ou até mesmo ramificação baseada em caracteres.
Você precisa de uma conta do IBM® Cloud para criar um projeto do watsonx.ai .
Embora você possa escolher entre várias ferramentas, este tutorial explica como configurar uma conta da IBM para usar um Jupyter Notebook.
Essa etapa abre um ambiente do Notebook, onde você poderá copiar o código deste tutorial. Ou então, você pode baixar esse Notebook em seu sistema local e carregá-lo como um ativo em seu projeto do watsonx.ai. Para ver mais tutoriais do Granite, consulte a Comunidade IBM Granite. Este tutorial também está disponível no GitHub
Essa célula instala as bibliotecas principais necessárias para usar o modelo IBM Granite hospedado no Hugging Face:
O
Observação: se você estiver executando este tutorial em um ambiente virtual e não tiver o langgrapg pré-instalado, use pip install langgraph para instalá-lo em seu ambiente local.
Essa célula importa todas as bibliotecas principais necessárias para criar e executar o fluxo de trabalho agêntico:
Juntas, essas importações preparam o ambiente para interação com o modelo, estruturação do fluxo de trabalho e apresentação da saída.
Essa célula carrega os dados do modelo
O
Essa etapa inicializa efetivamente o modelo Granite como o "mecanismo de raciocínio" por trás de nosso fluxo de trabalho agêntico.
Essa função,
Informações importantes:
Essa função será reutilizada em todo o fluxo de trabalho agêntico para invocar o modelo Granite em vários nós de decisão ou geração.
Essa função,
Entrada:
Construção do prompt: o prompt solicita que o modelo:
Geração de texto: o prompt é passado para a
Análise de saída: um loop simples extrai o gênero e o tom da resposta do modelo com base nos prefixos de linha (
Atualização de estado: os valores
Esse nó atua como um classificador criativo, permitindo que os nós subsequentes gerem esboços, estruturas e cenas alinhados contextualmente usando gênero e tom como parâmetros fundamentais.
O
Entrada: a função recebe o dicionário de estado contendo:
Construção do prompt: o modelo é instruído a:
Geração de texto: o prompt é enviado para
Atualização de estado: o esboço da trama gerado é adicionado ao estado sob a chave
Esse nó traduz a intenção criativa abstrata em um esboço narrativo, fornecendo um andaime para a estrutura detalhada de três atos que se segue. Ele garante que os nós trabalhem a partir de uma linha de base coerente e imaginativa.
O
Entrada: o nó utiliza o dicionário de estado, que agora inclui:
Construção do prompt: o modelo é instruído a:
Requisitos da cena:
Geração de texto:
Atualização de estado: a cena gerada é adicionada ao dicionário de estado sob a
Introduz a imersão narrativa e a narrativa visual no fluxo de trabalho. Em vez de simplesmente resumir a história, esse nó a traz à vida com detalhes sensoriais e emocionais, essenciais para a criação de roteiros de curtas-metragens animados.
O
Entrada: o nó espera o estado
Construção do prompt: o modelo é orientado para:
Diretrizes para o diálogo:
Geração: A
Atualização de estado: a caixa de diálogo é salva no estado sob a
Essa função auxiliar
Objetivo da função: agrupar um nó (por exemplo, generate_scene_node) com um decorador que registra:
Parâmetros:
Wrapper interno:
Retornos: uma versão modificada da função que adiciona mensagens de progresso, mas, fora isso, se comporta de forma idêntica.
À medida que os fluxos de trabalho crescem, torna-se importante rastrear qual etapa está sendo executada, especialmente se algumas etapas (como geração ou edição) demorarem mais ou causarem problemas como sobrecarga de memória. Esse wrapper de progresso garante transparência e é útil para depuração e diagnóstico de tempo de execução.
Essa célula define a lógica do fluxo de trabalho para gerar uma breve história animada usando o LangGraph, um framework de programação baseado em gráficos de composição projetada para fluxos de trabalho de LLMs. Cada etapa do gráfico representa uma tarefa criativa e é executada em uma sequência específica para produzir o roteiro final.
Componentes do fluxo de trabalho:
Registro de nó com rastreamento de progresso: cada etapa (seleção de gênero, geração de estrutura de tópicos, escrita de cenas, escrita de diálogos) é adicionada como um nó com o wrapper with_progress() -
Essa abordagem garante que cada nó registre seu tempo de execução e progresso quando executado.
Edges do fluxo de trabalho (sequenciamento de nós): a sequência do pipeline criativo é claramente definida:
Essa estrutura permite um fluxo de trabalho de LLM modular, legível e depurável. Cada estágio em seu processo criativo é isolado, pode ter perfis separados e posteriormente pode ser trocado ou estendido (por exemplo, adicionando uma etapa de “revisar cena” ou um nó de “resumir saída”). O
Essa célula de código final é onde você executa todo o fluxo de trabalho criativo e exibe os resultados de cada estágio da geração de histórias.
Exibição de resultados: o dicionário de estado final agora contém chaves preenchidas por vários nós:
Esta seção demonstra como a intenção do usuário é transformada em um miniscript completo por meio de um fluxo de trabalho de LLM modular em etapas. É um pipeline criativo de ponta a ponta, interativo, interpretável e personalizável.
Observação: o código levará aproximadamente de 15 a 17 minutos para ser executado se você estiver usando GPU ou TPU. Levará cerca de 65 a 70 minutos em um ambiente virtual local para executar e gerar a saída com base na infraestrutura usada para executar o cede.
Vamos entender como o sistema transforma o prompt do usuário ("Quero escrever uma história de fantasia extravagante para crianças sobre um dragão perdido que encontra seu lar") em uma história animada completa. Cada etapa se baseia na anterior, guiada pelos nós criativos do fluxo de trabalho e alimentada pelo Granite.
1. Gênero e tom. O fluxo de trabalho começa interpretando o prompt original do usuário: Quero escrever uma história de fantasia para crianças sobre um dragão perdido que encontra seu lar. Com base nessa entrada, o select_genre_node classifica corretamente a narrativa como fantasia extravagante e identifica o tom encantador e comovente apropriado. Esse resultado é preciso e contextualmente alinhado, pois o uso de frases como “extravagante”, “para crianças” e “dragão perdido encontrando seu lar” sinaliza claramente um estilo de narrativa mágico, porém suave. O gênero e o tom atuam como parâmetros fundamentais, que moldam cada etapa de geração subsequente no fluxo de trabalho.
2. Esboço da trama e descrições dos personagens. Na próxima etapa, é solicitado que o modelo crie um esboço do gráfico com base no gênero identificado, no tom e na ideia original do usuário. A saída não inclui apenas um resumo da história de três a cinco frases, mas também inclui descrições de personagens bônus, provavelmente devido a vazamento de prompts ou formatação de instruções retidas de iterações anteriores.
O esboço da trama centra-se em torno de uma menina chamada Lily, que descobre um dragão ferido e o ajuda a retornar à floresta encantada com a orientação de um botânico idoso. Este enredo reflete exatamente a intenção do usuário — focar em uma jornada mágica para crianças com tons emocionais sobre cura, pertencimento e amizade. Os esboços dos personagens do dragão, de Lily e do botânico acrescentam profundidade, transformando uma ideia vaga em um conceito estruturado com funções, personalidades e responsabilidades narrativas definidas. Essa etapa garante que a história migre de uma intenção abstrata para uma estrutura tangível adequada para adaptação na tela.
3. Cena principal. Dado o esboço completo da trama, o
O momento escolhido é quando Lily cuida do dragão ferido na floresta encantada, estabelecendo afinidade emocional e compreensão mútua entre os personagens. Esse momento é crítico, pois direciona a história para o retorno do dragão para casa. A cena é rica em imagens e emoções, aderindo às restrições "extravagantes" e "comoventes" e, ao mesmo tempo, sendo visualmente expressiva, perfeitamente adequada para um formato animado curto.
A capacidade do modelo de manter a consistência do tom e do gênero em todos os estágios demonstra o valor do fluxo de trabalho de passagem de estado do LangGraph e os recursos de raciocínio do modelo Granite.
4. Diálogo em formato de roteiro. Por fim, o
Cada estágio do fluxo de trabalho traduz o prompt original ("uma história de fantasia extravagante para crianças sobre um dragão perdido que encontra seu lar") em uma produção narrativa estruturada, criativa e expressiva. Da seleção de gêneros à formatação de diálogos, o sistema constrói incrementalmente um arco de narrativa coerente. O framework LangGraph garante que as transições entre tarefas estejam logicamente conectadas, e o modelo IBM Granite permite a geração de texto sensível ao contexto com um tom consistente. O resultado é uma história curta de animação compacta e pronta para a tela que emerge inteiramente de uma única linha de entrada, demonstrando o poder prático dos fluxos de trabalho agênticos em aplicações de IA criativas.
Para tornar a experiência de contar histórias ainda mais envolvente, aqui está uma visualização simples baseada em HTML que formata de forma atraente os elementos da história gerados: gênero, tom, trama, cena e diálogo. Além disso, com apenas um clique, você pode baixar o script inteiro como arquivo de texto para uso ou compartilhamento futuro. Vamos dar vida à história nas telas!
Este tutorial usa o modelo Granite-4.0-Tiny-Preview para geração de texto. Embora seja um dos modelos menores da família Granite, ele ainda requer um ambiente habilitado para GPU para funcionar com eficiência, especialmente ao executar vários nós em um fluxo de trabalho do LangGraph.
Configuração recomendada:
Observações de desempenho:
Se você estiver executando este tutorial em um ambiente de notebook hospedado (por exemplo, IBM watsonx.ai ou Google Colab Pro), certifique-se de que a GPU esteja ativada nas configurações de tempo de execução.
Para ambientes com poucos recursos, considere:
Neste tutorial, criamos um fluxo de trabalho modular agêntico de narrativa usando o modelo de linguagem LangGraph e o Granite-4.0-Tiny-Preview da IBM. Partindo de um prompt criativo simples, construímos um pipeline passo a passo que classifica o gênero e o tom, gera um esboço da trama, escreve uma cena-chave e termina com um diálogo estilo roteiro. Durante o processo, demonstramos como:
Esse framework agêntico não é apenas poderoso para oeteiros de cinema, mas pode ser estendido a uma ampla gama de casos de uso criativos ou de roteamento de tarefas. Com apenas alguns nós, você criou um assistente de redação em miniatura capaz de transformar uma ideia caprichosa em uma história pronta para um roteiro.
Quer seja você um desenvolvedor, contador de histórias ou pesquisador, este tutorial oferece uma base prática para explorar a engenharia de fluxos de trabalho baseada em LLMs em domínios criativos.
Pronto para criar seus próprios agentes? Deixe a criatividade fluir com os modelos IBM Granite e IBM watsonx Orchestrate.
Crie, implemente e gerencie assistentes e agentes de IA potentes que automatizam fluxos de trabalho e processos com a IA generativa.
Construa o futuro do seu negócio com soluções de IA em que você pode confiar.
Os serviços de IA da IBM Consulting ajudam a reinventar a forma como as empresas trabalham com IA para gerar transformação.
1 Lang Cao. 2024. GraphReason: Enhancing Reasoning Capabilities of Large Language Models through A Graph-Based Verification Approach. In Proceedings of the 2nd Workshop on Natural Language Reasoning and Structured Explanations (@ACL 2024), pages 1–12, Bangkok, Tailândia. Association for Computational Linguistics.