# Skills

Las **“Skills”** son funciones reutilizables que amplían las capacidades de los agentes en **Studio IA**.\
Permiten ejecutar operaciones específicas — como cálculos, integraciones con bases de datos o reglas de negocio — que el modelo por sí solo no logra realizar de manera eficiente, especialmente en tareas como matemáticas o acciones estructuradas.

Una Skill está compuesta por código **Python** y puede ser utilizada en flujos automatizados para ofrecer mayor precisión y control en la experiencia del usuario.

***

### Tipos de Skills

Existen dos tipos principales:

* **Embebidas (nativas):** son proporcionadas por la plataforma y no pueden ser editadas ni eliminadas.
* **Personalizadas:** son creadas por los usuarios desde cero o a partir de la duplicación de una Skill embebida.

Al personalizar una Skill embebida, el sistema genera una copia independiente. Esta nueva versión puede editarse libremente.

***

### 1. Skills Embebidas (Nativas)

Son modelos preconfigurados proporcionados por **Skyone Studio**.\
Vienen listos para usar y no pueden ser editados ni eliminados por los usuarios.

Actualmente, Skyone Studio ofrece dos modelos embebidos:

* **Skill con RAG:** utiliza la técnica de *Retrieval-Augmented Generation (RAG)*, permitiendo que el agente busque información externa en tiempo real para enriquecer las respuestas entregadas al usuario.
* **Skill con SQL:** permite que el agente interactúe directamente con bases de datos relacionales mediante **SQL**, respondiendo preguntas y generando resultados basados en consultas estructuradas.

Estos modelos son ideales para escenarios comunes, garantizando robustez y buenas prácticas ya incorporadas.

{% tabs %}
{% tab title="RAG: Recuperación Aumentada con Generación" %}
El RAG es una técnica avanzada de inteligencia artificial que combina la búsqueda de información (retrieval) con la generación de texto (generation).\
En lugar de depender únicamente del conocimiento aprendido durante el entrenamiento del modelo, el RAG permite que la IA consulte fuentes externas en tiempo real — como bases vectoriales o documentos — para enriquecer y contextualizar sus respuestas.

#### <sub>Componentes y Competencias Esenciales en RAG</sub>

* **Comprensión del concepto RAG**: entender cómo los modelos de IA pueden buscar información externa en tiempo real para complementar sus respuestas generadas.
* **Búsqueda Semántica**: aplicar embeddings y representaciones vectoriales para identificar los documentos más relevantes para una consulta determinada.
* **Indexación Vectorial**: trabajar con herramientas especializadas como FAISS, Weaviate, Pinecone, Milvus, entre otras, para almacenar y recuperar vectores de manera eficiente.
* **Integración con LLMs**: saber conectar mecanismos de búsqueda (retrievers) con modelos de lenguaje (LLMs) como GPT, LLaMA, entre otros, asegurando que la respuesta final combine los datos recuperados con una generación textual fluida.
* **Construcción de Pipelines RAG**: desarrollar el flujo completo de trabajo — consulta, recuperación y respuesta — garantizando que cada etapa funcione de forma integrada y eficiente.
* **Embedding de Documentos**: transformar textos en vectores utilizando modelos como all-MiniLM, nomic-embed, entre otros, para alimentar la base vectorial.
* **Frameworks para RAG**: utilizar frameworks como LangChain, LlamaIndex, Haystack, entre otros, para construir, organizar y orquestar los pipelines RAG.
* **Evaluación de RAG**: medir la eficacia del sistema en términos de precisión, relevancia de las respuestas y latencia (tiempo de respuesta), garantizando calidad y rendimiento.
* **Gobernanza y Seguridad**: asegurar que los flujos RAG respeten normas de confidencialidad, precisión y control de acceso a los datos consultados.
  {% endtab %}

{% tab title="SQL – Lenguaje de Consulta Estructurada" %}
El SQL es el lenguaje estándar para la consulta, manipulación y modelado de datos en bases de datos relacionales. <br>

Es esencial para profesionales que trabajan en análisis de datos, ingeniería de datos y administración de bases de datos.

