Медиатракт C2: результаты 06.10.2026
C2 работает в прежнем namespace web-rtc-komaroff. Core, Agent, LLM, API,
Frontend и Ruby runtime имеют OCI revision ba80166d541f99e29a79d7c858df592f5e048fa2;
оба ingress — 2fde34101e26fac4771a2f99e3f1b3a7de8125e3.
Переименование в chat-agent и окончательное удаление media из Core — следующий
этап C3. Этот отчёт не подтверждает его поставку.
Что проверено
Одинаковый корпус: 12 обычных текстовых ходов, 3 инструментальных запроса, 6 ходов уточнения, 12 голосовых ходов с нагрузкой 1/2/3/1/2/3. Все 33 завершились. Tempo подтвердил 36 генераций: обычный разговор требует одной; инструментальный ответ после уточнения — двух. В выбранных traces нет status ERROR. Модель, ASR mode и WAV сохранены; GPU и voice не менялись.
| Показатель, секунды | C0 p50 / p95 | C1 p50 / p95 | C2 p50 / p95 |
|---|---|---|---|
| Обычный текст, 12 ходов | 14,969 / 20,951 | 3,452 / 4,464 | 3,396 / 11,850 |
| Готовое SDP → connected, 12 | 1,394 / 1,559 | 1,554 / 1,598 | 1,556 / 1,611 |
| Начало WAV → ASR final | 3,803 / 3,993 | 3,749 / 3,947 | 3,793 / 4,076 |
| Номинальный конец WAV → ASR final | 0,778 / 0,968 | 0,724 / 0,922 | 0,768 / 1,051 |
| ASR final → полный ответ | 46,007 / 89,399 | 14,083 / 35,177 | 12,301 / 30,498 |
| ASR final → первый фрагмент, C2 | — | — | 12,164 / 30,424 |
Квантили — R7. C0: 11 голосовых завершений из 12 из-за transport failure; C1/C2: 12 из 12. p95 от начала WAV вырос примерно на 2,1%; задержка после номинального конца WAV — примерно на 8,5%, тоже меньше порога 10%. Вторую строку получаем вычитанием длительности fixture 3,025 с, без предположений о времени внутренних этапов Whisper. В первоначальной версии отчёта первая строка была ошибочно подписана "WAV end"; исходные timestamps сохранены. Медиана голосового ответа снизилась примерно на 73%, p95 — на 66%. Это короткая серия синтетического WAV, а не обещание для любой сети или речи.
Все 12 RTC-подключений получили настоящий DTLS, выбранную пару browser srflx → server relay, растущие RTP counters, partial/final ASR и собственный ответ чата. Четвёртый WSS-клиент при трёх RTC получил явный отказ до PCM: 0 chunks/bytes. После тестов admission, chat inflight и voice busy равны нулю.
WSS: пять новых повторов с непрерывным сбором событий. p50/p95 ready — 346,60/349,58 мс; начало WAV → final — 3,589/3,795 с; final → полный ответ — 15,625/20,963 с. RTCPeerConnection не создавался. WSS ready отсчитывается от создания сокета; RTC — от готового SDP. Это разные точки начала, прямое сравнение полного подключения по этим двум числам некорректно.
Ограничения и найденные отклонения
- Текстовый ответ на один из 12 запросов занял 19,98 с. Он сохранён в p95.
Workflow ожидал около 13 мс, модель выдала 1364 output tokens с eval около
19,09 с. Это не очередь Agent. Backend — Qwen3 Thinking-2507;
think=falseне гарантирует отключение внутреннего reasoning этой версии. Провайдер не менялся. - Синтетический WAV ожидает ответ 4. C2 получил его лишь в 4/12 RTC и 3/5 WSS ходов: ASR искажает короткую синтетическую речь. Это не WER и не оценка качества реального голоса. Проблемы decoder/длинной фразы/GPU scheduling остаются у voice.
- Первые пробные WSS-прогоны потеряли часть измерений при долгой паузе чтения CDP.
UI завершился, но точные timestamps восстановить нельзя. Они исключены из
контрольной серии как measurement gaps; пять новых повторов проверяют
truncated=false, читают события каждые 0,5 с и сохраняют terminal события. - В C2 Ruby spans передают traceparent, но пока не имеют request UUID attrs; поиск только по request_id не считает их tool spans. Отсутствующий queue attr не считается нулём. UI измерил Agent queue p95 2,05 мс; для полного анализа используются также VictoriaMetrics histograms. C3 добавляет безопасные UUID и имена пяти инструментов в Ruby spans.
- CPU/RAM окна содержат простой между действиями; они не доказывают строгую экономию под одинаковой непрерывной нагрузкой. В RTC-окне весь состав 15 сервисов имел mean working set 691,5 МБ, mean CPU 0,322 core. Core — 69,2 МБ и 0,00355 core; WebRTC ingress — 65,6 МБ и 0,206 core. Дополнительные ingress входят в сумму.
Доказательства
- 33 хода: обычные, tools и уточнения, 12 RTC и admission, 5 WSS.
- Tempo: 36 генераций, длинный ответ, VictoriaMetrics: состав, CPU/RAM.
- C0, C1, контракты транспорта.
- CI 4914: checks, backend, consumers, preflight и stack deployment; затем Frontend обновлён адресно через штатный Insight после проверки backend.
- CI 4915: checks, два исправленных ingress, Ruby consumer и preflight. Deployment job не повторялась: конфигурация стэка не изменилась; runtime revisions проверены отдельно.
Локальные деградации C2/C3: настоящий NATS/PG/Ruby, управляемый HTTP provider, legacy/Trickle/WSS, зависший STUN, prflx/DTLS/RTP/PCM, отмена, schema/overload, restart owner, end timeout, flush и cleanup. Они не заменяют production-проверку настоящих Whisper и Ollama.