Песочница

Lispex с ИИ-помощником

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

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

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

SH
lispex --version

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

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

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

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

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

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

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

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

Попросите:

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

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

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

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

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

Сравнение маршрутов

Встроенный court не требует настройки:

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

Эталон tree и Rust VM получают одинаковые исходник, input, Core IR, bytecode и запрос ресурсов. Для двух дополнительных courts точные companion-продукты задаются при запуске сервера:

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 сравнивает две VM. all-four добавляет tree и свежий AOT-продукт, построенный только для этого запроса. Если companion отсутствует, весь запрошенный court недоступен. all-four никогда не уменьшается до частичного сравнения.

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

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

Дополнительные продукты проверяются только по абсолютным путям запуска. Сервер не ищет, не устанавливает, не чинит, не подменяет и не повторяет маршрут. Результат — наблюдение для написания кода, а не evidence Vouch, grant gate или доказательство семантической эквивалентности.

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

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

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

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

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

Дальше

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