Ai/automazione Best Repository

Agent Skills: AI que Actúa, No Solo Habla

Agent Skills: AI que Actúa, No Solo Habla

La inteligencia artificial generativa ha logrado avances gigantescos, pero a menudo los Large Language Models (LLM) parecen atrapados en un bucle conversacional. Responden preguntas, generan textos, pero rara vez interactúan con el mundo real. Aquí es donde entra en juego el concepto de ‘Agent Skills’, una metodología que permite a los LLM ir más allá del texto, ejecutando acciones concretas a través de funciones externas.

Agent Skills, como propone el repositorio de Addy Osmani, representa un puente entre la capacidad lingüística de los LLM y la ejecución de tareas reales. Imagina un agente de IA que no solo puede decirte el clima, sino también enviar un correo electrónico, actualizar un calendario o consultar una base de datos. Esta evolución transforma los LLM de simples ‘habladores’ a ‘hacedores’, capaces de automatizar procesos complejos y mejorar la eficiencia operativa de manera significativa. Lee también: TeamAI-CLI: Automatización IA para Desarrolladores Este enfoque es crucial en entornos empresariales donde la automatización de flujos de trabajo es una prioridad, y donde la capacidad de un agente para interactuar con sistemas externos puede reducir drásticamente la carga de trabajo manual y los errores humanos. He visto personalmente cómo la implementación de funcionalidades similares puede acelerar la clasificación de tickets de soporte, transformando un proceso reactivo en uno proactivo, donde la IA no solo comprende el problema sino que también comienza a resolverlo.

Tested on: Python 3.10 · OpenAI API · Septiembre 2026

Requisitos Previos / Entorno de Prueba

Para implementar y probar las Agent Skills, necesitarás un entorno Python 3.8+ y acceso a un Large Language Model (LLM) a través de una API. Esto puede ser OpenAI GPT-3.5/4, Anthropic Claude, o un modelo de código abierto compatible. El entorno de prueba ideal también incluye la capacidad de simular la interacción con servicios externos, como API REST para el envío de correos electrónicos o la actualización de un calendario. Asegúrate de tener las credenciales de API necesarias y de haber instalado las librerías Python requeridas.

pip install openai # o otras librerías LLM
pip install agent-skills # si está disponible como paquete, de lo contrario clonar el repo

1. Comprender el Concepto de ‘Skill’

Una ‘skill’ (habilidad) en este contexto es una función definida que un agente de IA puede invocar. Piensa en ella como una API interna o externa que el LLM puede llamar cuando el contexto de la conversación lo requiera. Cada skill se caracteriza por:

  • Nombre: Un identificador único para la skill.
  • Descripción: Una explicación clara de lo que hace la skill y cuándo debe usarse. Esta descripción es fundamental porque el LLM la usará para decidir si invocar la skill y cómo hacerlo.
  • Parámetros: Entradas necesarias para la ejecución de la skill, con sus respectivos tipos y descripciones.

Esta estructura permite al LLM ‘razonar’ sobre la oportunidad de usar una skill y preparar los parámetros correctos para la invocación. Es similar al concepto de ‘tool use’ o ‘function calling’ que se encuentra en muchos frameworks LLM, pero con un énfasis en la modularidad y la reutilización.

2. Definir una Skill Sencilla: Envío de Correo Electrónico

Veamos cómo definir una skill para enviar un correo electrónico. Supongamos que tenemos una función Python que se encarga de enviar correos electrónicos a través de un servicio SMTP o una API de terceros.

import smtplib
from email.mime.text import MIMEText

