
skillscript v0.39.1
Skillscript — un petit langage déclaratif pour créer des workflows d'agents. Runtime, compilateur et CLI.
Automatisation sécurisée et réutilisable, écrite par des agents.
TL;DR —
npm install -g skillscript-runtime && skillfile init && skillfile dashboard. Voir Démarrage rapide.
Qu'est-ce que Skillscript ?
Skillscript est né de la question : à quoi ressemblerait un Makefile s'il construisait des compétences au lieu de binaires ? La réponse est un langage contraint, inspiré de Make, et un moteur d'exécution qui transforme le raisonnement d'un agent en une automatisation persistante et inspectable. L'agent écrit la compétence, vous approuvez ce qu'elle peut faire, et elle s'exécute de la même manière à chaque fois.
Il est conçu pour les équipes qui souhaitent que les agents créent et exécutent des workflows récurrents sans leur donner un accès illimité au shell, l'installation arbitraire de paquets, ou un contrôle direct des identifiants de production.
Un agent écrit une compétence. Un humain la révise et l'approuve. Le moteur d'exécution l'exécute via des connecteurs configurés, des listes d'autorisation et des politiques de sécurité.
npm install -g skillscript-runtime
skillfile init
skillfile dashboard
Connectez ensuite votre agent au MCP : http://localhost:7878/rpc et demandez-lui d'écrire une compétence.
Pourquoi l'utiliser ?
Les agents réinventent généralement les tâches de routine à partir de zéro. Cela augmente le coût, la latence et la dérive comportementale.
Skillscript permet à un agent de cristalliser une procédure apprise en un artefact nommé et réutilisable qui peut être :
- exécuté de manière répétée sans avoir à replanifier l'ensemble de la tâche
- inspecté et versionné par des humains
- validé avant d'être admis
- limité aux outils, fichiers, commandes et identifiants approuvés
- composé avec d'autres compétences
Skillscript est uniquement de l'orchestration. Le calcul reste à l'intérieur des outils et des connecteurs ; les compétences coordonnent ces capacités via une petite grammaire déclarative. Cela peut réduire significativement l'utilisation de tokens des modèles frontaliers dans les workflows récurrents : le coût de raisonnement est payé une fois lors de la création de la compétence, et chaque exécution ultérieure se fait de manière déterministe, les sous-tâches routinières étant confiées à des modèles locaux moins coûteux.
Pourquoi pas Python ou Bash ?
Python et Bash restent utiles pour le travail d'implémentation. Le risque est de permettre à des scripts écrits par des agents de s'exécuter sans surveillance avec un accès illimité à la machine hôte.
Skillscript réduit cette surface d'exécution :
- pas d'imports arbitraires, d'installation de paquets, de
evalou d'échappement de sous-processus - accès via connecteurs aux systèmes externes
- listes d'autorisation shell et système de fichiers par défaut-refus
- validation statique avant exécution
- signatures optionnelles de l'opérateur pour les compétences avec effets
- identifiants détenus par le moteur d'exécution plutôt qu'incorporés dans la compétence
L'objectif n'est pas de remplacer les scripts. Il est de placer les scripts et les API derrière des capacités que l'opérateur expose explicitement.
Il y a aussi une raison de passage à l'échelle. Réviser du code arbitraire signifie auditer tout ce qu'il pourrait faire, ce qui nécessite un lecteur compétent. Un skillscript place toute sa surface d'effet sur la page, de sorte que l'approbation reste gérable même lorsque les agents écrivent plus vite que quiconque ne peut lire le code, et l'opérateur qui sait ce que ses systèmes doivent permettre peut approuver sur la base des effets déclarés plutôt qu'en relisant la logique.
Une compétence
Une compétence est un workflow déclaratif typé avec des variables, des opérations, des dépendances et un modèle de sortie.
# Compétence : hello
# Statut : Approuvée
# Description : Saluer quelqu'un par son nom.
# Vars : WHO=world
Bonjour, ${WHO} !
C'est une compétence complète et exécutable. Le corps est rendu comme sa sortie.
Les compétences peuvent également appeler des connecteurs, bifurquer, boucler, exécuter d'autres compétences, répondre à des événements et s'exécuter selon des horaires :
# Compétence : daily-disk-check
# Statut : Approuvée
# Déclencheurs : cron:"0 6 * * *"
# Autonome : 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
Le moteur d'exécution refusera la commande shell et l'écriture de fichier tant que l'opérateur n'aura pas autorisé le binaire et le chemin.
Comment ça marche
- Création : Un agent connecté via MCP découvre les outils disponibles, écrit une compétence et la vérifie syntaxiquement. En mode sécurisé, elle arrive en tant que
Brouillon, inerte jusqu'à ce que vous l'approuviez. - Révision : Un humain inspecte et approuve la compétence. En mode sécurisé, l'approbation signe le contenu approuvé avec une clé détenue par l'opérateur.
- Exécution : La compétence s'exécute depuis la CLI, MCP, cron, un événement HTTP ou une autre compétence.
- Observation : Le moteur d'exécution enregistre les traces, les sorties, les échecs et les opérations bloquées.
Les compétences peuvent jouer trois rôles :
| Type | Objectif |
|---|---|
| Sans tête | S'exécute de manière autonome et envoie la sortie à un système ou un humain |
| Augmentant | Prépare le contexte pour un agent frontalier |
| Modèle | Donne à un agent une procédure réutilisable à suivre |
Démarrage rapide
1. Installer et démarrer le moteur d'exécution
npm install -g skillscript-runtime
skillfile init
skillfile dashboard --host 127.0.0.1 --port 7878
Ouvrez http://localhost:7878.
Utilisez --host 0.0.0.0 uniquement lorsqu'un autre conteneur ou machine doit atteindre le moteur d'exécution, et protégez l'entrée exposée de manière appropriée.
2. Ajouter le serveur MCP à votre agent
{
"mcpServers": {
"skillscript": {
"type": "http",
"url": "http://localhost:7878/rpc"
}
}
}
3. Demandez à l'agent de construire une compétence
Créez une compétence qui salue quelqu'un par son nom.
L'agent écrit la compétence via MCP. Approuvez-la dans le tableau de bord ou la CLI :
skillfile approve hello
skillfile execute hello
Connecteurs et sécurité
Les compétences accèdent aux systèmes externes via des connecteurs configurés plutôt qu'avec des identifiants directs. Les connecteurs peuvent exposer des outils MCP, des magasins de données, des modèles locaux, des canaux de livraison d'agents, ou des capacités personnalisées du moteur d'exécution.
Contrôles importants pour l'opérateur :
| Paramètre | Valeur par défaut |
|---|---|
SKILLSCRIPT_SHELL_ALLOWLIST | refuser tous les binaires |
SKILLSCRIPT_FS_ALLOWLIST | refuser tous les chemins |
SKILLSCRIPT_SECURED_MODE | désactivé |
SKILLSCRIPT_MAX_DEADLINE_SECONDS | non défini (pas de plafond) |
SKILLSCRIPT_SUPERVISOR_SKILL | non défini (désactivé) |
SKILLSCRIPT_SECRET_<NAME> | non défini |
Les secrets sont résolus par le moteur d'exécution et transmis uniquement aux destinations approuvées. Les compétences ne peuvent pas imprimer ou inspecter leurs valeurs brutes.
Consultez le guide de configuration et la référence des connecteurs.
Commandes courantes
skillfile lint <skill>
skillfile compile <skill>
skillfile execute <skill>
skillfile approve <skill>
skillfile diagram <skill>
skillfile fires <skill>
skillfile replay <trace_id>
skillfile health
Exécutez skillfile <commande> --help pour les options.
Documentation
- Référence du langage
- Configuration
- Guide de l'adoptant
- Guide de l'agent adoptant
- Contrats des connecteurs
- Mise à niveau
- Exemples
- Exemples supplémentaires sur le site web
Statut
Skillscript est en pré-1.0. Le langage central et les contrats des connecteurs se stabilisent ; le travail d'adoption externe et de distribution est en cours.
Contribuer
Les rapports de bugs et les demandes de fonctionnalités sont les bienvenus via Issues. Ouvrez une Issue avant de proposer des modifications de la grammaire afin que la conception puisse être discutée au préalable.
Licence
MIT. Voir LICENSE.