#### <sub>Niveles de Competencia en SQL</sub>

* **Básico**:  &#x20;Comandos como SELECT, WHERE, ORDER BY para filtrar y consultar datos simples en tablas.
* **Intermedio**:  &#x20;Uso de JOINs, GROUP BY, HAVING, CASE para relacionar múltiples tablas, realizar agregaciones y crear consultas más robustas.
* **Avanzado**:  &#x20;Empleo de subqueries, CTEs (Common Table Expressions) y window functions para desarrollar consultas complejas, ofreciendo mayor control y eficiencia.
* **Modelado de Datos**:  &#x20;Aplicación de principios como normalización y diseño de esquemas relacionales eficientes, garantizando integridad y rendimiento.
* **Performance y Optimización**:  &#x20;Uso de índices, explain plans y técnicas de query tuning para optimizar consultas en bases con grandes volúmenes de datos.
* **Seguridad**:  &#x20;Control de acceso con roles, permisos e implementación de prácticas para proteger datos sensibles.
* **Herramientas y SGBDs**:  &#x20;Dominio práctico de al menos un sistema gestor de bases de datos (SGBD), como PostgreSQL, MySQL, SQL Server, BigQuery, entre otros.
  {% endtab %}
  {% endtabs %}

{% hint style="info" %}
Al personalizar una Skill embebida, el sistema crea una copia independiente. Esta nueva versión puede ser editada libremente.
{% endhint %}

***

### 2. Skills Personalizadas

Estas son creadas directamente por los usuarios. Existen dos formas principales de crearlas:

* **Desde cero:** el usuario construye toda la lógica y configuración personalizada para atender necesidades específicas del negocio.
* **A partir de la duplicación de una Skill embebida:** el usuario copia un modelo nativo para tener una base lista y, a partir de ahí, realiza ajustes y personalizaciones según sea necesario.

Las **Skills personalizadas** ofrecen flexibilidad total, permitiendo adaptar el comportamiento del agente a casos de uso únicos y más complejos.

***

### Crear una nueva Skill

Para crear una Skill personalizada:

1. Accede al menú lateral y haz clic en **“Skills”**.
2. Haga clic en "**Nueva Skill**".

<figure><img src="/files/psscBbeTMkRRBvAmirqi" alt=""><figcaption></figcaption></figure>

3. En la pantalla de edición, complete los siguientes campos:

* **Nombre del módulo**: es el identificador principal de la Skill.
* **Nivel de acceso a la skill:** configure la privacidad de la skill, eligiendo entre las siguientes opciones:&#x20;

  <figure><img src="/files/N9dwPMDqOYafmBD9MLNO" alt=""><figcaption></figcaption></figure>

  * **Público:** cualquier persona puede visualizar y editar las configuraciones de la skill.
  * **Privado:** solo los usuarios seleccionados podrán visualizar los detalles y editar la skill actual.
    * **Configurar usuarios:** al seleccionar la opción Privado, esta opción se activa. Elija los usuarios que tendrán acceso a la skill y, a continuación, haga clic en "**Concluir**".

