
skillscript v0.39.1
Skillscript — небольшой декларативный язык для создания агентных рабочих процессов. Среда выполнения, компилятор и CLI.
Безопасная, многократно используемая автоматизация, созданная агентами.
TL;DR —
npm install -g skillscript-runtime && skillfile init && skillfile dashboard. См. Быстрый старт.
Что такое Skillscript?
Skillscript появился из вопроса: как бы выглядел Makefile, если бы он собирал навыки вместо двоичных файлов? Ответ — это ограниченный язык, вдохновлённый Make, и среда выполнения, которая превращает рассуждения агента в постоянную, проверяемую автоматизацию. Агент пишет навык, вы одобряете то, что он может делать, и он выполняется одинаково каждый раз.
Он создан для команд, которые хотят, чтобы агенты создавали и выполняли повторяющиеся рабочие процессы, не предоставляя им неограниченный доступ к оболочке, произвольную установку пакетов или прямой контроль над производственными учётными данными.
Агент пишет навык. Человек проверяет и одобряет его. Среда выполнения выполняет его через настроенные коннекторы, белые списки и политики безопасности.
npm install -g skillscript-runtime
skillfile init
skillfile dashboard
Затем подключите своего агента к MCP: http://localhost:7878/rpc и попросите его создать навык.
Зачем это использовать?
Агенты обычно восстанавливают рутинные задачи с нуля. Это увеличивает стоимость, задержку и поведенческий дрейф.
Skillscript позволяет агенту кристаллизовать изученную процедуру в именованный, многократно используемый артефакт, который можно:
- выполнять повторно без повторного планирования всей задачи
- проверять и версионировать людьми
- валидировать перед допуском
- ограничивать одобренными инструментами, файлами, командами и учётными данными
- комбинировать с другими навыками
Skillscript — это только оркестровка. Вычисления остаются внутри инструментов и коннекторов; навыки координируют эти возможности через небольшой декларативный синтаксис. Это может существенно сократить использование токенов frontier-модели в повторяющихся рабочих процессах: затраты на рассуждение оплачиваются один раз при создании навыка, а каждый последующий запуск выполняется детерминированно, при этом рутинные подзадачи передаются более дешёвым локальным моделям.
Почему не Python или Bash?
Python и Bash остаются полезными для реализации. Риск заключается в том, что скрипты, созданные агентом, будут выполняться без присмотра с неограниченным доступом к хосту.
Skillscript сужает эту поверхность выполнения:
- нет произвольных импортов, установки пакетов,
evalили побега из подпроцесса - доступ к внешним системам через коннекторы
- белые списки оболочки и файловой системы по умолчанию запрещают всё
- статическая валидация перед выполнением
- необязательные подписи оператора для эффектных навыков
- учётные данные хранятся в среде выполнения, а не встроены в навык
Цель не заменить скрипты, а поместить скрипты и API за возможности, которые оператор явно предоставляет.
Есть также причина масштабирования. Проверка произвольного кода означает аудит всего, что он может сделать, что требует квалифицированного читателя. Skillscript помещает всю поверхность эффектов на страницу, поэтому одобрение остаётся выполнимым, даже когда агенты создают быстрее, чем кто-либо может прочесть код, и оператор, который знает, что его системы должны разрешать, может одобрять на основе объявленных эффектов, а не перечитывая логику.
Навык
Навык — это типизированный, декларативный рабочий процесс с переменными, операциями, зависимостями и шаблоном вывода.
# Skill: hello
# Status: Approved
# Description: Greet someone by name.
# Vars: WHO=world
Hello, ${WHO}!
Это полный, выполнимый навык. Тело преобразуется в его вывод.
Навыки также могут вызывать коннекторы, ветвиться, зацикливаться, запускать другие навыки, реагировать на события и выполняться по расписанию:
# 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
Среда выполнения откажется выполнять команду оболочки и запись файла, пока оператор не добавит двоичный файл и путь в белый список.
Как это работает
- Автор: Агент, подключённый к MCP, обнаруживает доступные инструменты, пишет навык и линтует его. В защищённом режиме он приходит как
Draft(черновик), неактивный до утверждения. - Проверка: Человек проверяет и одобряет навык. В защищённом режиме одобрение подписывает утверждённое содержимое ключом оператора.
- Запуск: Навык выполняется из CLI, MCP, cron, HTTP-события или другого навыка.
- Наблюдение: Среда выполнения записывает трассировки, выводы, ошибки и заблокированные операции.
Навыки могут выполнять три роли:
| Вид | Назначение |
|---|---|
| Headless | Выполняется автономно и отправляет вывод системе или человеку |
| Augmenting | Подготавливает контекст для frontier-агента |
| Template | Предоставляет агенту многократно используемую процедуру для выполнения |
Быстрый старт
1. Установите и запустите среду выполнения
npm install -g skillscript-runtime
skillfile init
skillfile dashboard --host 127.0.0.1 --port 7878
Откройте http://localhost:7878.
Используйте --host 0.0.0.0 только когда другой контейнер или машина должна достичь среды выполнения, и защитите открытый доступ соответствующим образом.
2. Добавьте MCP-сервер к вашему агенту
{
"mcpServers": {
"skillscript": {
"type": "http",
"url": "http://localhost:7878/rpc"
}
}
}
3. Попросите агента создать навык
Создай навык, который приветствует человека по имени.
Агент пишет навык через MCP. Одобрите его в панели управления или CLI:
skillfile approve hello
skillfile execute hello
Коннекторы и безопасность
Навыки получают доступ к внешним системам через настроенные коннекторы, а не напрямую через учётные данные. Коннекторы могут предоставлять инструменты MCP, хранилища данных, локальные модели, каналы доставки агентов или пользовательские возможности среды выполнения.
Важные элементы управления оператором:
| Параметр | По умолчанию |
|---|---|
SKILLSCRIPT_SHELL_ALLOWLIST | запретить все двоичные файлы |
SKILLSCRIPT_FS_ALLOWLIST | запретить все пути |
SKILLSCRIPT_SECURED_MODE | выкл |
SKILLSCRIPT_MAX_DEADLINE_SECONDS | не задано (без предела) |
SKILLSCRIPT_SUPERVISOR_SKILL | не задано (выкл) |
SKILLSCRIPT_SECRET_<NAME> | не задано |
Секреты обрабатываются средой выполнения и передаются только одобренным приёмникам. Навыки не могут печатать или просматривать их необработанные значения.
См. руководство по конфигурации и справочник коннекторов.
Основные команды
skillfile lint <skill>
skillfile compile <skill>
skillfile execute <skill>
skillfile approve <skill>
skillfile diagram <skill>
skillfile fires <skill>
skillfile replay <trace_id>
skillfile health
Выполните skillfile <command> --help для опций.
Документация
- Справочник языка
- Конфигурация
- Пособие для внедрения
- Руководство агента для внедрения
- Контракты коннекторов
- Обновление
- Примеры
- Дополнительные примеры на веб-сайте
Статус
Skillscript находится в стадии pre-1.0. Основной язык и контракты коннекторов стабилизируются; внешнее внедрение и распространение продолжаются.
Вклад
Баг-репорты и запросы функций приветствуются через Issues. Откройте Issue перед предложением изменений грамматики, чтобы можно было сначала обсудить дизайн.
Лицензия
MIT. См. LICENSE.