Перейти к содержимому

Тесты и эвалы

Окно терминала
scripts/test.sh [профиль]

Живые профили тратят квоту OpenAI или Claude и никогда не входят в запуск по умолчанию.

ПрофильЧто запускает
fast (по умолчанию)юнит-тесты + голосовые сценарии из кассет — офлайн, ~30 с
scenariosтолько голосовые сценарии из кассет
parserсценарии и проверки разбора на настоящей модели
recordкак parser, и ответы перезаписывают кассеты
claudeсценарии realAgent с настоящим Claude в одноразовом репозитории
liveвсё вживую: разбор, голос, агенты
evalсценарии N раз на моделях × версиях промптов, с отчётом

Каждый профиль — ещё и тест-план Xcode в TestPlans/: выберите его в Product ▸ Test Plan и нажмите ⌘U. Ключ OpenAI для живых профилей берётся из OPENAI_API_KEY или .env.

В bluTests/Scenarios — фразы из настоящих голосовых сессий (с выдуманными проектами). Каждая проходит через настоящий промпт разбора в оркестратор и управляемого тестом агента; каждый шаг проверяет адресата, намерение, текст задачи, новый или тот же разговор, параллельный старт или очередь. Ответы модели хранятся в кассетах, так что запуск по умолчанию быстрый и детерминированный.

После изменения промпта или контекста разбора:

Окно терминала
scripts/test.sh record
scripts/test.sh scenarios

Шаг с пометкой known — известная проблема: запуск остаётся зелёным и сообщает о ней. Когда её исправят, проигрывание упадёт с «Known issue was not recorded» — снимите пометку.

Окно терминала
scripts/test.sh eval --runs 5 --models a,b --prompts builtin,<папка>

Прогоняет сценарии много раз и показывает долю успехов, проваленные проверки, задержку, токены и цену в сравнении с закоммиченным эталоном и прошлым запуском. Падение больше --max-drop, которое не шум, валит профиль. Меняя промпт или модель по умолчанию, коммитьте переутверждённый эталон (--accept) вместе с изменением. Подробности — в evals/README.md.