Buckets:
| <meta charset="utf-8" /><meta name="hf:doc:metadata" content="{"title":"¿Qué es LangGraph ?","local":"qué-es-langgraph-","sections":[{"title":"¿Es LangGraph diferente de LangChain ?","local":"es-langgraph-diferente-de-langchain-","sections":[],"depth":2},{"title":"¿Cuándo debería usar LangGraph ?","local":"cuándo-debería-usar-langgraph-","sections":[{"title":"Control vs libertad","local":"control-vs-libertad","sections":[],"depth":3}],"depth":2},{"title":"¿Cómo funciona LangGraph?","local":"cómo-funciona-langgraph","sections":[],"depth":2},{"title":"¿En qué se diferencia de Python regular? ¿Por qué necesito LangGraph?","local":"en-qué-se-diferencia-de-python-regular-por-qué-necesito-langgraph","sections":[],"depth":2}],"depth":1}"> | |
| <link href="/docs/agents-course/pr_545/es/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/entry/start.63ebcd5b.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/chunks/scheduler.37c15a92.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/chunks/singletons.4b25defb.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/chunks/index.18351ede.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/chunks/paths.6deaf1b7.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/entry/app.b37467ae.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/chunks/index.2bf4358c.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/nodes/0.147ec314.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/chunks/each.e59479a4.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/nodes/43.81e5e8bd.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/chunks/Heading.8ada512a.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/chunks/getInferenceSnippets.031140c2.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{"title":"¿Qué es LangGraph ?","local":"qué-es-langgraph-","sections":[{"title":"¿Es LangGraph diferente de LangChain ?","local":"es-langgraph-diferente-de-langchain-","sections":[],"depth":2},{"title":"¿Cuándo debería usar LangGraph ?","local":"cuándo-debería-usar-langgraph-","sections":[{"title":"Control vs libertad","local":"control-vs-libertad","sections":[],"depth":3}],"depth":2},{"title":"¿Cómo funciona LangGraph?","local":"cómo-funciona-langgraph","sections":[],"depth":2},{"title":"¿En qué se diferencia de Python regular? ¿Por qué necesito LangGraph?","local":"en-qué-se-diferencia-de-python-regular-por-qué-necesito-langgraph","sections":[],"depth":2}],"depth":1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <h1 class="relative group"><a id="qué-es-langgraph-" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#qué-es-langgraph-"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>¿Qué es LangGraph ?</span></h1> <p data-svelte-h="svelte-k0sjnw"><code>LangGraph</code> s un marco de trabajo desarrollado por <a href="https://www.langchain.com/" rel="nofollow">LangChain</a> <strong>para gestionar el flujo de control de aplicaciones que integran un LLM.</strong>.</p> <h2 class="relative group"><a id="es-langgraph-diferente-de-langchain-" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#es-langgraph-diferente-de-langchain-"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>¿Es LangGraph diferente de LangChain ?</span></h2> <p data-svelte-h="svelte-k4t4oa">LangChain proporciona una interfaz estándar para interactuar con modelos y otros componentes, útil para recuperación, llamadas a LLM y llamadas a herramientas. | |
| Las clases de LangChain pueden utilizarse en LangGraph, pero NO TIENEN que ser utilizadas.</p> <p data-svelte-h="svelte-1mu4j4v">Los paquetes son diferentes y pueden usarse de forma aislada, pero, al final, todos los recursos que encontrarás en línea utilizan ambos paquetes de la mano.</p> <h2 class="relative group"><a id="cuándo-debería-usar-langgraph-" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#cuándo-debería-usar-langgraph-"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>¿Cuándo debería usar LangGraph ?</span></h2> <h3 class="relative group"><a id="control-vs-libertad" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#control-vs-libertad"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Control vs libertad</span></h3> <p data-svelte-h="svelte-1o6vi2c">Al diseñar aplicaciones de IA, te enfrentas a un equilibrio fundamental entre <strong>control</strong> y <strong>libertad</strong>:</p> <ul data-svelte-h="svelte-khwrs8"><li><strong>libertad</strong> da a tu LLM más espacio para ser creativo y abordar problemas inesperados.</li> <li><strong>Control</strong> te permite asegurar un comportamiento predecible y mantener barreras de protección.</li></ul> <p data-svelte-h="svelte-10d0yky">Los Agentes de Código, como los que puedes encontrar en <em>smolagents</em>,son muy libres. Pueden llamar a múltiples herramientas en un solo paso de acción, crear sus propias herramientas, etc. Sin embargo, este comportamiento puede hacerlos menos predecibles y menos controlables que un Agente regular trabajando con JSON.</p> <p data-svelte-h="svelte-1uzkx4f"><code>LangGraph</code> está en el otro extremo del espectro, brilla cuando necesitas <strong>“Control”</strong> sobre la ejecución de tu agente.</p> <p data-svelte-h="svelte-1mnd89h">LangGraph es particularmente valioso cuando necesitas <strong>Control sobre tus aplicaciones</strong>. Te da las herramientas para construir una aplicación que siga un proceso predecible mientras aprovecha el poder de los LLMs.</p> <p data-svelte-h="svelte-1f2cc7a">En términos simples, si tu aplicación involucra una serie de pasos que necesitan ser orquestados de una manera específica, con decisiones siendo tomadas en cada punto de unión, <strong>LangGraph proporciona la estructura que necesitas</strong>.</p> <p data-svelte-h="svelte-1b9sjgc">Como ejemplo, digamos que queremos construir un asistente LLM que pueda responder algunas preguntas sobre algunos documentos.</p> <p data-svelte-h="svelte-1y96klp">Como los LLMs entienden mejor el texto, antes de poder responder a la pregunta, necesitarás convertir otras modalidades complejas (gráficos, tablas) en texto. Sin embargo, ¡esa elección depende del tipo de documento que tengas!</p> <p data-svelte-h="svelte-19syr5b">Esta es una ramificación que elegí representar de la siguiente manera:</p> <img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit2/LangGraph/flow.png" alt="Control flow"> <blockquote data-svelte-h="svelte-134y1xy"><p>💡 <strong>Tip:</strong> La parte izquierda no es un agente, ya que aquí no está involucrada ninguna llamada a herramientas. Pero la parte derecha necesitará escribir algo de código para consultar el xls (convertir a pandas y manipularlo).</p></blockquote> <p data-svelte-h="svelte-6rlm5l">Si bien esta ramificación es determinista, también puedes diseñar ramificaciones que estén condicionadas por la salida de un LLM, haciéndolas indeterministas.</p> <p data-svelte-h="svelte-4o7h3m">Los escenarios clave donde LangGraph sobresale incluyen:</p> <ul data-svelte-h="svelte-5ee70r"><li><strong>Procesos de razonamiento en múltiples pasos</strong> que necesitan control explícito sobre el flujo</li> <li><strong>Aplicaciones que requieren persistencia de estado</strong> entre pasos</li> <li><strong>Sistemas que combinan lógica determinista con capacidades de IA</strong></li> <li><strong>Flujos de trabajo que necesitan intervenciones humanas en el ciclo</strong></li> <li><strong>Arquitecturas de agentes complejas</strong> con múltiples componentes trabajando juntos</li></ul> <p data-svelte-h="svelte-dprhw">En esencia, siempre que sea posible, <strong>como humano</strong>, diseña un flujo de acciones basado en la salida de cada acción, y decide qué ejecutar a continuación en consecuencia. En este caso, ¡LangGraph es el marco de trabajo correcto para ti!</p> <p data-svelte-h="svelte-18i2a64"><code>LangGraph</code> es, en mi opinión, el marco de trabajo de agentes más listo para producción en el mercado.</p> <h2 class="relative group"><a id="cómo-funciona-langgraph" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#cómo-funciona-langgraph"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>¿Cómo funciona LangGraph?</span></h2> <p data-svelte-h="svelte-15yp2qs">En su esencia, <code>LangGraph</code> utiliza una estructura de grafo dirigido para definir el flujo de tu aplicación:</p> <ul data-svelte-h="svelte-jw83a5"><li><strong>Nodos</strong> representan pasos de procesamiento individuales (como llamar a un LLM, usar una herramienta o tomar una decisión).</li> <li><strong>Aristas(Edges)</strong> definen las posibles transiciones entre pasos.</li> <li><strong>Estado</strong> es definido por el usuario, se mantiene y se pasa entre nodos durante la ejecución. Al decidir qué nodo dirigir a continuación, este es el estado actual que observamos.</li></ul> <p data-svelte-h="svelte-3hfztr">¡Exploraremos estos bloques fundamentales más en el próximo capítulo!</p> <h2 class="relative group"><a id="en-qué-se-diferencia-de-python-regular-por-qué-necesito-langgraph" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#en-qué-se-diferencia-de-python-regular-por-qué-necesito-langgraph"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>¿En qué se diferencia de Python regular? ¿Por qué necesito LangGraph?</span></h2> <p data-svelte-h="svelte-1ovltig">Te preguntaras : “Podría simplemente escribir código Python regular con declaraciones if-else para manejar todos estos flujos, ¿verdad?”</p> <p data-svelte-h="svelte-16kyrxp">Aunque técnicamente es cierto, LangGraph ofrece <strong>algunas ventajas</strong> osobre Python puro para construir sistemas complejos. Podrías construir la misma aplicación sin LangGraph, pero proporciona herramientas y abstracciones más fáciles para ti.</p> <p data-svelte-h="svelte-reprnz">Incluye estados, visualización, registro (trazas), integración de humanos en el ciclo incorporada, y más.</p> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/agents-course/blob/main/units/es/unit2/langgraph/when_to_use_langgraph.mdx" target="_blank"><span data-svelte-h="svelte-1kd6by1"><</span> <span data-svelte-h="svelte-x0xyl0">></span> <span data-svelte-h="svelte-1dajgef"><span class="underline ml-1.5">Update</span> on GitHub</span></a> <p></p> | |
| <script> | |
| { | |
| __sveltekit_1k0olmh = { | |
| assets: "/docs/agents-course/pr_545/es", | |
| base: "/docs/agents-course/pr_545/es", | |
| env: {} | |
| }; | |
| const element = document.currentScript.parentElement; | |
| const data = [null,null]; | |
| Promise.all([ | |
| import("/docs/agents-course/pr_545/es/_app/immutable/entry/start.63ebcd5b.js"), | |
| import("/docs/agents-course/pr_545/es/_app/immutable/entry/app.b37467ae.js") | |
| ]).then(([kit, app]) => { | |
| kit.start(app, element, { | |
| node_ids: [0, 43], | |
| data, | |
| form: null, | |
| error: null | |
| }); | |
| }); | |
| } | |
| </script> | |
Xet Storage Details
- Size:
- 17.3 kB
- Xet hash:
- 3eb8396574612a818a6086be42e7b8d8a34f51d082e23f09a5bfb386f57c57a3
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.