Тесты и эвалы
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 recordscripts/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.