LLMock: HTTP-сервер для мокинга, обеспечивающий детерминированное тестирование LLM между процессами

✍️ OpenClawRadar📅 Опубликовано: 14 марта 2026 г.🔗 Source
LLMock: HTTP-сервер для мокинга, обеспечивающий детерминированное тестирование LLM между процессами
Ad

LLMock — это мокинг-сервер, который перехватывает вызовы LLM API, работая как реальный HTTP-сервер на указанном порту, что позволяет проводить детерминированное тестирование в нескольких процессах без обращения к платным API.

Ad

Ключевые детали

Инструмент был обнаружен после того, как разработчик потратил $12 на запуск тестов Playwright против реальных API OpenAI. Проблема возникла при использовании MSW (Mock Service Worker), который патчит HTTP-модуль внутри процесса Node.js, вызывающего server.listen(), но оставляет отдельные процессы (например, агент на Python) полностью невидимыми для мокинга.

С LLMock вы указываете переменную окружения OPENAI_BASE_URL на мок-сервер из любого процесса, независимо от того, Node.js это, Python или любой другой язык:

const mock = new LLMock({ port: 5555 });
await mock.start();
process.env.OPENAI_BASE_URL = "http://localhost:5555/v1";

Фикстуры — это простые JSON-файлы, которые сопоставляются по подстрокам пользовательских сообщений или регулярным выражениям, устраняя шаблонный код обработчиков:

{
  "fixtures": [
    {
      "match": { "userMessage": "stock price of AAPL" },
      "response": { "content": "The current stock price of Apple Inc. (AAPL) is $150.25." }
    }
  ]
}

Ключевые особенности из источника:

  • Корректно использует фактический формат SSE OpenAI/Claude/Gemini (ошибки в типах событий незаметно ломают стриминг)
  • Полная поддержка вызовов инструментов — фреймворки агентов выполняют их как обычно
  • Предикатная маршрутизация для проверки состояния системного промпта или истории сообщений в мультиагентных потоках
  • Журнал запросов для проверки того, что было фактически вызвано, а не просто прошёл ли тест
  • Нет зависимостей

В итоге у разработчика получилось 9 вызовов LLM в 3 тестах Playwright, стоимостью $0 и с детерминированными результатами при каждом запуске.

📖 Читать полный источник:

Ad

👀 Смотрите также

AI Team OS: Самодвижущийся организационный слой для Claude Code
Инструменты

AI Team OS: Самодвижущийся организационный слой для Claude Code

AI Team OS — это операционный слой для Claude Code, который создаёт автономные рабочие процессы, где система продолжает работать без ожидания пользовательских запросов. Он включает 22 специализированных шаблона агентов, более 40 инструментов MCP и работает полностью в рамках подписки Claude Code без внешних затрат на API.

OpenClawRadar
AI Подпрограммы: Детерминированная автоматизация браузера с нулевой стоимостью токенов
Инструменты

AI Подпрограммы: Детерминированная автоматизация браузера с нулевой стоимостью токенов

AI Subroutines от rtrvr.ai позволяют записывать действия в браузере один раз в виде вызываемых инструментов, которые затем воспроизводятся в контексте веб-страницы с автоматической передачей аутентификации, исключая затраты на LLM-инференс и недетерминизм для повторяющихся задач.

OpenClawRadar
Инструментарий Blackwell LLM: конфиги NVFP4, колёса и бенчмарки для TensorRT-LLM на RTX Pro 6000
Инструменты

Инструментарий Blackwell LLM: конфиги NVFP4, колёса и бенчмарки для TensorRT-LLM на RTX Pro 6000

Сообщество предоставляет конфиги TensorRT-LLM, предварительно собранные колеса LMCache с поддержкой sm_120 и бенчмарки для GPU Blackwell. Nemotron-3-Nano-Omni V3 достигает 270 токенов/с при контексте 8k на одном RTX Pro 6000.

OpenClawRadar
Ops Dashboard OpenClaw: Локальная панель управления для соло-разработчиков с несколькими репозиториями
Инструменты

Ops Dashboard OpenClaw: Локальная панель управления для соло-разработчиков с несколькими репозиториями

Один соло-разработчик создал ops-dashboard — локальное приложение, которое индексирует хранилища Obsidian, репозитории и логи в единую панель с возможностью поиска. BYOK, лицензия MIT, не требует облачных сервисов.

OpenClawRadar