def send_email_skill(recipient: str, subject: str, body: str) -> str:
    """Envía un correo electrónico a un destinatario específico.

    Args:
        recipient (str): La dirección de correo electrónico del destinatario.
        subject (str): El asunto del correo electrónico.
        body (str): El cuerpo del mensaje.

    Returns:
        str: Un mensaje de confirmación o error.
    """
    # Simulación de envío de correo electrónico
    try:
        # En un entorno real aquí estaría la lógica SMTP o la llamada a la API
        print(f"Simulando envío de correo electrónico a {recipient} con asunto '{subject}' y cuerpo: {body[:50]}...")
        return f"Correo electrónico enviado con éxito a {recipient}."
    except Exception as e:
        return f"Error durante el envío del correo electrónico: {e}"

# Esta función se registraría luego en el framework Agent Skills
# La descripción y los parámetros se extraerían automáticamente o se definirían explícitamente

La clave es la claridad de la descripción y los parámetros. El LLM debe entender sin ambigüedad cuándo send_email_skill es la opción correcta y qué información debe extraer de la conversación para llamarla. Lee también: MFA Admin: Implementación Sin Bloqueos Operativos

3. Registrar y Utilizar las Skills con un Agente LLM

Una vez definidas las skills, deben registrarse con el agente LLM. El proceso exacto depende del framework LLM utilizado (ej. LangChain, LlamaIndex, o implementaciones personalizadas). La idea general es proporcionar al LLM una lista de las funciones disponibles y sus descripciones, para que pueda decidir autónomamente cuándo invocarlas.

Por ejemplo, usando un enfoque basado en OpenAI Function Calling:

from openai import OpenAI

client = OpenAI()

# Definición de la skill para la API de OpenAI
email_tool = {
    "type": "function",
    "function": {
        "name": "send_email_skill",
        "description": "Envía un correo electrónico a un destinatario específico con asunto y cuerpo definidos.",
        "parameters": {
            "type": "object",
            "properties": {
                "recipient": {"type": "string", "description": "La dirección de correo electrónico del destinatario"},
                "subject": {"type": "string", "description": "El asunto del correo electrónico"},
                "body": {"type": "string", "description": "El cuerpo del mensaje"},
            },
            "required": ["recipient", "subject", "body"],
        },
    },
}

def chat_with_agent(prompt: str, tools: list):
    messages = [{"role": "user", "content": prompt}]

    response = client.chat.completions.create(
        model="gpt-3.5-turbo-0125",
        messages=messages,
        tools=tools,
        tool_choice="auto",  # Permite al LLM elegir si llamar a una herramienta
    )

    response_message = response.choices[0].message
    tool_calls = response_message.tool_calls

    if tool_calls:
        # Aquí se ejecuta la skill y se envía el resultado al LLM para la respuesta final
        function_name = tool_calls[0].function.name
        function_args = json.loads(tool_calls[0].function.arguments)

        if function_name == "send_email_skill":
            result = send_email_skill(**function_args)
            messages.append(response_message)
            messages.append(
                {
                    "tool_call_id": tool_calls[0].id,
                    "role": "tool",
                    "name": function_name,
                    "content": result,
                }
            )
            # Llamada final al LLM para generar la respuesta basada en el resultado de la skill
            final_response = client.chat.completions.create(
                model="gpt-3.5-turbo-0125",
                messages=messages,
            )
            return final_response.choices[0].message.content
    else:
        return response_message.content

import json

# Ejemplo de uso
# print(chat_with_agent("Envía un correo electrónico a support@example.com con asunto 'Problema de red' y cuerpo 'La conexión es inestable desde la sede remota.'", [email_tool]))

El LLM recibe la instrucción del usuario, evalúa si alguna de las skills registradas es pertinente, extrae los parámetros necesarios y luego genera una salida que indica qué skill llamar y con qué argumentos. El sistema host ejecuta la skill y devuelve el resultado al LLM, que luego formula la respuesta final al usuario. Lee también: Cloudflare Audit: Automatiza la Seguridad con Python

