Cómo añadir skills a agentes con LangChain: guía práctica

Los 'skills' permiten a agentes basados en LLM cargar instrucciones especializadas sólo cuando las necesitan, haciendo flujos más eficientes y flexibles. Aquí verán cómo diseñarlos e integrarlos con LangChain, paso a paso.

Por Redaccion TD
Cómo añadir skills a agentes con LangChain: guía práctica

Introducción

Los chatbots avanzados y asistentes conversacionales (como ChatGPT o Gemini) pueden generar archivos complejos —presentaciones, reportes en Excel y más— aunque, en esencia, detrás tengan solo un modelo de lenguaje. El secreto no es un modelo más inteligente, sino una arquitectura que carga instrucciones especializadas solo cuando son relevantes: los llamados “skills”.

En esta guía adaptada desde un ejemplo práctico con LangChain, explico qué son los skills, cómo funcionan como una capa de middleware, y cómo construir un agente que use skills para crear presentaciones PPTX y reportes Excel. El enfoque es práctico y pensado para equipos técnicos y tomadores de decisión en Latinoamérica que buscan incorporar capacidades automatizadas sin sobrecargar el modelo.

¿Qué son LangChain y los “skills”?

LangChain es un framework diseñado para construir sistemas potentes alrededor de modelos de lenguaje: agentes, cadenas de procesos (chains) y pipelines de recuperación. Facilita las llamadas al modelo, el uso de herramientas preconstruidas o personalizadas y la gestión de memoria. Con unos pocos elementos LangChain puede orquestar un agente funcional que combine un modelo, herramientas y prompts de sistema.

Un “skill” es una unidad autosuficiente de instrucciones que el agente carga solo cuando es necesaria. En lugar de meter todas las instrucciones en un único prompt de sistema (lo cual sería costoso e ineficiente), el agente mantiene una lista corta de skills disponibles y solo pide el detalle completo del skill que requiera. Técnicamente, los skills se sirven mediante una herramienta que devuelve el contenido completo del skill bajo demanda.

Middleware: la capa que hace posible los skills

En este esquema, el middleware actúa entre el agente y el modelo en cada turno de la conversación. Puede:

  • Reescribir la petición antes de que la vea el modelo.
  • Inspeccionar o modificar la respuesta antes de retornarla al agente.
  • Inyectar herramientas o instrucciones adicionales sin tocar la lógica central del agente.

Los skills se apoyan en este middleware: el agente anuncia qué skills están disponibles (solo nombre y descripción) y el middleware ofrece la herramienta para cargar el skill seleccionado. Así, la carga completa del skill ocurre solo cuando el modelo decide que lo necesita.

Ejemplo: crear un agente con dos skills (PPTX y Excel)

A modo de ejemplo práctico, construiremos un agente que soporte dos skills:

  • pptx_builder: crea un archivo PowerPoint (.pptx) a partir de un título y una lista de diapositivas.
  • excel_reporter: arma un libro Excel (.xlsx) a partir de una o varias tablas nombradas.

Cada skill vive como un archivo SKILL.md en una carpeta skills/ y, tras preparar la estructura de contenido, el skill invoca una herramienta real que guarda el archivo y devuelve la ruta.

Prerrequisitos

  • Una clave de OpenAI (u otro proveedor compatible). Pueden obtener la API key en https://platform.openai.com/api-keys.
  • Un entorno Python: Jupyter Notebook, Google Colab o similar.
  • Librerías: LangChain y utilidades para generar PPTX/Excel (por ejemplo, python-pptx y openpyxl). El ejemplo original instala: langchain, langchain-core, langchain-openai, langgraph, python-pptx y openpyxl.

Estructura de los SKILL.md

Cada skill contiene metadatos (nombre y descripción) y un cuerpo con instrucciones claras. Ejemplos (resumidos):

  • excel_reporter/SKILL.md: define a la IA como “spreadsheet analyst” y detalla cómo organizar datos en hojas, mantener la primera fila como encabezado, conservar números como números y, al finalizar, llamar a una herramienta create_excel con un objeto que incluya title y sheets (cada sheet con nombre, headers y rows).

  • pptx_builder/SKILL.md: define a la IA como “presentation specialist” y especifica estructura de slides (4–8 slides por defecto), formato de cada slide (título y 2–4 bullets), slide inicial como portada, selección de theme_color y font_name, y la llamada final a create_pptx con title, slides, theme_color y font_name.

