
skillscript v0.39.1
Skillscript — un pequeño lenguaje declarativo para crear flujos de trabajo de agentes. Runtime, compilador y CLI.
Automatización segura y reutilizable creada por agentes.
skillscript.ai • documentación
Resumen —
npm install -g skillscript-runtime && skillfile init && skillfile dashboard. Ver Inicio rápido.
¿Qué es Skillscript?
Skillscript surgió de preguntarse: ¿qué aspecto tendría un Makefile si en lugar de binarios construyera habilidades? La respuesta es un lenguaje restringido, inspirado en Make, y un runtime que convierte el razonamiento de un agente en automatización persistente e inspeccionable. El agente escribe el skill, tú apruebas lo que puede hacer, y se ejecuta igual cada vez.
Está construido para equipos que desean que los agentes creen y ejecuten flujos de trabajo recurrentes sin darles acceso irrestricto al shell, instalación arbitraria de paquetes o control directo de credenciales de producción.
Un agente escribe un skill. Un humano lo revisa y lo aprueba. El runtime lo ejecuta a través de conectores configurados, listas blancas y políticas de seguridad.
npm install -g skillscript-runtime
skillfile init
skillfile dashboard
Luego conecta tu agente al MCP: http://localhost:7878/rpc y pídele que cree un skill.
¿Por qué usarlo?
Los agentes suelen volver a derivar tareas rutinarias desde cero. Eso incrementa el costo, la latencia y la deriva de comportamiento.
Skillscript permite que un agente cristalice un procedimiento aprendido en un artefacto con nombre, reutilizable, que puede ser:
- ejecutado repetidamente sin tener que replanificar toda la tarea
- inspeccionado y versionado por humanos
- validado antes de ser admitido
- limitado a herramientas, archivos, comandos y credenciales aprobados
- compuesto con otros skills
Skillscript es solo orquestación. El cómputo permanece dentro de herramientas y conectores; los skills coordinan esas capacidades a través de una pequeña gramática declarativa. Esto puede reducir significativamente el uso de tokens de modelos frontera en flujos de trabajo recurrentes: el costo de razonamiento se paga una vez cuando se crea el skill, y cada ejecución posterior se realiza de forma determinista, con sub-tareas rutinarias entregadas a modelos locales más económicos.
¿Por qué no Python o Bash?
Python y Bash siguen siendo útiles para trabajo de implementación. El riesgo es permitir que scripts creados por agentes se ejecuten sin supervisión con acceso irrestricito al host.
Skillscript reduce esa superficie de ejecución:
- sin imports arbitrarios, instalación de paquetes,
evalo escape de subprocesos - acceso a sistemas externos mediado por conectores
- listas blancas de shell y sistema de archivos con denegación por defecto
- validación estática antes de la ejecución
- firmas opcionales del operador para skills con efectos
- credenciales retenidas por el runtime en lugar de incrustadas en el skill
El objetivo no es reemplazar scripts. Es colocar scripts y APIs detrás de capacidades que el operador expone explícitamente.
También hay una razón de escalabilidad. Revisar código arbitrario significa auditar todo lo que podría hacer, lo que requiere un lector experto. Un skillscript expone toda su superficie de efectos en la página, por lo que la aprobación sigue siendo manejable incluso cuando los agentes crean más rápido de lo que cualquiera puede leer código, y el operador que sabe lo que sus sistemas deberían permitir puede aprobar basándose en los efectos declarados en lugar de releyendo la lógica.
Un skill
Un skill es un flujo de trabajo declarativo y tipado con variables, operaciones, dependencias y una plantilla de salida.
# Skill: hello
# Status: Approved
# Description: Greet someone by name.
# Vars: WHO=world
Hello, ${WHO}!
Eso es un skill completo y ejecutable. El cuerpo se renderiza como su salida.
Los skills también pueden llamar conectores, bifurcar, iterar, ejecutar otros skills, responder a eventos y ejecutarse según horarios:
# Skill: daily-disk-check
# Status: Approved
# Triggers: cron:"0 6 * * *"
# Autonomous: true
Snapshot written for ${NOW}.
snapshot:
shell(command="df -h --output=source,pcent,target") -> USAGE
file_write(
path="/var/log/skillscript/disk-${EVENT.fired_at_unix}.txt",
content="${USAGE}"
)
default: snapshot
El runtime rechazará el comando de shell y la escritura de archivo hasta que el operador ponga en lista blanca el binario y la ruta.
Cómo funciona
- Autor: Un agente conectado a MCP descubre las herramientas disponibles, escribe un skill y lo verifica. En modo seguro llega como
Draft, inerte hasta que lo apruebes. - Revisión: Un humano inspecciona y aprueba el skill. En modo seguro, la aprobación firma el contenido aprobado con una clave del operador.
- Ejecución: El skill se ejecuta desde la CLI, MCP, cron, un evento HTTP u otro skill.
- Observación: El runtime registra trazados, salidas, fallos y operaciones bloqueadas.
Los skills pueden desempeñar tres roles:
| Tipo | Propósito |
|---|---|
| Autónomo | Se ejecuta de forma autónoma y envía la salida a un sistema o humano |
| Aumento | Prepara contexto para un agente frontera |
| Plantilla | Proporciona a un agente un procedimiento reutilizable a seguir |
Inicio rápido
1. Instalar e iniciar el runtime
npm install -g skillscript-runtime
skillfile init
skillfile dashboard --host 127.0.0.1 --port 7878
Abre http://localhost:7878.
Usa --host 0.0.0.0 solo cuando otro contenedor o máquina necesite alcanzar el runtime, y protege la entrada expuesta adecuadamente.
2. Añadir el servidor MCP a tu agente
{
"mcpServers": {
"skillscript": {
"type": "http",
"url": "http://localhost:7878/rpc"
}
}
}
3. Pide al agente que construya un skill
Crea un skill que salude a alguien por su nombre.
El agente escribe el skill a través de MCP. Aprueba en el dashboard o CLI:
skillfile approve hello
skillfile execute hello
Conectores y seguridad
Los skills acceden a sistemas externos a través de conectores configurados, no mediante credenciales directas. Los conectores pueden exponer herramientas MCP, almacenes de datos, modelos locales, canales de entrega de agentes o capacidades personalizadas del runtime.
Controles importantes del operador:
| Configuración | Por defecto |
|---|---|
SKILLSCRIPT_SHELL_ALLOWLIST | denegar todos los binarios |
SKILLSCRIPT_FS_ALLOWLIST | denegar todas las rutas |
SKILLSCRIPT_SECURED_MODE | desactivado |
SKILLSCRIPT_MAX_DEADLINE_SECONDS | sin definir (sin límite) |
SKILLSCRIPT_SUPERVISOR_SKILL | sin definir (desactivado) |
SKILLSCRIPT_SECRET_<NAME> | sin definir |
Los secretos son resueltos por el runtime y pasados solo a sumideros aprobados. Los skills no pueden imprimir ni inspeccionar sus valores sin procesar.
Consulta la guía de configuración y la referencia de conectores.
Comandos comunes
skillfile lint <skill>
skillfile compile <skill>
skillfile execute <skill>
skillfile approve <skill>
skillfile diagram <skill>
skillfile fires <skill>
skillfile replay <trace_id>
skillfile health
Ejecuta skillfile <command> --help para opciones.
Documentación
- Referencia del lenguaje
- Configuración
- Manual del adoptante
- Guía del agente adoptante
- Contratos de conectores
- Actualización
- Ejemplos
- Ejemplos adicionales en el sitio web
Estado
Skillscript está en pre-1.0. El lenguaje central y los contratos de conectores se están estabilizando; el trabajo de adopción y distribución externa sigue en curso.
Contribuciones
Los informes de errores y las solicitudes de funciones son bienvenidos a través de Issues. Abre un Issue antes de proponer cambios en la gramática para que el diseño pueda discutirse primero.
Licencia
MIT. Ver LICENCIA.