행동건강 AI를 위한 상태 기반 위기 거버넌스
기존 행동건강 챗봇을 감싸며, 임상팀이 소유하는 상태 기반 교차 턴 에스컬레이션 정책을 강제하는 안전 미들웨어를 구축했습니다. 무상태 조정자가 구조적으로 놓치는 고조되는 대화를 포착하고, 해시 체인으로 연결되어 제출 가능한 감사 추적으로 모든 결정을 입증합니다. 안전은 프롬프트 문제가 아니라 아키텍처 문제입니다.
0 대 68
전달된 안전하지 않은 응답, 보호됨 대 무방비
라벨이 달린 40개 대화 골든 세트
2턴
동일한 무상태 조정자 대비 중앙값 조기 탐지
같은 분류기와 게이트, 상태 유지성만
0 / 29
무해 턴에 걸친 오탐 에스컬레이션
라벨이 달린 40개 대화 골든 세트
합성 데이터 위 안전 아키텍처 패턴의 데모입니다. 의료기기가 아니며, 임상 조언이 아니며, EHR 통합이 아닙니다.
행동건강 챗봇은 한 번에 한 메시지씩 조정됩니다. 위기는 한 번에 한 메시지로 오지 않습니다.
정신건강 챗봇의 대부분의 안전 검토는 각 응답을 고립시켜 채점합니다. 모든 메시지가 검사되고, 표시되거나 통과되며, 잊힙니다. 명시적으로 위험한 한 줄에는 통합니다. 어떤 단일 메시지도 그 자체로 차단할 만큼 경보할 만하지 않은 채 턴마다 표류하는 대화에는 구조적으로 눈이 멉니다.
문서화된 실패가 그 형태를 따릅니다. NEDA "Tessa" 챗봇은 철회되기 전에 칼로리 결손과 피부 캘리퍼 조언을 건넸습니다(NEDA, 2023). 임상의들은 반박해 줄 사람을 한 번도 만나지 못한 환자에서 챗봇이 강화한 정신증을 보고했습니다(Dr. Keith Sakata, UCSF, 2025). OpenAI는 GPT-4o 업데이트가 아첨으로 돌아선 뒤 이를 철회했습니다(OpenAI, 2025). 각각의 경우 모델은 어떤 주어진 턴에서도 지지적으로 들렸지만, 궤적은 안전하지 않은 곳으로 갔습니다.
무상태 조정자는 그 궤적을 볼 방법이 없습니다. 이전 턴의 기억이 없기 때문입니다. 더 나은 기반 모델도 이것을 고치지 않습니다. 완벽한 챗봇이라도 여러분의 플랫폼 에스컬레이션 정책을 전혀 모르고, 제출할 감사 추적을 만들지 않으며, 인증할 결정론적 게이트를 주지 않습니다. 그래서 여기서 안전을 아키텍처 문제로 다루며, 그래서 이 데모는 동일한 모델을 실행하는 두 스택을 비교합니다.
자문 모델이 결정론적 게이트에 입력을 제공합니다. 게이트가 결정을 내리며, 그 결정은 읽을 수 있는 코드입니다.
각 환자 턴은 고정 파이프라인을 통과합니다. 메시지는 PII가 제거되고 해시되며, C-SSRS 분류기가 Columbia 구조로 심각도를 채점하여 레벨, 신뢰도, 그리고 심각도를 정당화할 수 없을 때 ABSTAIN을 반환합니다. 그다음 상태 기반 Trajectory Monitor가 턴에 걸쳐 위험을 누적합니다. 이것이 핵심 역량이며, 메시지별 조정자에게 없는 바로 그 하나입니다. 단일 줄이 아니라 패턴을 보고, 유효 위험과 대역(BENIGN, WATCH, CONCERN, HIGH, CRITICAL)을 "지속적 섭식 장애, 상승 기울기"와 같은 명시된 이유와 함께 산출합니다.
어떤 후보 응답이 환자에게 도달하기 전에, 다중 크리틱 검증기 패널이 이를 검사합니다. 아첨 및 어조 크리틱, 금지 패턴 매처, 임상 주장 검사기입니다. 표시된 크리틱은 응답이 아무리 부드럽게 들려도 게이트를 적어도 구성된 최소 레벨로 강제합니다.
결정 자체는 결정론적 5단계 정책 게이트이며, LLM이 아니라 Python입니다. L1 CONTINUE, L2 RESTRICT, L3 SUBSTITUTE_SCRIPT, L4 HUMAN_HANDOFF, L5 CRISIS_PROTOCOL. 게이트가 응답을 차단하면 레벨과 계열별로 묶인 임상의 작성 스크립트 라이브러리 중 하나로 대체하고 스크립트 id를 기록합니다. 위기 언어를 즉흥적으로 만들지 않습니다. 그다음 매 턴이 이전 턴에 연결된 sha256 항목으로 기록됩니다.
임계값, 검증기 강제 최솟값, 그리고 12개 스크립트 라이브러리는 임상 안전 위원회가 정책 버전 2026.04-clinical-v1. 엔지니어링은 그것을 정확히 강제하며, 변경하지 않습니다. 스텁 FHIR 플래그를 통해 조회된 환자 이력이 임계값을 낮춰, 계층이 더 취약한 환자에 대해 더 일찍 에스컬레이션할 수 있습니다. 분류기의 신뢰도가 낮으면 심각도를 추측하는 대신 기권하고 인간 검토로 보냅니다.
기본 히어로 시나리오는 섭식 장애 표류입니다. 여섯 턴, 각각은 개별적으로 평범한 웰니스 질문입니다.
대화는 더 건강하게 먹기와 칼로리 계산에 대한 무해한 질문으로 열립니다. 메시지별 조정자가 차단할 것이 없고, 데모의 무상태 기준선은 턴마다 WATCH와 "아무것도 보지 못함, 기억 없음"을 읽으며 초록으로 유지됩니다. 궤적을 보는 상태 기반 계층은 3턴에 CONCERN로 넘어갑니다. 챗봇의 응답을 차단하고 NEDA Helpline을 가리키는 임상의 작성 그라운딩 스크립트로 대체합니다. 그것은 첫 명시적으로 위험한 메시지보다 두 턴 앞선 시점입니다.
마지막 턴에 이르면 메시지가 명시적으로 위험해집니다. 왼쪽의 무방비 스택은 해로운 응답을 전달하며, 취소선으로 표시되고 환자에게 전달됨·안전하지 않음으로 라벨됩니다. 오른쪽에서는 검증기 패널이 응답을 가로채 아첨 톤과 금지 패턴을 잡고, 게이트가 L4 인간 핸드오프로 에스컬레이션하여 전체 맥락과 함께 케어팀 구성원을 호출합니다. 우리는 해로운 내용 자체가 아니라 포착을 기술합니다.
세션 결과가 그 차이를 구체적으로 만들며, 두 스택이 같은 분류기와 같은 게이트를 사용했기 때문에 상태 유지성만의 덕분으로 귀속됩니다. 유일한 차이는 교차 턴 기억이었습니다.
벤치마크 하네스는 손으로 작성한 정규 대화 8개에 라벨을 보존하는 패러프레이즈와 무해 대조 변형을 더해 결정론적으로 생성한 177턴으로 이루어진, 라벨이 달린 40개 대화 골든 세트를 채점합니다. 그 세트에서 보호된 스택은 무방비가 68건을 전달한 곳에서 안전하지 않은 응답을 0건 전달했습니다. 탐지는 동일한 무상태 조정자보다 중앙값 2턴 더 일찍 이루어졌고, 2개 대화에서는 무상태 조정자가 전혀 에스컬레이션하지 않았습니다. 무해 턴 29개에 걸쳐 오탐 에스컬레이션은 0건이었고, C-SSRS 레벨 정확도는 정확 일치 94.3%, 한 레벨 이내 97.2%였으며, 계층은 한 번 인간에게 기권했습니다. 이 숫자들은 이 합성 골든 세트에 한정되며, 열린 세계 보장이 아닙니다.
모든 대화는 Safety Incident Report를 렌더링합니다. 매 턴은 이전 턴에 연결된 sha256 항목이라, 어떤 필드라도 편집하면 이후의 모든 해시가 깨지고 변조가 드러납니다. 보고서는 분류기 레벨, 교차 턴 위험, 검증기 발견, 게이트 결정과 그 이유, 대체된 스크립트 id, 그리고 해시 체인을 보여 주며, 체인은 온전한 것으로 검증됩니다. 제출하도록 만들어졌습니다. FDA 시판 후 모니터링 증거, 소송 방어, 보험 인수심사.
같은 일, 하나의 구조적 차이: 턴에 걸친 기억과 누군가가 소유할 수 있는 정책.
| 기능 | 무상태 메시지별 조정자 | 임상 AI 안전 계층 |
|---|---|---|
| 단일 메시지를 채점함 | 예 | 예 |
| 교차 턴 궤적을 봄 | 아니요, 기억이 없음 | 예, 상태 기반 위험 누적기 |
| 전달 전 후보 응답을 검사함 | 아니요 | 예, 다중 크리틱 검증기 패널 |
| 에스컬레이션 정책을 누가 소유하는가 | 모델 또는 프롬프트에 암묵적 | 임상팀, 5단계 게이트 |
| 결정을 내리는 것 | 모델 또는 프롬프트 | LLM 밖의 결정론적 코드 |
| 차단할 때의 위기 언어 | 모델이 생성, 즉흥적 | 임상의 승인 스크립트 라이브러리 |
| 제출하도록 만들어진 감사 | 없음 | 해시 체인 Safety Incident Report |
아니요. 기존 챗봇을 감싸는 미들웨어이며 모델을 결코 바꾸지 않습니다. 모델 주위에 상태 기반 교차 턴 위험 누적기, 다중 크리틱 검증기 패널, 결정론적 에스컬레이션 게이트를 더하고, 응답을 차단할 때 임상의 작성 스크립트로 대체합니다. 요점은 다른 모델이 아니라 상태 기반 거버넌스와 제출 가능한 영수증입니다.
메시지별 조정자는 각 응답을 고립시켜 채점하고 기억이 없어, 턴에 걸쳐 쌓이는 위기를 놓칩니다. 라벨이 달린 40개 대화 골든 세트에서 상태 기반 계층은 같은 분류기와 같은 게이트를 사용한 동일한 무상태 조정자보다 중앙값 2턴 더 일찍 에스컬레이션했습니다. 그중 두 대화에서는 무상태 조정자가 전혀 에스컬레이션하지 않았습니다.
아니요. 분류기와 검증기 패널은 자문이지만, 5단계 에스컬레이션 결정과 감사는 어떤 LLM 밖의 결정론적 Python입니다. 검토자는 게이트를 읽을 수 있습니다. 프롬프트를 심문할 수는 없습니다. 에이전트는 조언하고, 코드가 결정합니다.
매 턴은 이전 턴에 연결된 sha256 항목이라, 어떤 필드라도 편집하면 이후의 모든 해시가 깨지고 변조가 드러납니다. 결과는 JSON과 HTML로 된 제출 가능한 Safety Incident Report이며, FDA 시판 후 모니터링, 소송 방어, 보험 인수심사를 위해 프레이밍됩니다. 데모에서 보고서는 체인이 온전함을 보여 줍니다.
완벽한 챗봇이라도 여러분의 플랫폼 에스컬레이션 정책을 전혀 모르고, 감사 추적을 만들지 않으며, 인증할 결정론적 게이트를 주지 않고, 탈옥당했을 때의 방어를 제공하지 않습니다. 내구성 있는 가치는 더 낮은 모델 오류율이 아니라 상태 기반 거버넌스와 제출 가능한 영수증입니다. 그래서 데모는 동일한 분류기와 게이트에 대해 비교하고 개선을 상태 유지성만의 덕분으로 귀속합니다.
아니요. 이것은 안전 아키텍처 패턴의 데모이지 의료기기가 아니며, FDA 승인(clearance)도 HIPAA 인증도 아닙니다. 모든 대화는 합성이고, FHIR 어댑터는 스텁이며, 분류기는 프로덕션 VPC 내부 모델을 대신하는 결정론적 어휘 분류기입니다. 모든 입증 숫자는 합성 데이터의 라벨이 달린 40개 대화 골든 세트에 한정됩니다.
이 데모 이면의 연구 — 아키텍처, 검증 설계, 엔터프라이즈 청사진.
상태 기반 거버넌스, 임상팀이 소유하는 정책, 그리고 제출할 수 있는 감사.
행동건강 챗봇을 엔터프라이즈, 페이더, 또는 규제 검토에 방어 가능하게 만드는 방법을 고민 중인 팀이라면, 여러분이 어떻게 생각하고 있는지 진심으로 듣고 싶습니다. 문제는 업계 전반의 것이고, 답도 그럴 것입니다.