import{s as fe,a as ge,n as he,o as we}from"../chunks/scheduler.505acc25.js";import{S as $e,i as xe,e as l,s,c as y,h as ve,a as r,d as a,b as i,f as ce,g as U,j as o,k as Z,l as Le,m as n,n as H,t as P,o as q,p as E}from"../chunks/index.fbb49fb4.js";import{C as _e}from"../chunks/CopyLLMTxtMenu.38c593c4.js";import{H as ee}from"../chunks/Heading.511e0027.js";import{E as be}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.9ca82795.js";function Ce(te){let m,j,M,A,d,F,u,z,p,ae,S,c,ne="Bienvenido/a a esta segunda unidad, donde <strong>exploraremos diferentes frameworks de agentes</strong> que pueden ser utilizados para construir poderosas aplicaciones basadas en agentes.",I,f,se="Estudiaremos:",G,g,ie='<li>En la Unidad 2.1: <a href="https://huggingface.co/docs/smolagents/es/index" rel="nofollow">smolagents</a></li> <li>En la Unidad 2.2: <a href="https://www.llamaindex.ai/" rel="nofollow">LlamaIndex</a></li> <li>En la Unidad 2.3: <a href="https://www.langchain.com/langgraph" rel="nofollow">LangGraph</a></li>',B,h,le="¡Vamos a sumergirnos! 🕵",R,w,D,$,re="Un framework de agentes <strong>no siempre es necesario cuando se construye una aplicación basada en LLMs</strong>. Proporcionan flexibilidad en el flujo de trabajo para resolver eficientemente una tarea específica, pero no siempre son necesarios.",O,x,oe="A veces, <strong>los flujos de trabajo predefinidos son suficientes</strong> para satisfacer las solicitudes de los usuarios, y no hay una necesidad real de un framework de agentes. Si el enfoque para construir un agente es simple, como una cadena de prompts, usar código plano puede ser suficiente. La ventaja es que el desarrollador/a tendrá <strong>control total y comprensión de su sistema sin abstracciones</strong>.",V,v,me="Sin embargo, cuando el flujo de trabajo se vuelve más complejo, como permitir que un LLM llame a funciones o usar múltiples agentes, estas abstracciones comienzan a ser útiles.",X,L,de="Considerando estas ideas, ya podemos identificar la necesidad de algunas características:",J,_,ue=`<li>Un <em>motor LLM</em> que impulse el sistema.</li> <li>Una <em>lista de herramientas</em> a las que el agente puede acceder.</li> <li>Un <em>analizador</em> para extraer llamadas a herramientas de la salida del LLM.</li> <li>Un <em>prompt de sistema</em> sincronizado con el analizador.</li> <li>Un <em>sistema de memoria</em>.</li> <li><em>Registro de errores y mecanismos de reintento</em> para controlar los errores del LLM.
Exploraremos cómo se resuelven estos temas en varios frameworks, incluyendo <code>smolagents</code>, <code>LlamaIndex</code> y <code>LangGraph</code>.</li>`,K,b,N,C,pe='<thead><tr><th>Framework</th> <th>Descripción</th> <th>Autor de la Unidad</th></tr></thead> <tbody><tr><td><a href="./smolagents/introducci%C3%B3n">smolagents</a></td> <td>Framework de agentes desarrollado por Hugging Face.</td> <td>Sergio Paniego - <a href="https://huggingface.co/sergiopaniego" rel="nofollow">HF</a> - <a href="https://x.com/sergiopaniego" rel="nofollow">X</a> - <a href="https://www.linkedin.com/in/sergio-paniego-blanco" rel="nofollow">Linkedin</a></td></tr></tbody>',Q,k,W,T,Y;return d=new _e({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),u=new ee({props:{title:"Introducción a los Frameworks de Agentes",local:"introducción-a-los-frameworks-de-agentes",headingTag:"h1"}}),w=new ee({props:{title:"Cuándo Usar un Framework de Agentes",local:"cuándo-usar-un-framework-de-agentes",headingTag:"h2"}}),b=new ee({props:{title:"Unidades de Frameworks de Agentes",local:"unidades-de-frameworks-de-agentes",headingTag:"h2"}}),k=new be({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/es/unit2/introduction.mdx"}}),{c(){m=l("meta"),j=s(),M=l("p"),A=s(),y(d.$$.fragment),F=s(),y(u.$$.fragment),z=s(),p=l("img"),S=s(),c=l("p"),c.innerHTML=ne,I=s(),f=l("p"),f.textContent=se,G=s(),g=l("ul"),g.innerHTML=ie,B=s(),h=l("p"),h.textContent=le,R=s(),y(w.$$.fragment),D=s(),$=l("p"),$.innerHTML=re,O=s(),x=l("p"),x.innerHTML=oe,V=s(),v=l("p"),v.textContent=me,X=s(),L=l("p"),L.textContent=de,J=s(),_=l("ul"),_.innerHTML=ue,K=s(),y(b.$$.fragment),N=s(),C=l("table"),C.innerHTML=pe,Q=s(),y(k.$$.fragment),W=s(),T=l("p"),this.h()},l(e){const t=ve("svelte-u9bgzb",document.head);m=r(t,"META",{name:!0,content:!0}),t.forEach(a),j=i(e),M=r(e,"P",{}),ce(M).forEach(a),A=i(e),U(d.$$.fragment,e),F=i(e),U(u.$$.fragment,e),z=i(e),p=r(e,"IMG",{src:!0,alt:!0}),S=i(e),c=r(e,"P",{"data-svelte-h":!0}),o(c)!=="svelte-8513nk"&&(c.innerHTML=ne),I=i(e),f=r(e,"P",{"data-svelte-h":!0}),o(f)!=="svelte-ppbk2f"&&(f.textContent=se),G=i(e),g=r(e,"UL",{"data-svelte-h":!0}),o(g)!=="svelte-d4gazb"&&(g.innerHTML=ie),B=i(e),h=r(e,"P",{"data-svelte-h":!0}),o(h)!=="svelte-1eolpaj"&&(h.textContent=le),R=i(e),U(w.$$.fragment,e),D=i(e),$=r(e,"P",{"data-svelte-h":!0}),o($)!=="svelte-1ivgmu2"&&($.innerHTML=re),O=i(e),x=r(e,"P",{"data-svelte-h":!0}),o(x)!=="svelte-1uc2tv8"&&(x.innerHTML=oe),V=i(e),v=r(e,"P",{"data-svelte-h":!0}),o(v)!=="svelte-1q1pu0q"&&(v.textContent=me),X=i(e),L=r(e,"P",{"data-svelte-h":!0}),o(L)!=="svelte-f5hery"&&(L.textContent=de),J=i(e),_=r(e,"UL",{"data-svelte-h":!0}),o(_)!=="svelte-cgxtq0"&&(_.innerHTML=ue),K=i(e),U(b.$$.fragment,e),N=i(e),C=r(e,"TABLE",{"data-svelte-h":!0}),o(C)!=="svelte-qq4iqa"&&(C.innerHTML=pe),Q=i(e),U(k.$$.fragment,e),W=i(e),T=r(e,"P",{}),ce(T).forEach(a),this.h()},h(){Z(m,"name","hf:doc:metadata"),Z(m,"content",ke),ge(p.src,ae="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit2/thumbnail.jpg")||Z(p,"src",ae),Z(p,"alt","Thumbnail")},m(e,t){Le(document.head,m),n(e,j,t),n(e,M,t),n(e,A,t),H(d,e,t),n(e,F,t),H(u,e,t),n(e,z,t),n(e,p,t),n(e,S,t),n(e,c,t),n(e,I,t),n(e,f,t),n(e,G,t),n(e,g,t),n(e,B,t),n(e,h,t),n(e,R,t),H(w,e,t),n(e,D,t),n(e,$,t),n(e,O,t),n(e,x,t),n(e,V,t),n(e,v,t),n(e,X,t),n(e,L,t),n(e,J,t),n(e,_,t),n(e,K,t),H(b,e,t),n(e,N,t),n(e,C,t),n(e,Q,t),H(k,e,t),n(e,W,t),n(e,T,t),Y=!0},p:he,i(e){Y||(P(d.$$.fragment,e),P(u.$$.fragment,e),P(w.$$.fragment,e),P(b.$$.fragment,e),P(k.$$.fragment,e),Y=!0)},o(e){q(d.$$.fragment,e),q(u.$$.fragment,e),q(w.$$.fragment,e),q(b.$$.fragment,e),q(k.$$.fragment,e),Y=!1},d(e){e&&(a(j),a(M),a(A),a(F),a(z),a(p),a(S),a(c),a(I),a(f),a(G),a(g),a(B),a(h),a(R),a(D),a($),a(O),a(x),a(V),a(v),a(X),a(L),a(J),a(_),a(K),a(N),a(C),a(Q),a(W),a(T)),a(m),E(d,e),E(u,e),E(w,e),E(b,e),E(k,e)}}}const ke='{"title":"Introducción a los Frameworks de Agentes","local":"introducción-a-los-frameworks-de-agentes","sections":[{"title":"Cuándo Usar un Framework de Agentes","local":"cuándo-usar-un-framework-de-agentes","sections":[],"depth":2},{"title":"Unidades de Frameworks de Agentes","local":"unidades-de-frameworks-de-agentes","sections":[],"depth":2}],"depth":1}';function Me(te){return we(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class qe extends $e{constructor(m){super(),xe(this,m,Me,Ce,fe,{})}}export{qe as component};
