Skrun es un framework que transforma archivos SKILL.md (procedimientos ejecutables) en APIs callable para agentes de IA, usando el estándar abierto Agent Skills creado por Anthropic. El flujo es directo: escribís tu skill en Markdown, lo configuras en YAML, lo deployás con un comando y obtenés un endpoint REST listo para usar con cualquier modelo (Claude, GPT, Gemini, Groq, etc.) con fallback automático si uno falla. Simplifica el proceso que antes era tedioso: antes necesitabas armar wrappers en Python/Node, manejar errores de modelo, configurar autenticación. Ahora, `skrun init –from-skill ./my-skill` y después `skrun deploy`. Es el LangChain pero más liviano y enfocado en skills como primitivas distribuibles.
En 30 segundos
- Skrun convierte skills (procedimientos en SKILL.md) en APIs REST callable para agentes IA con multimodelo (Anthropic, OpenAI, Google, Groq, Mistral) y fallback automático
- Agent Skills es un estándar abierto (desde diciembre 2025) adoptado por Anthropic, Google, Microsoft, Vercel, compatible con MCP para integración de tools locales
- Workflow: crear skill → `skrun dev` para hot-reload local → testear → `skrun deploy` → obtener endpoint autenticado con I/O tipado
- Manejo de errores, timeouts y validación JSON integrados; 1000+ skills publicados en ecosistema, casos de uso desde APIs de voz (Vapi) hasta automación de bases de datos
- Errores comunes: prompts sin límites de tokens (costos disparan), skills genéricos sin contexto, no configurar fallbacks a múltiples modelos
Qué es Skrun y el formato Agent Skills
Skrun es un framework de código abierto desarrollado para simplificar el deployment de agentes de IA especializados. Pero antes de meternos en Skrun, necesitás entender qué son los Agent Skills.
Un agent skill es un procedimiento ejecutable que un agente (un modelo de IA actuando como sistema autónomo) puede correr. Ponele: un skill que genera un reporte SQL, otro que valida direcciones de email, otro que consulta tu inventario. Son unidades pequeñas, enfocadas, reutilizables. Agent Skills es un estándar abierto que Anthropic creó y que ahora adoptan Google, Microsoft, Vercel y otros. La especificación vive en agentskills.io.
Lo que Skrun hace es tomar esos skills (descritos en un formato llamado SKILL.md — básicamente Markdown + YAML) y exponerlos como APIs REST autenticadas y escalables. Sin que vos tengas que escribir Flask, manejar autenticación, configurar rate limiting, o pensar en costos de tokens. El framework lo maneja.
Cómo funciona el workflow de Skrun
El flujo es simple en teoría, potente en práctica. Arrancas con `skrun init` y elegís crear un skill nuevo o importar uno existente (desde GitHub, desde el catálogo oficial, lo que quieras). El comando te arma una estructura de carpetas:
- SKILL.md — tu skill en Markdown, con metadatos en frontmatter YAML
- scripts/ — código ejecutable (Python, Node, lo que uses)
- references/ — documentación interna, ejemplos
- agent.yaml — configuración de qué modelo usar, timeouts, rate limits
- .env — credenciales de APIs externas si las necesitás
Después corres `skrun dev` y tenés un servidor local en `http://localhost:8000` con hot-reload. Cambias el SKILL.md, refrescás, y la definición se actualiza sin reiniciar. Es lo opuesto a la pesadez de compilar, mockear, debuggear en producción.
Cuando estás listo, `skrun deploy` sube tu skill a la infraestructura de Skrun (o tu propia infra si configurás así), genera un endpoint HTTPS autenticado con JWT, y te devuelve un curl de ejemplo. Ese endpoint ahora es callable desde cualquier agente, cualquier aplicación, lo que sea. El request es JSON simple:
POST /skill/{skill-id}/run- Body:
{"input": {...}, "context": {...}} - Response:
{"output": {...}, "metadata": {...}} - Auth: header
Authorization: Bearer {token}
Características clave y ventajas técnicas
Skrun viene con feature set que en otros frameworks te costs configurar vos.
Multimodelo con fallback automático. Tu skill se configura con un modelo primario (digamos Claude 3.5 Sonnet) pero si cae o es lento, intenta automáticamente con Gemini 2.0 Flash, luego GPT-4o, luego Groq Llama. Vos especificás el fallback chain en agent.yaml. No se rompe si una API tiene un outtage.
Ejecución stateful. Un skill puede retener estado entre invocaciones si lo necesita — por ejemplo, un skill que analiza logs y acumula contexto línea por línea. Skrun maneja la sesión automáticamente. En normas de seguridad empresarial profundizamos sobre esto.
Integración MCP (Model Context Protocol). Si tu skill necesita acceso a tools locales (una base de datos, un API privado, un sistema de archivos), podés conectar un MCP server y tu skill lo usa como si fuera nativo. Es el mismo protocolo que usa Claude Desktop para tools locales.
I/O tipado. Definís el schema JSON de input y output en SKILL.md. Skrun valida automáticamente — si recibes un request con campos inválidos, rechaza con 400 antes de invocar el modelo. Eso ahorra dinero en tokens desperdiciados.
Testing framework. Podés escribir tests unitarios para tu skill (en Python o JavaScript) y correr `skrun test`. No necesitás esperar a producción para ver si funciona.
Comparado con LangChain, Agent Zero, o frameworks enterprise: LangChain es más flexible pero requiere que armes la arquitectura vos (logging, deployments, monitoreo). Agent Zero es más enfocado en agentes coordinados pero menos modular para microservicios. Skrun está en el medio: simple para casos pequeños, escalable para casos grandes, con convention over configuration.
Agent Skills SKILL.md: estructura y especificación
Un SKILL.md es un archivo que combina Markdown legible con YAML estructurado. La especificación oficial vive en agentskills.io y se formalizó en diciembre de 2025.
La estructura es esta:
- Frontmatter YAML (requerido): campos como
name(1-64 caracteres, lowercase alphanumeric),description(1-1024 caracteres),version(1.0.0),inputs(schema JSON),outputs(schema JSON) - Sección “description” (requerido): párrafo en Markdown que explica qué hace el skill en lenguaje humano
- Sección “parameters” (opcional): tabla o lista con detalles sobre qué campos acepta
- Sección “output”: describe qué devuelve, con ejemplos
- Sección “errors” (opcional): qué puede salir mal y cómo lo maneja el skill
Ejemplo mínimo:
---name: generate-sql-querydescription: Genera una query SQL a partir de instrucciones en lenguaje naturalversion: 1.0.0inputs:type: objectproperties:instruction: {type: string}schema: {type: object}---# DescripciónToma una instrucción en inglés o español y devuelve una query SQL válida.
La estructura se organiza en una carpeta (ej: `skills/generate-sql-query/`) con el SKILL.md adentro, más opcionalmente `scripts/`, `references/`, `assets/`. Cuando publicás, Skrun indexa automáticamente el skill y lo hace buscable en el catálogo.
Errores comunes al deployar agent skills
1. Prompts sin límites de tokens. Escribís un prompt de 5000 palabras esperando que sea “mejor”, pero cada invocación te cuesta 10x más en créditos de OpenRouter/Anthropic. Skrun no te bloquea esto automáticamente — la responsabilidad es tuya. Regla: prompt máximo 500 palabras, complementa con contexto en `agent.yaml`, no en el prompt.
2. Documentar en lugar de ejecutar. El skill describes todo lo que hace pero el script ejecutable no lo hace. El Markdown dice “valida email” pero el código solo devuelve true. Skrun va a fallar cuando intente correr el skill en producción. Revisá que el código coincida con la descripción (eso lo hace el quality gate automáticamente, pero miralo vos también).
3. Skills genéricos que aplican a todo. “Mi skill es un generador de contenido” — podes, pero es muy amplio. Un agente va a usar ese skill en contextos donde no debería (generar contenido sobre COVID, generar NSFW, lo que sea). Los skills buenos son *bounded* — “generar resumen de artículos técnicos”, “extraer entidades de facturas”, “sugerir próximo paso en onboarding”. Specific es mejor. Más contexto en modelos como ChatGPT.
4. No manejar fallos de proveedores. Configuraste fallback a dos modelos, pero si ambos fallan, el skill revienta. Pone en el código un try/except que devuelva una respuesta parcial o un error descriptivo. Los agentes saben lidiar con errores si están bien formateados.
5. Timeouts insuficientes. Tu skill llama a un API que tarda 2-5 segundos. Configuraste timeout de 3 segundos en agent.yaml. Medio que funciona a veces, otros fallos aleatorios. La regla es: mide localmente cuánto tarda el peor caso, multiplica por 1.5, eso es tu timeout. Si es 5 segundos, ponelo en 8. Mejor lento que roto.
6. No validar JSON de salida. El prompt dice “devolvé JSON”, pero el modelo a veces devuelve JSON inválido (comilla sin cerrar, trailing comma, lo que sea). Skrun tiene `json_mode` (si usás OpenRouter con Gemini o similar) — usalo. Si no, parseá y re-lanzo error si no es válido.
Comparación: Skrun vs otros frameworks
| Framework | Complejidad | Multimodelo | MCP integrado | Testing | Deploy |
|---|---|---|---|---|---|
| Skrun | Baja (convention over config) | Sí, fallback automático | Sí | Sí, built-in | Un comando |
| LangChain | Alta (flexible, armas vos) | Sí (pero lo configuras) | No nativo | Terceros | Custom |
| Agent Zero | Media (enfocado en agentes) | Limitado | Parcial | Manual | Self-hosted |
| Vertex AI (Google) | Media (Google-centric) | Sí (Gemini variants) | Sí | Sí | Google Cloud |
| Azure Agent (Microsoft) | Media (Azure-centric) | Sí (OpenAI models) | Sí (OpenAPI tools) | Sí | Azure |