Cargar skills en memoria

Una vez almacenados los SKILL.md, el flujo recomendado es leer cada archivo y exponer al agente solo el nombre y la descripción de cada skill. Luego, cuando el agente considere necesario usar un skill, invoca una herramienta llamada load_skill que devuelve el contenido completo.

En Python, la lógica de carga se puede esbozar así (resumen):

from pathlib import Path

SKILLS_DIR = Path('skills')

def load_all_skills():
    skills = []
    for skill_file in sorted(SKILLS_DIR.glob('*/SKILL.md')):
        text = skill_file.read_text()
        # separar front matter y contenido, extraer name y description
        # agregar a la lista como diccionario {name, description, content}
    return skills

SKILLS = load_all_skills()
# Mostrar a la IA solo los pares (name, description)

Herramienta para cargar un skill

Una herramienta simple que devuelve la instrucción completa de un skill por nombre permite que el agente solicite solo lo que necesita:

from langchain.tools import tool

@tool
def load_skill(skill_name: str) -> str:
    for skill in SKILLS:
        if skill['name'] == skill_name:
            return skill['content']
    return f"Unknown skill '{skill_name}'. Options: {[s['name'] for s in SKILLS]}"

Esta herramienta se inyecta en el agente vía middleware: el agente ve la lista corta de skills disponibles y, si el modelo decide usar uno, llama a load_skill para incorporar el detalle.

Flujo de trabajo e integración

  1. Al inicio, el agente conoce solo los nombres y descripciones de los skills.
  2. El usuario hace una petición (por ejemplo: “Genera una presentación sobre estrategias de mercado”).
  3. El agente decide qué pasos seguir y, si detecta la necesidad de un skill específico, invoca load_skill('pptx_builder').
  4. El middleware entrega las instrucciones del skill al modelo; el modelo genera la estructura del PPTX o Excel.
  5. Una herramienta real (p. ej. create_pptx o create_excel) recibe la estructura y guarda el archivo en disco, retornando la ruta al usuario.

Beneficios y consideraciones para equipos en Latinoamérica

  • Eficiencia: ahorrar tokens y costos al evitar prompts gigantescos cargados en cada llamada.
  • Especialización: separar responsabilidades facilita que equipos locales definan skills coherentes con prácticas y formatos regionales (por ejemplo, plantillas de presentación o formatos de reporte financiero comunes en la región).
  • Gobernanza: skills bien documentados permiten auditar instrucciones, facilitar cumplimiento y aplicar controles antes de desplegar capacidades automatizadas en producción.

Consideren además políticas de seguridad sobre datos sensibles y un control de versiones sobre los SKILL.md, de modo que cambios en las instrucciones puedan revisarse por equipos legales o de producto.

Conclusión

Los skills transforman agentes LLM en herramientas más potentes, flexibles y económicas. Con LangChain es posible estructurar estos skills como archivos independientes, exponerlos al agente de forma minimalista y cargarlos solo cuando se requieran. Para equipos en Latinoamérica, este enfoque facilita adaptar el comportamiento del agente a formatos y prácticas locales sin inflar costos operativos.

Preguntas frecuentes (breve)

  • ¿Necesito OpenAI obligatoriamente? No: el ejemplo usa OpenAI como demo, pero LangChain admite otros modelos y proveedores.
  • ¿Los skills pueden llamar herramientas reales? Sí: el flujo típico es que el skill prepare la estructura y luego invoque una herramienta como create_pptx o create_excel para guardar archivos.
  • ¿Cómo mantener versiones de skills? Traten los SKILL.md como código: manténganlos en un repositorio con control de versiones y revisiones por pares.

Si desean, puedo adaptar este ejemplo a un repositorio de muestra o a una plantilla de SKILL.md con contenido en español y formatos comunes en empresas latinoamericanas.

Fuente original: Analytics Vidhya