{"id":32929644,"url":"https://github.com/magalidellapiazza/langgraph-101","last_synced_at":"2026-05-16T06:35:39.188Z","repository":{"id":322306369,"uuid":"1088912834","full_name":"MagaliDellapiazza/langgraph-101","owner":"MagaliDellapiazza","description":"Real Python tutorial implementation \"LangGraph: Build Stateful AI Agents in Python\"","archived":false,"fork":false,"pushed_at":"2025-11-03T18:08:56.000Z","size":146,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-03T20:18:44.502Z","etag":null,"topics":["langchain","langgraph","langgraph-python"],"latest_commit_sha":null,"homepage":"https://realpython.com/langgraph-python/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MagaliDellapiazza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-03T16:19:02.000Z","updated_at":"2025-11-03T18:09:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MagaliDellapiazza/langgraph-101","commit_stats":null,"previous_names":["magalidellapiazza/langgraph-101"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/MagaliDellapiazza/langgraph-101","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagaliDellapiazza%2Flanggraph-101","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagaliDellapiazza%2Flanggraph-101/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagaliDellapiazza%2Flanggraph-101/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagaliDellapiazza%2Flanggraph-101/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MagaliDellapiazza","download_url":"https://codeload.github.com/MagaliDellapiazza/langgraph-101/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MagaliDellapiazza%2Flanggraph-101/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":283846898,"owners_count":26904663,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-11T02:00:06.610Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["langchain","langgraph","langgraph-python"],"created_at":"2025-11-11T12:01:56.037Z","updated_at":"2025-11-11T12:01:57.223Z","avatar_url":"https://github.com/MagaliDellapiazza.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LangGraph Email Agent — Implementación tutorial Real Python\n\nEste proyecto es una implementación de ejemplo basada en el tutorial de Real Python  \n👉 [“Build Stateful AI Agents in Python With LangGraph”](https://realpython.com/langgraph-python/#work-with-conditional-edges)\n\nLa idea principal fue aprender cómo construir **agentes de lenguaje con memoria y flujo lógico**, utilizando **LangGraph** para modelar decisiones condicionales y pasos secuenciales dentro de un proceso.\n\n---\n\n## Objetivo\n\nEl objetivo del proyecto construir un simulador de decisiones que **analiza correos electrónicos** (emails) relacionados con incidentes o notificaciones, y decide si deben escalar a un nivel superior o no.\n\nCada email pasa por un grafo de decisiones donde un agente (modelo de lenguaje)  \ndetermina si el mensaje requiere **una acción específica**, como escalarlo o generar una respuesta.\n\nPara lograrlo, se modela el flujo de decisiones como un grafo de estado (StateGraph) usando LangGraph, donde cada nodo representa una acción o un análisis, y las aristas (edges) determinan cómo continúa el proceso según los resultados.\n\nPor ejemplo, un correo que menciona algo como “los trabajadores fueron vistos sin arnés de seguridad” activa un nodo que evalúa la situación y define la variable requires_escalation = True.\nA partir de esa decisión, el grafo puede tomar distintos caminos:\n\n- Si la respuesta es True, se crea o envía un ticket de escalación (por ejemplo, a un responsable de seguridad o a un área legal).\n\n- Si la respuesta es False, el flujo continúa normalmente o se cierra el caso.\n\n---\n\n## ¿Qué es LangGraph?\n**LangGraph** es una biblioteca de Python diseñada para construir flujos de trabajo y agentes de modelos de lenguaje (LLM) con **estado**, **ciclos** y **múltiples actores**.\nExtiende las funcionalidades de su biblioteca principal, **LangChain**, para simplificar el desarrollo de **aplicaciones de LLM más sofisticadas**.\n\nPermite crear flujos de trabajo (graphs) donde cada **nodo** representa una acción o un agente, y las **aristas** (edges) definen cómo fluye la información entre ellos.  \n\n---\n\n## ⚙️ Estructura general\n\nEl proyecto está organizado de la siguiente manera:\n\n    ├── chains/\n    │   ├── notice_extraction.py \n    │   ├── escalation_check.py\n    │   └── binary_questions.py\n    │\n    ├── graphs/\n    │   ├── notice_extraction.py\n    │   ├── notice_extraction_conditional.py \n    │   ├── notice_extraction_binary.py \n    │   └── email_agent.py\n    │\n    ├── utils/\n    │   ├── graph_utils.py\n    │   └── logging_config.py\n    │\n    ├── photos/\n    │   ├── notice_extraction_graph.png\n    │   ├── binary_notice_extraction_graph.png\n    │   └── conditional_notice_extraction_graph.png\n    │\n    ├── example_emails.py\n    ├── (all tests ...)\n    ├── pyproject.toml\n    ├── poetry.lock\n    ├── .venv/\n    └── .env\n\n\nSe desarrollaron varias versiones del grafo (`notice_extraction.py`, `notice_extraction_conditional.py`, `notice_extraction_binary.py`) con el objetivo de mantener versiones funcionales independientes.\nCada una representa una evolución de la anterior, incorporando nuevas características: primero un flujo lineal básico, luego decisiones binarias y finalmente condiciones más complejas y ramificadas.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagalidellapiazza%2Flanggraph-101","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmagalidellapiazza%2Flanggraph-101","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagalidellapiazza%2Flanggraph-101/lists"}