Buckets:
| <meta charset="utf-8" /><meta name="hf:doc:metadata" content="{"title":"Acciones: Permitiendo al Agente Interactuar con Su Entorno","local":"acciones-permitiendo-al-agente-interactuar-con-su-entorno","sections":[{"title":"Tipos de Acciones de Agentes","local":"tipos-de-acciones-de-agentes","sections":[],"depth":2},{"title":"El Enfoque de Detener y Analizar","local":"el-enfoque-de-detener-y-analizar","sections":[],"depth":2},{"title":"Agentes de Código","local":"agentes-de-código","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/21.93b040c1.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/chunks/Tip.363c041f.js"> | |
| <link rel="modulepreload" href="/docs/agents-course/pr_545/es/_app/immutable/chunks/CodeBlock.4e987730.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":"Acciones: Permitiendo al Agente Interactuar con Su Entorno","local":"acciones-permitiendo-al-agente-interactuar-con-su-entorno","sections":[{"title":"Tipos de Acciones de Agentes","local":"tipos-de-acciones-de-agentes","sections":[],"depth":2},{"title":"El Enfoque de Detener y Analizar","local":"el-enfoque-de-detener-y-analizar","sections":[],"depth":2},{"title":"Agentes de Código","local":"agentes-de-código","sections":[],"depth":2}],"depth":1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <h1 class="relative group"><a id="acciones-permitiendo-al-agente-interactuar-con-su-entorno" 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="#acciones-permitiendo-al-agente-interactuar-con-su-entorno"><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>Acciones: Permitiendo al Agente Interactuar con Su Entorno</span></h1> <div class="course-tip bg-gradient-to-br dark:bg-gradient-to-r before:border-green-500 dark:before:border-green-800 from-green-50 dark:from-gray-900 to-white dark:to-gray-950 border border-green-50 text-green-700 dark:text-gray-400">En esta sección, exploramos los pasos concretos que un agente de IA toma para interactuar con su entorno. | |
| <p data-svelte-h="svelte-xuo2tb">Cubriremos cómo se representan las acciones (usando JSON o código), la importancia del enfoque de detener y analizar, e introduciremos diferentes tipos de agentes.</p></div> <p data-svelte-h="svelte-1g792u3">Las acciones son los pasos concretos que un <strong>agente de IA toma para interactuar con su entorno</strong>.</p> <p data-svelte-h="svelte-2bb1h1">Ya sea navegando por la web en busca de información o controlando un dispositivo físico, cada acción es una operación deliberada ejecutada por el agente.</p> <p data-svelte-h="svelte-gljhvq">Por ejemplo, un agente que asiste con servicio al cliente podría recuperar datos del cliente, ofrecer artículos de soporte o transferir problemas a un representante humano.</p> <h2 class="relative group"><a id="tipos-de-acciones-de-agentes" 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="#tipos-de-acciones-de-agentes"><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>Tipos de Acciones de Agentes</span></h2> <p data-svelte-h="svelte-1wivjva">Hay múltiples tipos de Agentes que realizan acciones de manera diferente:</p> <table data-svelte-h="svelte-1vr8tjf"><thead><tr><th>Tipo de Agente</th> <th>Descripción</th></tr></thead> <tbody><tr><td>Agente JSON</td> <td>La Acción a tomar se especifica en formato JSON.</td></tr> <tr><td>Agente de Código</td> <td>El Agente escribe un bloque de código que es interpretado externamente.</td></tr> <tr><td>Agente de llamada a funciones</td> <td>Es una subcategoría del Agente JSON que ha sido ajustado para generar un nuevo mensaje para cada acción.</td></tr></tbody></table> <p data-svelte-h="svelte-134tcfx">Las acciones en sí pueden servir para muchos propósitos:</p> <table data-svelte-h="svelte-1uwysts"><thead><tr><th>Tipo de Acción</th> <th>Descripción</th></tr></thead> <tbody><tr><td>Recopilación de Información</td> <td>Realizar búsquedas web, consultar bases de datos o recuperar documentos.</td></tr> <tr><td>Uso de Herramientas</td> <td>Hacer llamadas a API, realizar cálculos y ejecutar código.</td></tr> <tr><td>Interacción con el Entorno</td> <td>Manipular interfaces digitales o controlar dispositivos físicos.</td></tr> <tr><td>Comunicación</td> <td>Interactuar con usuarios a través de chat o colaborar con otros agentes.</td></tr></tbody></table> <p data-svelte-h="svelte-vif9d1">Una parte crucial de un agente es la <strong>capacidad de DETENER la generación de nuevos tokens cuando una acción está completa</strong>, y eso es cierto para todos los formatos de Agente: JSON, código o llamada a funciones. Esto previene la salida no intencionada y asegura que la respuesta del agente sea clara y precisa.</p> <p data-svelte-h="svelte-5cern7">El LLM solo maneja texto y lo usa para describir la acción que quiere tomar y los parámetros a suministrar a la herramienta.</p> <h2 class="relative group"><a id="el-enfoque-de-detener-y-analizar" 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="#el-enfoque-de-detener-y-analizar"><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>El Enfoque de Detener y Analizar</span></h2> <p data-svelte-h="svelte-k29tct">Un método clave para implementar acciones es el <strong>enfoque de detener y analizar</strong>. Este método asegura que la salida del agente sea estructurada y predecible:</p> <ol data-svelte-h="svelte-19p5l5m"><li><strong>Generación en un Formato Estructurado</strong>:</li></ol> <p data-svelte-h="svelte-1axqync">El agente produce su acción prevista en un formato claro y predeterminado (JSON o código).</p> <ol start="2" data-svelte-h="svelte-m7mpd0"><li><strong>Deteniendo la Generación Adicional</strong>:</li></ol> <p data-svelte-h="svelte-gvcxwr">Una vez que la acción está completa, <strong>el agente deja de generar tokens adicionales</strong>. Esto previene salidas adicionales o erróneas.</p> <ol start="3" data-svelte-h="svelte-1tzrn4s"><li><strong>Analizando la Salida</strong>:</li></ol> <p data-svelte-h="svelte-h0r7pb">Un analizador externo lee la acción formateada, determina qué Herramienta llamar y extrae los parámetros requeridos.</p> <p data-svelte-h="svelte-m1aeyu">Por ejemplo, un agente que necesita verificar el clima podría producir:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START -->Thought<span class="hljs-punctuation">:</span> Necesito verificar el clima actual para Nueva York. | |
| Action <span class="hljs-punctuation">:</span> | |
| <span class="hljs-punctuation">{</span> | |
| <span class="hljs-attr">"action"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"get_weather"</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"action_input"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><span class="hljs-attr">"location"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Nueva York"</span><span class="hljs-punctuation">}</span> | |
| <span class="hljs-punctuation">}</span><!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-1gzno4y">El framework puede entonces analizar fácilmente el nombre de la función a llamar y los argumentos a aplicar.</p> <p data-svelte-h="svelte-1o7cfwp">Este formato claro y legible por máquina minimiza errores y permite que herramientas externas procesen con precisión el comando del agente.</p> <p data-svelte-h="svelte-1nvv5ro">Nota: Los agentes de llamada a funciones operan de manera similar estructurando cada acción para que una función designada sea invocada con los argumentos correctos. | |
| Profundizaremos en esos tipos de Agentes en una Unidad futura.</p> <h2 class="relative group"><a id="agentes-de-código" 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="#agentes-de-código"><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>Agentes de Código</span></h2> <p data-svelte-h="svelte-1ttpln8">Un enfoque alternativo es usar <em>Agentes de Código</em>. | |
| La idea es: <strong>en lugar de producir un simple objeto JSON</strong>, un Agente de Código genera un <strong>bloque de código ejecutable—típicamente en un lenguaje de alto nivel como Python</strong>.</p> <img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/code-vs-json-actions.png" alt="Agentes de Código"> <p data-svelte-h="svelte-ahakaw">Este enfoque ofrece varias ventajas:</p> <ul data-svelte-h="svelte-1bukje0"><li><strong>Expresividad:</strong> El código puede representar naturalmente lógica compleja, incluyendo bucles, condicionales y funciones anidadas, proporcionando mayor flexibilidad que JSON.</li> <li><strong>Modularidad y Reusabilidad:</strong> El código generado puede incluir funciones y módulos que son reutilizables a través de diferentes acciones o tareas.</li> <li><strong>Depuración Mejorada:</strong> Con una sintaxis de programación bien definida, los errores de código son a menudo más fáciles de detectar y corregir.</li> <li><strong>Integración Directa:</strong> Los Agentes de Código pueden integrarse directamente con bibliotecas y APIs externas, permitiendo operaciones más complejas como procesamiento de datos o toma de decisiones en tiempo real.</li></ul> <p data-svelte-h="svelte-11c5kc2">Por ejemplo, un Agente de Código encargado de obtener el clima podría generar el siguiente fragmento de Python:</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg class="" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg> <div class="absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0"><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent; "></div> Copied</div></button></div> <pre class=""><!-- HTML_TAG_START --><span class="hljs-comment"># Ejemplo de Agente de Código: Recuperar Información del Clima</span> | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">get_weather</span>(<span class="hljs-params">city</span>): | |
| <span class="hljs-keyword">import</span> requests | |
| api_url = <span class="hljs-string">f"https://api.weather.com/v1/location/<span class="hljs-subst">{city}</span>?apiKey=YOUR_API_KEY"</span> | |
| response = requests.get(api_url) | |
| <span class="hljs-keyword">if</span> response.status_code == <span class="hljs-number">200</span>: | |
| data = response.json() | |
| <span class="hljs-keyword">return</span> data.get(<span class="hljs-string">"weather"</span>, <span class="hljs-string">"No hay información del clima disponible"</span>) | |
| <span class="hljs-keyword">else</span>: | |
| <span class="hljs-keyword">return</span> <span class="hljs-string">"Error: No se pudo obtener datos del clima."</span> | |
| <span class="hljs-comment"># Ejecutar la función y preparar la respuesta final</span> | |
| result = get_weather(<span class="hljs-string">"Nueva York"</span>) | |
| final_answer = <span class="hljs-string">f"El clima actual en Nueva York es: <span class="hljs-subst">{result}</span>"</span> | |
| <span class="hljs-built_in">print</span>(final_answer)<!-- HTML_TAG_END --></pre></div> <p data-svelte-h="svelte-10jmk85">En este ejemplo, el Agente de Código:</p> <ul data-svelte-h="svelte-1u48854"><li>Recupera datos del clima <strong>a través de una llamada a API</strong>,</li> <li>Procesa la respuesta,</li> <li>Y usa la función print() para producir una respuesta final.</li></ul> <p data-svelte-h="svelte-k5ksx6">Este método <strong>también sigue el enfoque de detener y analizar</strong> delimitando claramente el bloque de código y señalando cuando la ejecución está completa (aquí, imprimiendo el final_answer).</p> <hr> <p data-svelte-h="svelte-u9xjsq">Aprendimos que las Acciones conectan el razonamiento interno de un agente y sus interacciones con el mundo real ejecutando tareas claras y estructuradas—ya sea a través de JSON, código o llamadas a funciones.</p> <p data-svelte-h="svelte-1xrixeh">Esta ejecución deliberada asegura que cada acción sea precisa y esté lista para el procesamiento externo a través del enfoque de detener y analizar. En la siguiente sección, exploraremos las Observaciones para ver cómo los agentes capturan e integran retroalimentación de su entorno.</p> <p data-svelte-h="svelte-5z8s1y">Después de esto, ¡<strong>finalmente estaremos listos para construir nuestro primer Agente</strong>!</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/unit1/actions.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, 21], | |
| data, | |
| form: null, | |
| error: null | |
| }); | |
| }); | |
| } | |
| </script> | |
Xet Storage Details
- Size:
- 20.6 kB
- Xet hash:
- d4ca98176f1644419cbcb6810809eee5ff51f1ed9d047ca152d63589ce002333
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.