Песочница

Лиспекс с ИИ-помощником

Подключите локальный Native MCP-сервер для точного справочника, ограниченных по размеру доверенных примеров, диагностики и заранее заданного сравнения способов выполнения.

Перед подключением

Установите Native-продукт со страницы Загрузки и проверьте его.

SH
lispex --version

MCP-сервер уже входит в этот исполняемый файл. Для справки, выполнения, диагностики и встроенного сравнения запуска tree с Rust не нужны рабочая копия репозитория, пакет Node, сетевой сервис, дополнительный движок или ключ API.

Команда lispex в конфигурации MCP должна указывать на Native-исполняемый файл с этой страницы загрузок.

Добавление сервера

Добавьте в помощник, принимающий MCP-команды, локальный stdio-сервер.

JSON
{
  "mcpServers": {
    "lispex": {
      "command": "lispex",
      "args": ["mcp", "serve"]
    }
  }
}

Имя файла настроек зависит от помощника. Точным контрактом являются команда и аргументы lispex mcp serve. Не добавляйте URL, корень рабочей области, путь к исходнику или путь к другому движку.

После повторного подключения должны появиться ровно четыре инструмента.

  • lispex_reference сверяет формы, процедуры, написание для считывателя, ресурсы и обзор способов выполнения.
  • lispex_eval запускает ограниченный по размеру доверенный исходник во встроенном эталонном запуске Rust tree.
  • lispex_diagnostic объясняет точный код, например E302.
  • lispex_compare_routes запускает одно именованное сравнение из заранее заданного списка и сообщает о совпадении или расхождении, не выбирая ответ.

Первый полезный запрос

Попросите помощника о следующем.

Используй инструменты Лиспекса. Проверь, что форма if допустима, напиши правило, возвращающее approve при input не меньше 10 и review иначе, запусти его с input 12 и исправь диагностику до ответа.

Помощник проверит форму, выполнит программу и сможет исправить первую попытку по каталогу диагностики. Это надёжнее воспоминаний о Scheme, потому что в Лиспексе у if обязательна ветвь else, комментария datum #; нет, а ложным считается только #f.

Что покидает компьютер

Сервер Лиспекса ничего не отправляет по сети. Он использует локальный stdio и не выдаёт программе возможности файлов, часов, случайности, сети, базы данных или обратного вызова в хост. Ответ содержит хеш исходника, наблюдения и диагностику, но не возвращает, не журналирует, не кеширует и не сохраняет сам исходник.

У приложения-помощника есть собственная политика данных. Если помощник удалённый, введённый в его интерфейсе текст может отправляться провайдеру. Сервер Лиспекса этого не добавляет и не скрывает.

Сравнение способов выполнения

Встроенное сравнение не требует настройки.

JSON
{
  "court": "tree-rust",
  "source": "(+ input 1)",
  "input": "41"
}

Эталон tree и виртуальная машина Rust получают одинаковые исходник, вход, Core IR, байткод и запрос ресурсов. Для двух дополнительных сравнений точные дополнительные продукты задаются при запуске сервера.

JSON
{
  "command": "lispex",
  "args": [
    "mcp", "serve",
    "--topaz-vm", "/absolute/path/to/topaz-vm",
    "--topaz-compiler", "/absolute/path/to/topaz-compiler",
    "--rust-tools", "/absolute/path/to/rust-tools"
  ]
}

rust-topaz сравнивает две виртуальные машины. all-four добавляет запуск tree и заранее скомпилированный продукт, собранный только для этого запроса. Если дополнительный продукт отсутствует, всё запрошенное сравнение недоступно. all-four никогда не уменьшается до частичного сравнения.

Пределы и явные отказы

Один запрос принимает не более 65 536 байт исходника и 16 384 байт входа. Результат выполнения ограничен 1 MiB и пятью секундами. Результат сравнения ограничен 4 MiB, а для all-four действует предел в 11 минут, потому что каждый раз строится свежий продукт. Фиксированные пределы переходов и управления в языке сохраняются. Тайм-аут, отмена, неверный ввод, недоступное сравнение, отказ сборки или очистки и неизвестный инструмент всегда видны.

Это ограничения авторского интерфейса и эксплуатационные предохранители, а не повторяемый счёт всей гостевой работы или логических выделений. Текущий сервер предполагает доверенный исходник, поэтому враждебное правило нельзя запускать так, будто рабочий процесс является запертой песочницей. Тайм-аут, отмена, завершение процесса, нехватка памяти на хосте, паника или ловушка не дают ни решения, ни квитанции, которую можно передать дальше.

Дополнительные продукты проверяются только по абсолютным путям запуска. Сервер не ищет, не устанавливает, не чинит, не подменяет, не повторяет запуск и не переключается на другой движок. Результат является наблюдением для написания кода, а не свидетельством Ваучера, результатом проверки допуска или доказательством семантической эквивалентности.

Проверка установленного цикла

После настройки дайте помощнику короткое задание.

Покажи список инструментов Лиспекса. Проверь, что if и + существуют, а eval отсутствует. Выполни (+ input 1) с input 41, объясни диагностику по её коду и затем сравни ту же программу через tree-rust.

Исправная установка показывает ровно четыре инструмента, возвращает 42 и завершает сравнение двух способов выполнения. У недоступного дополнительного сравнения нет ни одной попытки запуска. При расхождении результат содержит agreement: false, а partial_comparison и answer_selected остаются false. Это ожидаемое поведение, потому что помощник сообщает расхождение, а не выбирает удобный ответ.

Завершив работу, отключите MCP-клиент. Закрытие stdio завершает локальный процесс. Фонового сервиса и сохранённого состояния проекта нет.

Куда дальше

При создании интеграции держите рядом Справочник MCP-инструментов. Для изучения языка вернитесь к Пути обучения.