
Skillscript — eine kleine deklarative Sprache zum Erstellen von Agenten-Workflows. Laufzeitumgebung, Compiler und CLI.
Sichere, wiederverwendbare Automatisierung, erstellt von Agenten.
skillscript.ai • Dokumentation
TL;DR —
npm install -g skillscript-runtime && skillfile init && skillfile dashboard. Siehe Quickstart.
Skillscript entstand aus der Frage: Wie würde ein Makefile aussehen, wenn es statt Binärdateien Skills bauen würde? Die Antwort ist eine eingeschränkte Sprache, inspiriert von Make, und eine Laufzeitumgebung, die das Denken eines Agenten in dauerhafte, überprüfbare Automatisierung verwandelt. Der Agent schreibt den Skill, Sie genehmigen, was er tun kann, und er läuft jedes Mal gleich ab.
Es ist für Teams entwickelt, die möchten, dass Agenten wiederkehrende Arbeitsabläufe erstellen und ausführen, ohne ihnen uneingeschränkten Shell-Zugriff, beliebige Paketinstallation oder direkte Kontrolle über Produktionsanmeldeinformationen zu geben.
Ein Agent schreibt einen Skill. Ein Mensch überprüft und genehmigt ihn. Die Laufzeitumgebung führt ihn über konfigurierte Konnektoren, Erlaubnislisten und Sicherheitsrichtlinien aus.
npm install -g skillscript-runtime
skillfile init
skillfile dashboard
Verbinden Sie dann Ihren Agenten mit dem MCP: http://localhost:7878/rpc und bitten Sie ihn, einen Skill zu erstellen.
Agenten leiten Routineaufgaben normalerweise von Grund auf neu ab. Das erhöht Kosten, Latenz und Verhaltensdrift.
Skillscript ermöglicht es einem Agenten, eine gelernte Prozedur in einem benannten, wiederverwendbaren Artefakt zu kristallisieren, das:
Skillscript ist reine Orchestrierung. Berechnungen bleiben in Tools und Konnektoren; Skills koordinieren diese Fähigkeiten durch eine kleine deklarative Grammatik. Dies kann den Token-Verbrauch von Frontier-Modellen in wiederkehrenden Arbeitsabläufen deutlich senken: Die Denkkosten werden einmal beim Erstellen des Skills bezahlt, und jeder anschließende Durchlauf erfolgt deterministisch, während routinemäßige Teilaufgaben an günstigere lokale Modelle delegiert werden.
Python und Bash bleiben für Implementierungsarbeiten nützlich. Das Risiko besteht darin, agentengeschriebene Skripte unbeaufsichtigt mit uneingeschränktem Zugriff auf den Host auszuführen.
Skillscript verkleinert diese Ausführungsoberfläche:
eval oder Subprocess-EscapeDas Ziel ist nicht, Skripte zu ersetzen. Es geht darum, Skripte und APIs hinter Fähigkeiten zu platzieren, die der Betreiber explizit freigibt.
Es gibt auch einen Skalierungsgrund. Das Überprüfen von beliebigem Code bedeutet, alles zu auditieren, was er tun könnte, was einen erfahrenen Leser erfordert. Ein Skillscript legt seine gesamte Effektoberfläche auf die Seite, sodass die Genehmigung handhabbar bleibt, selbst wenn Agenten schneller erstellen, als jemand Code lesen kann, und der Betreiber, der weiß, was seine Systeme zulassen sollten, kann basierend auf den deklarierten Effekten genehmigen, anstatt Logik erneut zu lesen.
Ein Skill ist ein typisierter, deklarativer Workflow mit Variablen, Operationen, Abhängigkeiten und einer Ausgabevorlage.
# Skill: hello
# Status: Approved
# Description: Greet someone by name.
# Vars: WHO=world
Hello, ${WHO}!
Das ist ein vollständiger, ausführbarer Skill. Der Körper wird als seine Ausgabe gerendert.
Skills können auch Konnektoren aufrufen, verzweigen, schleifen, andere Skills ausführen, auf Ereignisse reagieren und nach Zeitplänen ausgeführt werden:
# 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
Die Laufzeitumgebung wird den Shell-Befehl und das Dateischreiben verweigern, bis der Betreiber die Binärdatei und den Pfad in die Erlaubnisliste aufnimmt.
Draft an, inaktiv, bis Sie ihn genehmigen.Skills können drei Rollen übernehmen:
| Art | Zweck |
|---|---|
| Headless | Läuft autonom und sendet die Ausgabe an ein System oder einen Menschen |
| Augmenting | Bereitet Kontext für einen Frontier-Agenten vor |
| Template | Gibt einem Agenten eine wiederverwendbare Prozedur vor |
npm install -g skillscript-runtime
skillfile init
skillfile dashboard --host 127.0.0.1 --port 7878
Öffnen Sie http://localhost:7878.
Verwenden Sie --host 0.0.0.0 nur, wenn ein anderer Container oder Rechner die Laufzeitumgebung erreichen muss, und schützen Sie den freigegebenen Eingang entsprechend.
{
"mcpServers": {
"skillscript": {
"type": "http",
"url": "http://localhost:7878/rpc"
}
}
}
Erstellen Sie einen Skill, der jemanden mit Namen begrüßt.
Der Agent schreibt den Skill über MCP. Genehmigen Sie ihn im Dashboard oder in der CLI:
skillfile approve hello
skillfile execute hello
Skills greifen über konfigurierte Konnektoren auf externe Systeme zu, nicht über direkte Anmeldeinformationen. Konnektoren können MCP-Tools, Datenspeicher, lokale Modelle, Agenten-Zustellungskanäle oder benutzerdefinierte Laufzeitfähigkeiten bereitstellen.
Wichtige Betreibereinstellungen:
Geheimnisse werden von der Laufzeitumgebung aufgelöst und nur an genehmigte Senken weitergegeben. Skills können ihre Rohwerte nicht drucken oder einsehen.
Siehe den Konfigurationsleitfaden und die Konnektor-Referenz.
skillfile lint <skill>
skillfile compile <skill>
skillfile execute <skill>
skillfile approve <skill>
skillfile diagram <skill>
skillfile fires <skill>
skillfile replay <trace_id>
skillfile health
Führen Sie skillfile <command> --help für Optionen aus.
Skillscript ist pre-1.0. Die Kernsprache und die Konnektor-Verträge stabilisieren sich; Arbeiten an externer Übernahme und Verteilung laufen.
Fehlerberichte und Funktionswünsche sind über Issues willkommen. Eröffnen Sie ein Issue, bevor Sie Grammatikänderungen vorschlagen, damit das Design zuerst diskutiert werden kann.
MIT. Siehe LICENSE.
| Einstellung | Standard |
|---|
SKILLSCRIPT_SHELL_ALLOWLIST | alle Binärdateien ablehnen |
SKILLSCRIPT_FS_ALLOWLIST | alle Pfade ablehnen |
SKILLSCRIPT_SECURED_MODE | aus |
SKILLSCRIPT_MAX_DEADLINE_SECONDS | nicht gesetzt (keine Obergrenze) |
SKILLSCRIPT_SUPERVISOR_SKILL | nicht gesetzt (aus) |
SKILLSCRIPT_SECRET_<NAME> | nicht gesetzt |