Como Construir Agentes de IA 'Human-in-the-Loop' com Planejamento e Execução, Aprovação Explícita d…

Neste tutorial, construímos um agente de reserva de viagens 'human-in-the-loop' que trata o usuário como um parceiro em vez de um observador passivo. Projetamos o sistema para que o agente primeiro raciocine abertamente, elaborando um plano de viagem estruturado, e depois faça uma pausa deliberada antes de tomar qualquer ação. Exibimos este plano proposto em uma interface ao vivo onde podemos inspecioná-lo, editá-lo ou rejeitá-lo, e somente após aprovação explícita permitimos que o agente execute as ferramentas. Ao combinar interrupções do LangGraph com um frontend Streamlit, criamos um fluxo de trabalho que torna o raciocínio do agente visível, controlável e confiável, em vez de opaco e autônomo. Copiar Código Copiado Use um navegador diferente!pip -q install -U langgraph openai streamlit pydantic !npm -q install -g localtunnel import os, getpass, textwrap, json, uuid, time if not os.environ.get("OPENAI_API_KEY"): os.environ["OPENAI_API_KEY"] = getpass.getpass("OPENAI_API_KEY (entrada oculta): ") os.environ.setdefault("OPENAI_MODEL", "gpt-4.1-mini") Configuramos o ambiente de execução instalando todas as bibliotecas e utilitários necessários para a orquestração do agente e exposição da UI. Coletamos a chave da API do OpenAI de forma segura em tempo de execução para que nunca seja codificada ou vazada no notebook. Também configuramos a seleção do modelo antecipadamente para manter o restante do pipeline limpo e reproduzível. Copiar Código Copiado Use um navegador diferente app_code = r''' import os, json, uuid import streamlit as st from typing import TypedDict, List, Dict, Any, Optional from pydantic import BaseModel, Field from openai import OpenAI from langgraph.graph import StateGraph, START, END from langgraph.types import Command, interrupt from langgraph.checkpoint.memory import InMemorySaver def tool_search_flights(origin: str, destination: str, depart_date: str, return_date: str, budget_usd: int) -> Dict[str, Any]: options = [ {"airline": "SkyJet", "route": f"{origin}->{destination}", "depart": depart_date, "return": return_date, "price_usd": int(budget_usd*0.55)}, {"airline": "AeroBlue", "route": f"{origin}->{destination}", "depart": depart_date, "return": return_date, "price_usd": int(budget_usd*0.70)}, {"airline": "Nimbus Air", "route": f"{origin}->{destination}", "depart": depart_date, "return": return_date, "price_usd": int(budget_usd*0.62)}, ] options = sorted(options, key=lambda x: x["price_usd"]) return {"tool": "search_flights", "top_options": options[:2]} def tool_search_hotels(city: str, nights: int, budget_usd: int

Fonte: MarkTechPost

Publicado em 2026-02-16

Notícias relacionadas

Continue explorando