<figure><img src="/files/biU4JaSTxhekZpJoOO1Z" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Los usuarios no autorizados pueden usar la habilidad en los [Agentes](/espanol/skyone-studio/inteligencia-artificial/agentes.md#crear-un-agente), pero no pueden ver detalles técnicos ni editarla.
{% endhint %}

* **Funciones**: escriba una o más funciones en Python. Cada función debe recibir parámetros y devolver valores de forma clara.

4. Después de completar todos los campos y validar el código, haga clic en "**Guardar módulo**".

***

### Importar una Skill

Para crear una Skill personalizada mediante la opción Importar:

1. Acceda al menú lateral y haga clic en “**Skills**”.
2. Haga clic en "**Importar**".&#x20;

<figure><img src="/files/a5iNGGQKp8fldmEIbQBb" alt=""><figcaption></figcaption></figure>

3. Elija el archivo en Python (.py).
4. Realice las ediciones y pruebas deseadas.
5. Haga clic en "**Guardar módulo**" para guardar los cambios.

***

### Editar una Skill

Para editar una Skill personalizada:

1. Acceda al menú lateral y haga clic en “**Skills**”.
2. Seleccione una Skill existente y haga clic en "**Editar**".

<figure><img src="/files/wEmZYyDuvjhwdDrnapgu" alt=""><figcaption></figcaption></figure>

3. Realice las ediciones y pruebas deseadas.
4. Haga clic en "**Actualizar módulo**" para guardar los cambios.

***

### Probar una Skill

Para probar una Skill personalizada:

1. Acceda al menú lateral y haga clic en “**Skills**”.
2. Pase el cursor sobre una Skill existente y haga clic en "**Probar**".

<figure><img src="/files/XotJwq7SE7jdXse1H5iO" alt=""><figcaption></figcaption></figure>

3. Seleccione el **método**.
4. En algunos casos, añada una **query**.
5. Haga clic en "**Probar**".

***

### Exportar una Skill

Para exportar una Skill personalizada:

1. Acceda al menú lateral y haga clic en “**Skills**”.
2. Pase el cursor sobre una Skill existente y haga clic en "**Más opciones**".
3. Seleccione la opción "**Exportar**".

<figure><img src="/files/fqcVk3WICYanWVVRl6PJ" alt=""><figcaption></figcaption></figure>

***

### Duplicar una Skill

Para duplicar una Skill personalizada:

1. Acceda al menú lateral y haga clic en “**Skills**”.
2. Pase el cursor sobre una Skill existente y haga clic en "**Más opciones**".
3. Seleccione la opción "**Duplicar**".

***

#### Eliminar una Skill

Para eliminar una Skill personalizada:

1. Acceda al menú lateral y haga clic en “**Skills**”.
2. Haga clic en una Skill existente.
3. Haga clic en "**Eliminar**".
4. Como medida de seguridad, escriba el nombre del agente exactamente como se solicita en el campo de confirmación.
5. Haga clic en "**Eliminar**" para finalizar el proceso.

{% hint style="warning" %}
No es posible revertir la eliminación.
{% endhint %}

***

### FAQ – Skills de un Agente de IA

<details>

<summary>¿Qué son las Skills en un agente de IA?</summary>

Son las “habilidades” configuradas para que el agente realice tareas específicas, como responder preguntas, integrarse con sistemas o procesar información.

</details>

<details>

<summary>¿Puedo crear mis propias Skills?</summary>

Sí. En **Skyone Studio** puedes crear Skills personalizadas totalmente adaptadas a tu estrategia de negocio.

</details>

<details>

<summary>¿Cuál es la diferencia entre una Skill nativa y una Skill personalizada?</summary>

* **Nativa:** ya viene configurada en la plataforma, lista para usar.
* **Personalizada:** creada por el usuario, con *prompts*, integraciones o lógicas propias.

</details>

<details>

<summary>¿Es posible usar más de una Skill en el mismo agente?</summary>

Sí. Puedes añadir varias Skills y configurar prioridades y disparadores para determinar cuándo se activará cada una.

</details>

<details>

<summary>¿Las Skills pueden acceder a mis datos internos?</summary>

Sí, siempre que configures la conexión con tus fuentes de datos o APIs, garantizando seguridad y permisos adecuados.

</details>

<details>

<summary>¿El agente decide por sí solo qué Skill usar?</summary>

Depende de la configuración. Puedes definir reglas de prioridad o dejar que el agente elija en función de la solicitud del usuario.

</details>

<details>

<summary>¿Las Skills funcionan sin conexión (offline)?</summary>

No. Necesitan conexión con el entorno de **Skyone Studio** y, en algunos casos, con APIs externas para funcionar.

</details>

<details>

<summary>¿Puedo actualizar una Skill después de creada?</summary>

Sí. Es posible editar, mejorar e incluso reemplazar la lógica de una Skill sin necesidad de recrear todo el agente.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.skyone.cloud/espanol/skyone-studio/inteligencia-artificial/skills.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
