vignette/docs/decisions/voice-s2s-poc.md
Yun Chan 085460b5e0 대시보드 폴드아웃/드릴다운 정리 + 페르소나 역린·misconduct 반응 + 게이트웨이 격리·RAG 비차단 수정
SSOT 대시보드:
- 한신대 기술분석 PDF(19쪽) 정합성 분석 + 이번 세션 발견 섹션 추가
- 섹션 폴드아웃(접기)·상단 목차(드릴다운)·모두 펼치기/접기 — 내용 보존, 레이아웃만 정리

페르소나 반응 강화('저항·반응 조절' 핵심 차별):
- PersonaCard.triggers(역린) 필드 + CCD 핵심상처 파생 역린 블록
- L0에 무례·모욕·조롱 시 현실적 동맹 균열 반응 지침

버그·성능 수정(라이브/E2E로 포착):
- 게이트웨이 페르소나 격리: --append-system-prompt를 --system-prompt(교체)로 + --exclude-dynamic-system-prompt-sections (내담자 캐릭터 붕괴·개발맥락 누출 차단)
- RAG: 임베더 동기 로드(약 7-13초)를 _warm_rag_caches 백그라운드 warm으로(세션 생성 블로킹 회귀 수정)
- voice TTS RMS 데드힌트 제거, init_state OpennessParams 파라미터객체화
- 한국어 PII(날짜·금액·주소) 마스킹 보강
- 레이아웃 시각 게이트: 폼 컨트롤 값 스크롤 오탐 제외(7/7)

검증: 백엔드 84/84, E2E 42(데스크톱 27·모바일 11·아바타 4), 시각 게이트 7/7
2026-06-27 02:30:46 +09:00

3.1 KiB

Voice S2S Second PoC Decision Memo

Date: 2026-06-26

Decision Boundary

The primary voice architecture remains cascade-first:

browser audio -> WSS -> STT transcript -> engine -> TTS audio -> browser

This memo does not approve or reject a second s2s PoC. It defines the evidence needed before that decision is made. The dashboard decision item remains a human decision, because choosing s2s affects auditability, dataset quality, latency, cost, and the user experience.

Current Position

  • Cascade is the Phase 1/2 baseline because transcript is a first-class artifact for review, safety checks, audit, cost attribution, and recursive-learning export.
  • S2S is no longer rejected only because of transcript loss. Realtime stacks may expose transcription hooks, so the actual question is whether s2s can preserve the same evidence contract while improving immersion or latency.
  • A second s2s PoC is valid only as a bounded comparison against the cascade path, not as a replacement by assumption.

Evidence Required To Keep S2S

S2S stays on the roadmap only if a PoC can prove all of the following:

Area Required proof
Transcript Final transcript is persisted with timestamps and turn boundaries.
Safety Crisis/safety classifiers receive the same or stronger text signal as cascade.
Review Learner review and supervisor review can cite exact utterance text.
Audit Provider, model, token/audio cost, latency, and failure mode are logged per turn.
Latency Median user-perceived round trip is meaningfully better than cascade on the same network.
Barge-in Interruptions produce deterministic logs and do not corrupt transcript order.
Failure STT/TTS/model failures do not save partial learner-only turns as completed dialogue.
Privacy Browser receives no bearer token; any realtime credential is short-lived and session-scoped.

Evidence That Rejects S2S

S2S should be dropped for this release if any of these hold after the PoC:

  • Transcript is missing, delayed beyond review usefulness, or cannot be aligned to turn boundaries.
  • Safety classifiers see weaker input than the cascade transcript path.
  • The provider path requires browser-visible long-lived credentials.
  • Cost or latency is worse without a clear user-experience gain.
  • Failure recovery creates ambiguous persisted turns.
  • The PoC requires special-case review/export logic that forks the data model.

PoC Shape

Minimum acceptable comparison:

  1. Use the same P1 persona, same counselor prompt, and same scripted learner utterance set for cascade and s2s.
  2. Record TTFT, full round-trip latency, transcript finalization time, cost, and failure events for at least 20 short turns.
  3. Export a side-by-side report with transcript equality/coverage, safety input, and persisted turn metadata.
  4. Keep cascade as production default until the report satisfies every required proof above.

Dashboard Mapping

  • s2s 2차 PoC 판단: this memo satisfies the artifact requirement.
  • s2s 2차 PoC 채택 여부: remains DECIDE until the comparison report exists and the project owner chooses keep/drop.