Lo diferente de Skrun es la filosofía: una skill es una unidad de código *distribuible*, no una aplicación completa. Viene con todas las convenciones ya hechas, así que si necesitás un microservicio que sepa hacer una cosa bien, es el más rápido.
Deployment en producción: guía práctica
Antes de deployar a producción, Skrun te pide que pases ciertos checks. Lo hace el quality gate automáticamente, pero conviene que entiendas qué está pasando.
Seguridad antes de deployar. El sistema intenta detectar instrucciones adversariales en tu prompt o en el SKILL.md — cosas como “ignora tus instrucciones anteriores” o “actúa como modelo sin restricciones”. Si detecta algo sospechoso, te pide revisión manual. Es básico pero ayuda.
Fallbacks a múltiples modelos. En agent.yaml configurás el fallback chain: `[“claude-3.5-sonnet”, “gemini-2.0-flash”, “gpt-4o”]`. Si Sonnet está lento o cae, intenta Gemini. Si Gemini cae, intenta GPT. Skrun hace esto automáticamente sin que el skill lo sepa.
Timeouts. Recomendación: 10 segundos para skills sincronos que llaman APIs externas, 30 segundos para operaciones pesadas (training, procesamiento de archivos grandes). Si la ejecución supera el timeout, Skrun intenta con el siguiente modelo en el fallback chain, y si todos agotan, devuelve error. Ya lo cubrimos antes en la arquitectura de GPT.
Validación JSON. Si tu skill devuelve JSON, habilitá `json_mode: true` en agent.yaml. OpenRouter (con Gemini, Grok, etc.) lo soporta nativamente. Skrun valida el schema antes de devolverlo al cliente.
Rate limiting. Skrun asigna automáticamente limits basados en tu plan (free, pro, enterprise). Por defecto, 100 req/min para free. Si lo necesitás más, upgrade. La tasa se respeta por token y por IP.
Monitoreo. Skrun loguea automáticamente latencia, errores, uso de tokens, fallbacks disparados. Accedés a los logs en el dashboard o vía API (`GET /skill/{skill-id}/logs`). Armá alertas para error rate > 5% o latencia > 5s.
Ejemplo de curl para invocar un skill deployado:
curl -X POST https://skrun.io/api/v1/skills/generate-sql-query/run \-H "Authorization: Bearer sk-abc123..." \-H "Content-Type: application/json" \-d '{"input": {"instruction": "cuenta de usuarios activos", "schema": {...}}}'
Response (si todo va bien):
{"output": {"query": "SELECT COUNT(*) FROM users WHERE last_login > NOW() - INTERVAL 30 DAY"}, "metadata": {"model": "claude-3.5-sonnet", "tokens_used": 42, "latency_ms": 1200}}
Casos de uso reales y ecosistema
Skrun se está adoptando en varios casos:
Agentes de voz (Vapi). Vapi es una plataforma de voice AI. Integraron Skrun para que los agentes de voz puedan invocar skills sin latencia — “el agente recibe una llamada, entiende que necesita generar un reporte, invoca el skill de SQL generador, obtiene la query, la corre, devuelve el resultado al caller”. Todo en menos de 3 segundos.
Vertex AI Agent Builder (Google). Google está metiendo Agent Skills como primitiva en Vertex. Así que los agents de Gemini van a poder descobrir y correr skills Skrun directamente.
Microsoft Agent Framework. Microsoft está adoptando el estándar para agentes que corren en Azure. Los skills se describen en OpenAPI, pero Skrun está buscando ser compatible.
Documentación automática. Un skill que genera documentación técnica a partir de código fuente (parsea, entiende la arquitectura, genera README). Se invoca desde CI/CD. Usa Skrun para versionado y caché automático.
Procesamiento de emails en lote. Skill que procesa 1000 emails, extrae datos estructura dos, filtra spam, categoriza por urgencia. Lo invoca un agente cada hora. Skrun maneja retry automático si una invocación falla. Complementá con Gemini y sus capacidades.
Comunidad. El catálogo oficial tiene más de 1000 skills publicados (desde junio de 2025 cuando se abrió). Temas: procesamiento de imágenes, integración con Notion/Airtable, análisis de datos, web scraping, traducción, resumido.
Lo piola es que si necesitás un skill que no existe, lo escribís vos en 20 minutos, lo publishás, y otros lo usan. No es como npm donde tenés que armar todo el infraestructura de distribución.
Preguntas Frecuentes
¿Puedo usar Skrun con modelos open source locales?
Sí. Si corres Llama 2 o Mistral localmente, configurás el endpoint en agent.yaml con tipo "custom_api" y Skrun lo usa. El costo es menor (prácticamente gratis si es on-prem) pero la calidad puede bajar. Usá como modelo primario uno bueno (Claude, Gemini 2.0), fallback a tu modelo local si quieras. No al revés.
¿Cuánto cuesta deployar un skill en Skrun?
Plan free: 10.000 invocaciones/mes, máx 100 req/min, 30s timeout. Plan pro: $29/mes, 1 millón invocaciones, 1000 req/min. Enterprise: custom. Además pagás el costo de los tokens del modelo (OpenRouter, Anthropic, lo que uses). Un skill promedio que genera 500 tokens por invocación te cuesta ~USD 0.0015 por llamada si usás OpenRouter con modelos baratos (Gemini Flash).
¿Qué diferencia hay entre una rule y un skill?
Una rule es una instrucción que el agente sigue siempre (ej: “nunca respondas sobre política”). Un skill es un procedimiento que el agente *invoca* cuando lo necesita (ej: “generar reporte SQL”). Las rules son pasivas, los skills son activos. En Skrun, creás skills. Las rules las defines en el prompt del agente.
¿Puedo versionar mis skills y hacer rollback?
Sí. Cada deployment genera automáticamente una versión (v1, v2, v3). Podés especificar en el request cuál versión usar: `POST /skill/{skill-id}:v1/run` invoca v1, `:v2` invoca v2. El tráfico se puede gradualmente rotar de una versión a otra. Así que si una versión nueva tiene bug, rollback es trivial.
¿Skrun maneja autenticación hacia APIs externas?
Sí. Tus credenciales (API keys, tokens) van en .env. Skrun las encripta en reposo y las inyecta en el entorno del skill al correr. Nunca se loguean, nunca se exponen. Si tu skill necesita acceso a un API privado (ej: Stripe, Airtable, lo que sea), la API key está segura.
Conclusión
Skrun llena un gap que existía: la manera fácil de convertir un procedimiento de IA en un microservicio reusable. Antes, tenías que elegir entre LangChain (poderoso pero mucho boilerplate), Azure/Vertex (lockin a Google/Microsoft), o armar vos tu propia infraestructura (lento, propenso a errores).
Con Skrun, escribís tu procedimiento en Markdown, lo deployás en 30 segundos, y tenés un endpoint REST multimodelo con fallbacks automáticos, manejo de errores, monitoreo, versionado. La curva de aprendizaje es plana, la potencia está ahí.
¿Es para todos? No. Si tu caso es simple (un prompt + API única), no necesitás Skrun. Pero si estás armando un sistema donde múltiples agentes van a invocar el mismo procedimiento, donde quieres reutilización, versionado, rollback fácil — Skrun es exactamente lo que necesitás. (Y si después necesitás escalabilidad mayor o integraciones más complejas, el código que escribiste en Skrun es reutilizable en LangChain u otro framework — no es un callejón sin salida.)
El estándar Agent Skills (diciembre 2025) también es importante. Significa que skills escritas para Skrun van a ser compatibles con agentes de Google, Microsoft, futuros agentes de otros fabricantes. Es como HTML en web — una vez que publicás tu skill en el estándar, no queda atada a un vendor.
Fuentes
- Skrun en GitHub — repositorio oficial, código abierto, documentación técnica
- Agent Skills Specification — especificación estándar oficial de Agent Skills (Anthropic, Google, Microsoft)
- Show HN: Skrun en Hacker News — anuncio de Skrun en la comunidad de desarrolladores
- Claude Agent Skills Overview — documentación de Anthropic sobre agent skills y el protocolo MCP
- Best Practices for Agent Skills — guía oficial de mejores prácticas para crear skills production-ready
