
skillscript v0.39.1
Skillscript — uma pequena linguagem declarativa para criar fluxos de trabalho de agentes. Runtime, compilador e CLI.
Automação segura e reutilizável criada por agentes.
TL;DR —
npm install -g skillscript-runtime && skillfile init && skillfile dashboard. Veja Início Rápido.
O que é Skillscript?
Skillscript surgiu da pergunta: como seria um Makefile se ele construísse habilidades em vez de binários? A resposta é uma linguagem restrita, inspirada no Make, e um runtime que transforma o raciocínio de um agente em automação persistente e inspecionável. O agente escreve a habilidade, você aprova o que ela pode fazer, e ela executa da mesma forma todas as vezes.
Ele foi construído para equipes que desejam que agentes criem e executem fluxos de trabalho recorrentes sem dar a eles acesso total ao shell, instalação arbitrária de pacotes ou controle direto de credenciais de produção.
Um agente escreve uma habilidade. Um humano revisa e aprova. O runtime a executa por meio de conectores configurados, listas de permissão e políticas de segurança.
npm install -g skillscript-runtime
skillfile init
skillfile dashboard
Em seguida, conecte seu agente ao MCP: http://localhost:7878/rpc e peça para ele criar uma habilidade.
Por que usar?
Agentes geralmente redescobrem tarefas rotineiras do zero. Isso aumenta custo, latência e deriva comportamental.
Skillscript permite que um agente cristalize um procedimento aprendido em um artefato nomeado e reutilizável que pode ser:
- executado repetidamente sem replanejar toda a tarefa
- inspecionado e versionado por humanos
- validado antes de ser admitido
- limitado a ferramentas, arquivos, comandos e credenciais aprovados
- composto com outras habilidades
Skillscript é apenas orquestração. O processamento fica dentro das ferramentas e conectores; as habilidades coordenam essas capacidades por meio de uma gramática declarativa pequena. Isso pode reduzir significativamente o uso de tokens de modelos de fronteira em fluxos de trabalho recorrentes: o custo de raciocínio é pago uma vez quando a habilidade é criada, e cada execução subsequente ocorre deterministicamente, com subtarefas rotineiras delegadas a modelos locais mais baratos.
Por que não Python ou Bash?
Python e Bash continuam úteis para trabalho de implementação. O risco é permitir que scripts criados por agentes sejam executados sem supervisão com acesso irrestrito ao host.
Skillscript reduz essa superfície de execução:
- sem imports arbitrários, instalação de pacotes,
evalou escape de subprocessos - acesso a sistemas externos mediado por conectores
- listas de permissão de shell e sistema de arquivos com negação por padrão
- validação estática antes da execução
- assinaturas opcionais do operador para habilidades com efeitos colaterais
- credenciais mantidas pelo runtime em vez de embutidas na habilidade
O objetivo não é substituir scripts. É colocar scripts e APIs atrás de capacidades que o operador explicitamente expõe.
Há também uma razão de escala. Revisar código arbitrário significa auditar tudo o que ele pode fazer, o que exige um leitor qualificado. Uma skillscript coloca toda sua superfície de efeitos na página, para que a aprovação permaneça tratável mesmo quando agentes criam mais rápido do que qualquer um pode ler código, e o operador que sabe o que seus sistemas devem permitir pode aprovar com base nos efeitos declarados, em vez de reler a lógica.
Uma habilidade
Uma habilidade é um fluxo de trabalho declarativo e tipado com variáveis, operações, dependências e um template de saída.
# Skill: hello
# Status: Approved
# Description: Greet someone by name.
# Vars: WHO=world
Hello, ${WHO}!
Essa é uma habilidade completa e executável. O corpo é renderizado como sua saída.
Habilidades também podem chamar conectores, ramificar, fazer loops, executar outras habilidades, responder a eventos e executar em agendamentos:
# 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
O runtime recusará o comando shell e a gravação de arquivo até que o operador autorize o binário e o caminho.
Como funciona
- Criação: Um agente conectado ao MCP descobre as ferramentas disponíveis, escreve uma habilidade e a verifica. No modo seguro, ela chega como
Draft, inerte até que você a aprove. - Revisão: Um humano inspeciona e aprova a habilidade. No modo seguro, a aprovação assina o conteúdo aprovado com uma chave mantida pelo operador.
- Execução: A habilidade é executada a partir da CLI, MCP, cron, um evento HTTP ou outra habilidade.
- Observação: O runtime registra rastros, saídas, falhas e operações bloqueadas.
As habilidades podem desempenhar três papéis:
| Tipo | Finalidade |
|---|---|
| Autônoma | Executa de forma independente e envia saída para um sistema ou humano |
| Aumentativa | Prepara contexto para um agente de fronteira |
| Template | Fornece ao agente um procedimento reutilizável a seguir |
Início Rápido
1. Instale e inicie o runtime
npm install -g skillscript-runtime
skillfile init
skillfile dashboard --host 127.0.0.1 --port 7878
Abra http://localhost:7878.
Use --host 0.0.0.0 apenas quando outro contêiner ou máquina precisar alcançar o runtime, e proteja o acesso externo exposto adequadamente.
2. Adicione o servidor MCP ao seu agente
{
"mcpServers": {
"skillscript": {
"type": "http",
"url": "http://localhost:7878/rpc"
}
}
}
3. Peça ao agente para construir uma habilidade
Crie uma habilidade que cumprimente alguém pelo nome.
O agente escreve a habilidade via MCP. Aprove-a no dashboard ou na CLI:
skillfile approve hello
skillfile execute hello
Conectores e segurança
As habilidades acessam sistemas externos por meio de conectores configurados, em vez de credenciais diretas. Os conectores podem expor ferramentas MCP, armazenamentos de dados, modelos locais, canais de entrega de agentes ou capacidades personalizadas do runtime.
Controles importantes do operador:
| Configuração | Padrão |
|---|---|
SKILLSCRIPT_SHELL_ALLOWLIST | negar todos os binários |
SKILLSCRIPT_FS_ALLOWLIST | negar todos os caminhos |
SKILLSCRIPT_SECURED_MODE | desligado |
SKILLSCRIPT_MAX_DEADLINE_SECONDS | não definido (sem teto) |
SKILLSCRIPT_SUPERVISOR_SKILL | não definido (desligado) |
SKILLSCRIPT_SECRET_<NAME> | não definido |
Os segredos são resolvidos pelo runtime e passados apenas para destinos aprovados. As habilidades não podem imprimir ou inspecionar seus valores brutos.
Consulte o guia de configuração e a referência de conectores.
Comandos comuns
skillfile lint <skill>
skillfile compile <skill>
skillfile execute <skill>
skillfile approve <skill>
skillfile diagram <skill>
skillfile fires <skill>
skillfile replay <trace_id>
skillfile health
Execute skillfile <command> --help para opções.
Documentação
- Referência da linguagem
- Configuração
- Manual do adotante
- Guia do agente adotante
- Contratos de conectores
- Atualização
- Exemplos
- Exemplos adicionais no site
Status
Skillscript está em pré-1.0. A linguagem principal e os contratos de conectores estão se estabilizando; o trabalho de adoção e distribuição externa está em andamento.
Contribuindo
Relatórios de bugs e solicitações de funcionalidades são bem-vindos através de Issues. Abra uma Issue antes de propor mudanças na gramática para que o design possa ser discutido primeiro.
Licença
MIT. Consulte LICENSE.