Errores Comunes y Resolución de Problemas

  • Descripciones de las skills ambiguas: Si el LLM no comprende bien para qué sirve una skill o qué parámetros requiere, podría no invocarla correctamente o proporcionar argumentos erróneos. Asegúrate de que las descripciones sean precisas y completas.
  • Falta de gestión de errores en las skills: Las funciones externas pueden fallar. Es fundamental que cada skill gestione sus propios errores y devuelva una retroalimentación clara al LLM, que a su vez puede informar al usuario o intentar una solución alternativa.
  • Problemas de autenticación/autorización: Las skills que interactúan con servicios externos a menudo requieren credenciales. Asegúrate de que el entorno en el que se ejecuta el agente tenga acceso seguro a estas credenciales y que el agente esté autorizado para realizar las acciones solicitadas.
  • Bucles infinitos o llamadas a skills no deseadas: En escenarios complejos, un LLM podría entrar en un bucle de llamadas a skills o invocar skills inapropiadas. Implementa mecanismos de seguridad, como límites al número de llamadas consecutivas a skills o validaciones del contexto.

FAQ — Preguntas Frecuentes

¿Agent Skills es un framework específico o un concepto general?

Es un concepto general que se refiere a la capacidad de un agente de IA para ejecutar acciones externas. El repositorio de Addy Osmani propone una implementación práctica de este concepto, pero la idea de ‘tool use’ o ‘function calling’ es común a muchos frameworks LLM modernos, como LangChain y LlamaIndex, que ofrecen mecanismos similares para extender las capacidades de los modelos.

¿Puedo usar Agent Skills con cualquier LLM?

En principio sí, siempre que el LLM soporte el ‘function calling’ o pueda ser instruido para generar una salida en un formato que tu sistema pueda interpretar como una llamada a función. Los modelos más recientes de OpenAI y Anthropic tienen un excelente soporte nativo para esta funcionalidad, simplificando la integración.

¿Cuál es la diferencia entre Agent Skills y un plugin para ChatGPT?

Los plugins para ChatGPT son una implementación específica del concepto de ‘skill’ o ‘tool use’, pensada para el ecosistema de ChatGPT. Agent Skills es una idea más genérica que puede aplicarse a cualquier agente LLM, ofreciendo mayor flexibilidad y control sobre el desarrollo y la integración de las funciones externas.

¿Es seguro permitir a una IA ejecutar acciones externas?

La seguridad es una preocupación primordial. Es fundamental implementar controles rigurosos: limitar las capacidades de las skills, usar el principio del mínimo privilegio y monitorear cuidadosamente las acciones ejecutadas por el agente. Las skills deben diseñarse para ser lo más atómicas y seguras posible, con validaciones de entrada rigurosas.

Conclusiones con Puntos Clave Operativos

Agent Skills representa un paso evolutivo fundamental para los agentes de IA, transformándolos de motores de texto a verdaderos ejecutores de tareas. Esta capacidad de interactuar con el mundo externo abre escenarios de automatización hasta ahora inexplorados, permitiendo crear sistemas mucho más inteligentes y reactivos. El punto clave operativo es claro: si estás desarrollando soluciones basadas en LLM, integrar funciones externas a través de ‘skills’ ya no es una opción, sino una necesidad para desbloquear el verdadero potencial de la IA. Comienza con skills sencillas y bien definidas, prueba a fondo cada interacción e implementa sólidos mecanismos de seguridad. La clave es la modularidad: cada skill debe hacer una cosa y hacerla bien, haciendo que el agente sea más robusto y fácil de mantener.

Fuentes

Comparte este artículo:

Escrito por

Rosario Giordano

Rosario Giordano es administrador de sistemas y consultor de TI especializado en c iberseguridad y cloud, con más de 20 años de experiencia en la gestión de infraestructuras Linux empresariales. Sus áreas de especialización incluyen el hardening de SSH, plataformas Kubernetes , bases de datos PostgreSQL, virtualización con VMware/Proxmox y el cumplimiento de los marcos de seguridad NIS2 e ISO 27001.