Buckets:

rtrm's picture
download
raw
20.6 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Acciones: Permitiendo al Agente Interactuar con Su Entorno&quot;,&quot;local&quot;:&quot;acciones-permitiendo-al-agente-interactuar-con-su-entorno&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Tipos de Acciones de Agentes&quot;,&quot;local&quot;:&quot;tipos-de-acciones-de-agentes&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;El Enfoque de Detener y Analizar&quot;,&quot;local&quot;:&quot;el-enfoque-de-detener-y-analizar&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Agentes de Código&quot;,&quot;local&quot;:&quot;agentes-de-código&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;: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="{&quot;title&quot;:&quot;Acciones: Permitiendo al Agente Interactuar con Su Entorno&quot;,&quot;local&quot;:&quot;acciones-permitiendo-al-agente-interactuar-con-su-entorno&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Tipos de Acciones de Agentes&quot;,&quot;local&quot;:&quot;tipos-de-acciones-de-agentes&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;El Enfoque de Detener y Analizar&quot;,&quot;local&quot;:&quot;el-enfoque-de-detener-y-analizar&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2},{&quot;title&quot;:&quot;Agentes de Código&quot;,&quot;local&quot;:&quot;agentes-de-código&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;: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">&quot;action&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;get_weather&quot;</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;action_input&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><span class="hljs-attr">&quot;location&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;Nueva York&quot;</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&quot;https://api.weather.com/v1/location/<span class="hljs-subst">{city}</span>?apiKey=YOUR_API_KEY&quot;</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">&quot;weather&quot;</span>, <span class="hljs-string">&quot;No hay información del clima disponible&quot;</span>)
<span class="hljs-keyword">else</span>:
<span class="hljs-keyword">return</span> <span class="hljs-string">&quot;Error: No se pudo obtener datos del clima.&quot;</span>
<span class="hljs-comment"># Ejecutar la función y preparar la respuesta final</span>
result = get_weather(<span class="hljs-string">&quot;Nueva York&quot;</span>)
final_answer = <span class="hljs-string">f&quot;El clima actual en Nueva York es: <span class="hljs-subst">{result}</span>&quot;</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">&lt;</span> <span data-svelte-h="svelte-x0xyl0">&gt;</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.