Construindo uma porta de aprovação ‘human-in-the-loop’ para agentes autônomos


Neste artigo, você aprenderá como implementar interrupções gerenciadas pelo estado no LangGraph para que o fluxo de trabalho de um agente possa fazer uma pausa para aprovação humana antes de retomar a execução.

Os tópicos que cobriremos incluem:

  • O que são interrupções gerenciadas pelo estado e por que são importantes em sistemas de IA de agente.
  • Como definir um fluxo de trabalho LangGraph simples com um estado de agente compartilhado e nós executáveis.
  • Como pausar a execução, atualizar o estado salvo com aprovação humana e retomar o fluxo de trabalho.

Proceed lendo para todas as informações.

Construindo uma porta de aprovação ‘human-in-the-loop’ para agentes autônomos

Construindo uma porta de aprovação ‘human-in-the-loop’ para agentes autônomos
Imagem por Editor

Introdução

Em sistemas de IA agentesquando o pipeline de execução de um agente é interrompido intencionalmente, temos o que é conhecido como interrupção gerenciada pelo estado. Assim como um videogame salvo, o “estado” de um agente pausado – suas variáveis ​​ativas, contexto, memória e ações planejadas – é salvo persistentemente, com o agente colocado em estado de suspensão ou espera até que um gatilho externo retome sua execução.

A importância das interrupções geridas pelo Estado cresceu juntamente com o progresso em aplicações de IA altamente autónomas e baseadas em agentes, por diversas razões. Eles não apenas agem como barreiras de segurança eficazes para a recuperação de ações que de outra forma seriam irreversíveis em ambientes de alto risco, mas também permitem aprovação humana e correção. Um supervisor humano pode reconfigurar o estado de um agente pausado e evitar consequências indesejadas antes que ações sejam executadas com base em uma resposta incorreta.

LangGraphuma biblioteca de código aberto para a construção de aplicativos de modelo de linguagem grande (LLM) com estado, oferece suporte a fluxos de trabalho baseados em agentes com mecanismos humanos no circuito e interrupções gerenciadas pelo estado, melhorando assim a robustez contra erros.

Este artigo reúne todos esses elementos e mostra, passo a passo, como implementar interrupções gerenciadas por estado usando LangGraph em Python sob uma abordagem human-in-the-loop. Embora a maioria dos processos de exemplo definidos abaixo devam ser automatizados por um agente, também mostraremos como fazer o fluxo de trabalho parar em um ponto-chave onde a revisão humana é necessária antes que a execução seja retomada.

Guia passo a passo

Primeiro, nós pip set up langgraph e faça as importações necessárias para este exemplo prático:

Observe que uma das courses importadas é chamada StateGraph. LangGraph usa gráficos de estado para modelar fluxos de trabalho cíclicos e complexos que envolvem agentes. Há estados representando a memória compartilhada do sistema (também conhecida como carga útil de dados) e nós representando ações que definem a lógica de execução usada para atualizar esse estado. Tanto os estados quanto os nós precisam ser explicitamente definidos e verificados. Vamos fazer isso agora.

O estado do agente é estruturado de forma semelhante a um dicionário Python porque herda de TypedDict. O estado atua como nosso “arquivo salvo” à medida que é passado entre os nós.

Em relação aos nós, definiremos dois deles, cada um representando uma ação: redigir um e-mail e enviá-lo.

O draft_node() A função simula uma ação do agente que redige um e-mail. Para fazer o agente executar uma ação actual, você substituiria o print() instruções que simulam o comportamento com instruções reais que o executam. O detalhe principal a ser observado aqui é o objeto retornado pela função: um dicionário cujos campos correspondem aos da classe de estado do agente que definimos anteriormente.

Enquanto isso, o send_node() função simula a ação de envio do e-mail. Mas há um problema: a lógica central do mecanismo humano no circuito reside aqui, especificamente na verificação do authorized standing. Somente se o authorized campo foi definido como True – por um ser humano, como veremos, ou por uma intervenção humana simulada – o e-mail é realmente enviado. Mais uma vez, as ações são simuladas através de simples print() declarações por uma questão de simplicidade, mantendo o foco no mecanismo de interrupção gerenciado pelo estado.

O que mais precisamos? Um fluxo de trabalho de agente é descrito por um gráfico com vários estados conectados. Vamos definir uma sequência simples e linear de ações da seguinte forma:

Para implementar o mecanismo semelhante a um banco de dados que salva o estado do agente e para introduzir a interrupção gerenciada pelo estado quando o agente está prestes a enviar uma mensagem, usamos este código:

Agora vem a verdadeira ação. Vamos execute o gráfico de ação definido há poucos momentos. Observe abaixo que um ID de thread é usado para que a memória possa acompanhar o estado do fluxo de trabalho entre as execuções.

Em seguida vem o momento humano no circuito, onde o fluxo é pausado e a aprovação humana é simulada pela configuração authorized para True:

Isso retoma o gráfico e conclui a execução.

O geral saída impresso por este fluxo de trabalho simulado deve ficar assim:

Concluindo

Este artigo ilustrou como implementar interrupções gerenciadas pelo estado em fluxos de trabalho baseados em agentes, introduzindo mecanismos humanos no circuito — um recurso importante em cenários críticos e de alto risco, onde a autonomia complete pode não ser desejável. Usamos LangGraph, uma biblioteca poderosa para construir aplicativos LLM orientados por agentes, para simular um fluxo de trabalho regido por essas regras.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *