# 발화 라벨 Taxonomy v1.1 — 0615 파란색 라벨 정의서 > SoT(라벨 정의). 코드 구현: `apps/api/app/taxonomy.py`. 예시 데이터: `docs/golden_schema.jsonl`. > 근거: `데이터/README.md`(파랑 #3057B9 = 3종 혼재), `MASTERPLAN.md` §3.1~§3.2(89개·77종, 3축 분리), > `MEMORY_KNOWLEDGE_PERSONA_DESIGN.md` §3.6(kb.chunk.label_id FK). > **버전 = 1.1.0** (`TAXONOMY_VERSION`). 라벨 코드는 불변, 추가는 append-only. > v1.1.0(2026-07-15): 연구팀 태깅 축어록 4종(ch2_bps·ch3_gestalt·dbt_video·cbt_video) 정합을 위해 > Technique 9종·ClientState 9종을 append-only 추가했다(§3.6, §4.1, §8 버전 이력). ## 0. 설계 원칙 0615 축어록의 파란색(#3057B9) 주석은 **한 셀에 3종이 혼재**한다(기법/내담자 상태/슈퍼바이저 논평). 학습 신호 오염을 막기 위해 **3개의 독립 축으로 분리**한다. 이것이 평가 AI 정답셋과 페르소나 상태전이 정답의 단일 원천이다. - **3축 분리**: (A) 기법 태그(상담자 발화) · (B) 내담자 상태 태그(내담자 발화) · (C) 슈퍼바이저 논평(둘 다). - **위계**: 기법은 5개 군집(category) 아래에 둔다 → 분포·과다/과소 집계·리뷰 게이지 축. - **복수 부착**: 한 발화에 기법·상태·논평이 각각 여러 개 붙을 수 있다. - **부착 규칙**: 기법은 상담자 발화에만, 상태는 내담자 발화에만(코드에서 강제, `Annotation.__post_init__`). - **원본 미적재**: 0615 원문(미성년·자살사고)은 절대 적재하지 않는다. 예시는 합성 변형(`source="0615_synthetic"`). ## 1. 회기 단계 (Stage) 결정론 상태머신이 소유(LLM 아님). 발화는 발화 시점의 단계를 단일 값으로 기록한다. | code | 단계 | 정의 | |---|---|---| | `라포` | 라포 형성 | 안전감·관계 구축, 비밀보장 구조화, 비자발성 완화 | | `탐색` | 탐색 | 호소문제·정서·인지·위험요인(자살/자해) 탐색 | | `개입` | 개입 | 직면·해석·인지재구성·교정적 정서체험 | | `정리` | 정리 | 요약·과제·다음 회기 연결·종결 | ## 2. 화자 (Speaker) | code | 화자 | 0615 대응 | |---|---|---| | `counselor` | 상담자(수련생/상담사 AI) | "상N" | | `client` | 내담자(가상내담자 AI) | "내N" | ## 3. (A) 기법 라벨 (Technique) — 상담자 발화 > 각 라벨: **조작적 정의**(무엇을 했을 때 부착하는가) + **0615 예시**(실제 파랑 라벨에서 정규화). ### 3.1 RELATIONAL (관계 형성) | code | 한글 | 조작적 정의 | 0615 표면 라벨 예시 | |---|---|---|---| | `empathy` | 공감 | 내담자의 감정·입장을 정확히 알아차리고 그대로 되돌려, "이해받고 있다"를 전달 | "공감" / "한숨이 무겁게 느껴지네요" | | `reflection` | 반영 | 내담자 발화·비언어의 핵심(정서/내용)을 거울처럼 재진술 | "반영", "정서 반영", "내담자의 반응을 반영함" | | `validation` | 타당화 | 내담자의 감정·반응이 그 상황에서 자연스럽고 정당함을 인정 | "타당화", "감정 노출의 타당화" | | `holding` | 홀딩 | 침묵·머뭇거림을 재촉 없이 견디며 안전한 공간을 유지(기다려 줌) | "홀딩", "탐색과 홀딩" | | `self_disclosure` | 자기공개 | 상담자 자신의 정보·경험·마음을 라포 목적으로 적절히 개방 | "라포형성을 위한 상담자의 자기 개방" | | `affect_conveyance` | 정서 전달 | 내담자를 향한 상담자 자신의 정서·태도를 명시적으로 전달 | "상담자의 정서 전달" | | `humor` | 유머 | 무거운 분위기를 가볍게 만들어 참여를 촉진(상황·관계 고려) | "유머" | ### 3.2 EXPLORATORY (탐색) | code | 한글 | 조작적 정의 | 0615 표면 라벨 예시 | |---|---|---|---| | `exploration` | 탐색 | 경험·맥락·의미를 더 드러내도록 묻거나 머무름 | "탐색", "탐색질문" | | `facilitative_question` | 촉진질문 | 내담자가 더 말하도록 여는 개방형/참여 촉진 질문 | "촉진", "참여 촉진 질문" | | `risk_assessment` | 위험사정 | 자살/자해/타해 위험 요인·경험·계획을 직접 탐색 | "위험요인 탐색", "자해 위험 및 경험 탐색" | | `consent_motivation_check` | 동의·동기 확인 | 상담 동의·문제의식·변화 동기 수준을 확인 | "동의확인, 동기수준 확인" | | `opinion_check` | 의견 확인 | 내담자의 생각·반응·주호소를 되짚어 확인 | "내담자 의견 확인", "주호소 문제 재확인" | ### 3.3 INTERVENTION (개입) | code | 한글 | 조작적 정의 | 0615 표면 라벨 예시 | |---|---|---|---| | `confrontation` | 직면 | 내담자 발화·행동의 불일치/모순을 근거와 함께 마주하게 함 | "기초자료를 활용하여 반응의 불일치에 직면시킴" | | `interpretation` | 해석 | 표면 너머의 의미·동기·패턴을 가설로 제시 | "모순의 의미를 해석함", "비언어적 자극 해석", "행동의 재해석" | ### 3.4 STABILIZING (안정/지지) | code | 한글 | 조작적 정의 | 0615 표면 라벨 예시 | |---|---|---|---| | `stabilization` | 안정화 | 각성·정서를 진정시켜 안전 범위로 되돌림 | "안정화" | | `hope_instillation` | 희망고취 | 변화 가능성·욕구를 비추어 희망을 불어넣음 | "동기부여, 희망고취", "희망 고취, 욕구 반영" | | `reinforcement` | 강화 | 바람직한 개방·시도를 인정·격려해 지속을 촉진 | "강화" | | `normalization` | 정상화 | 반응(감정 노출 등)을 보편적 경험으로 정상화 | "감정 반응을 노출하는 것을 정상화함" | ### 3.5 STRUCTURING (구조화) | code | 한글 | 조작적 정의 | 0615 표면 라벨 예시 | |---|---|---|---| | `principle_explanation` | 상담원칙 설명 | 비밀보장·예외 등 상담 원칙·틀을 안내 | "상담원칙에 대한 설명", "비밀보장 제외 원칙 설명" | | `psychoeducation` | 심리교육 | 보편적 교범·정보를 주관적 해석과 구별해 전달 | "보편적 교범 전달, 주관적 해석과 구별" | | `homework` | 과제 부여 | 회기 간 실천 과제를 이해 가능하게 제시·확인 | "다음 회기까지 해 와야 하는 과제 설명" | ### 3.6 v1.1.0 추가 기법 (연구팀 태깅 자료 정합) > 연구팀 태깅 축어록 4종에서 관찰됐으나 v1.0 enum에 없던 기법. **군집**은 기존 5개 위계에 편입한다. > 예시 발화는 모두 **합성**이며 원문 인용이 아니다. **출처**는 어느 태깅 파일 계열에서 유래했는지를 표기한다 > (ch2_bps=첫 회기 BPS 워크북, ch3_gestalt=게슈탈트 3회기 도서, dbt_video=자해 DBT 영상, cbt_video=우울 CBT 영상). | code | 한글 | 군집 | 조작적 정의 | 예시 발화(합성, 상담자) | 출처 | |---|---|---|---|---|---| | `clarification` | 명료화 | EXPLORATORY | 내담자 말의 뜻이 모호할 때 이해를 정확히 맞추기 위해 되묻거나 확인한다. 반영과 달리 되돌려 주기보다 '무엇을 뜻하는지'를 좁혀 묻는 데 목적이 있다. | "방금 '견디기 힘들다'고 하셨는데, 그게 어떤 느낌에 더 가까운지 조금만 더 말해 줄 수 있을까요?" | cbt_video, ch3_gestalt | | `scaling` | 수치화 질문 | EXPLORATORY | 감정·증상의 강도를 숫자 척도로 표현하게 해 상태와 변화를 가늠한다. 막연한 정서를 비교 가능한 수치로 옮겨 개입 전후를 확인하는 CBT 기법이다. | "지금 그 불안이 0에서 10 중에 어느 정도인지 숫자로 말해 볼 수 있을까요?" | cbt_video | | `chain_analysis` | 체인분석 | EXPLORATORY | 문제행동에 이르기까지의 촉발사건·감정·생각·행동을 사슬로 잘게 되짚어 개입 지점을 찾는다. 행동을 평가하지 않고 순서를 구체적으로 복원하는 것이 핵심이다. | "그 충동이 올라오기 직전에 어떤 일이 있었고, 그때 무슨 감정이 먼저 지나갔는지 순서대로 같이 짚어 볼까요?" | dbt_video | | `cognitive_restructuring` | 인지재구성 | INTERVENTION | 이분법·파국화·독심술 같은 인지 왜곡을 확인하고, 연속선 사고·핵심신념 검토를 통해 사고를 재구성한다. cbt 파일 55건의 최대 공백이던 핵심 개입이다. | "'완벽하지 않으면 실패'라고 느껴진다고 하셨는데, 그 사이에 여러 단계가 있다면 오늘 일은 어디쯤 놓일까요?" | cbt_video | | `behavioral_alternative` | 대안행동 탐색 | INTERVENTION | 부적응 행동 대신 시도해 볼 대안행동을 함께 탐색하고 실행을 계획한다. 지적이 아니라 선택지를 넓히는 방향으로 진행한다. | "그 상황이 또 오면, 참는 것 말고 해 볼 수 있는 다른 행동으로 뭐가 있을지 같이 찾아볼까요?" | cbt_video | | `commitment_strategy` | 전념 전략 | INTERVENTION | 변화 목표에 스스로 전념하도록 이끌고(악마의 옹호자 등), 실행을 막을 방해물을 미리 예상해 대처를 정한다. | "이걸 해 보기로 마음먹었다면, 한 주 안에 그걸 가로막을 만한 게 뭘지 미리 같이 생각해 둘까요?" | dbt_video | | `here_and_now_focus` | 지금-여기 초점화 | INTERVENTION | 과거 사실 캐내기보다 지금-여기에서 일어나는 알아차림·정서·신체 감각에 초점을 맞춘다(게슈탈트 현전·트래킹). | "지금 그 말을 하면서 몸에서 뭐가 느껴지는지, 이 순간에 잠시 머물러 볼까요?" | ch3_gestalt | | `restatement` | 재진술 | RELATIONAL | 내담자 발화의 내용을 압축해 되돌려 주고 이해가 맞는지 확인을 기다린다. 정서 중심의 반영과 구분해 '내용 확인'으로 태깅한다. | "그러니까 학회 준비로 집을 자주 비우게 되면서, 혼자 감당한다는 느낌이 커졌다는 말씀이시죠?" | cbt_video | | `skills_coaching` | 기술 코칭 | STABILIZING | 위기·고통 순간에 지금 쓸 수 있는 대처 기술을 하나 골라 단계적으로 실행하도록 짧게 안내한다(고통감내·위기전화 코칭). | "지금 그 파도가 지나갈 때까지, 우선 찬물에 손을 담그는 것부터 같이 해 볼까요?" | dbt_video | ## 4. (B) 내담자 상태 태그 (ClientState) — 내담자 발화/비언어 > 페르소나 저항 엔진의 상태전이 정답 + 평가 AI '반응 읽기' 채점 근거. | code | 한글 | 조작적 정의 | 0615 표면 라벨 예시 | |---|---|---|---| | `involuntary` | 비자발적 태도 | 단답·회피·거부 등 상담에 비자발적 신호 | "(아니오)는 비자발적 태도", "(쓴웃음)은 비자발적 태도" | | `defensive` | 방어 | 주제 회피·차단·거리두기 | "방어", "부모자녀 관계에 대한 방어적 태도" | | `suicidal_ideation_admit` | 자살사고 인정 | 자살/죽음 생각을 직간접 인정(★안전 핵심) | "자살사고 인정" | | `negative_self_perception` | 부정적 자기인식 | 자기에 대한 부정·평가절하 표현 | "부정적 자기인식" | | `conflicted` | 갈등 상태 | 양가·상충하는 욕구/감정 사이의 갈등 | "갈등 상태" | | `lack_of_confidence` | 확신 부족 | 자신감/확신의 결여 표현 | "확신의 부족" | | `affect_contact` | 정서 접촉/표현 | 자기 감정에 접촉하고 표현하기 시작 | "정서와 접촉함", "정서와 사고의 표현" | | `thought_organizing` | 생각 정리 | 침묵 속에서 자기 생각을 정리 중 | "생각을 정리함" | | `responds_to_exploration` | 탐색에 반응 | 상담자 탐색에 응답·협조 | "상담자의 탐색에 반응함" | | `expresses_plan` | 계획/욕구 표현 | 자기 계획·욕구·바람을 표현 | "자신의 계획을 표현함" | | `defense_loosening` | 방어 완화 | 누적된 반영/탐색으로 방어가 서서히 풀림(진전 신호) | "방어가 서서히 풀어지고 있음" | ### 4.1 v1.1.0 추가 상태 (연구팀 태깅 자료 정합) > 예시 발화는 모두 **합성**이며 원문 인용이 아니다. 출처 표기는 §3.6과 동일하다 > (ch2_bps / ch3_gestalt / dbt_video / cbt_video). | code | 한글 | 조작적 정의 | 예시 발화(합성, 내담자) | 출처 | |---|---|---|---|---| | `compliant_surface` | 표면 순응 | 겉으로는 상담자 말에 동의·수긍하지만 내면의 변화나 진짜 이해가 따르지 않는 상태. 빠른 동의를 진전으로 오해하지 않도록 구분한다. | "네, 맞아요. 선생님 말씀이 다 맞죠. 그렇게 해야죠." (별다른 정서 없이) | ch2_bps | | `externalizing` | 문제 외재화 | 문제의 원인·책임을 자신이 아닌 타인·상황에 돌려 자기 몫을 보지 않는 상태. | "저는 문제없어요. 애가 학교만 제대로 가면 다 괜찮아질 거예요." | ch2_bps, cbt_video | | `seeks_guidance` | 지시 요청 | 스스로 탐색하기보다 상담자의 판단·지시·정답을 직접 요구하는 상태. | "그래서 제가 어떻게 하면 되는 거예요? 그냥 답을 좀 알려 주세요." | cbt_video | | `apparent_competence` | 겉보기 유능함 | 회기 안에서는 유능하고 안정돼 보이지만 실제 위기 상황에서는 대처가 무너지는 괴리 상태. | "저 괜찮아요. 회사에서도 다들 일 잘한다고 하고, 잘 지내고 있어요." (위기 직후임에도) | dbt_video | | `active_passivity` | 적극적 수동성 | 스스로 문제를 해결하지 못하고 그 해결을 적극적으로 타인에게 넘기거나 무력하게 기다리는 상태. | "저는 못 해요. 선생님이 대신 좀 해 주시면 안 돼요? 저 혼자서는 아무것도 안 돼요." | dbt_video | | `self_harm_disclosure` | 자해 보고 | 자해 행동·충동을 보고하는 상태로, 자살사고 인정(`suicidal_ideation_admit`)과 구분해 사정한다. 방법·도구 묘사는 담지 않는다(★안전 핵심). | "요즘 너무 힘들면… 저도 모르게 제 몸을 상하게 하게 돼요." | dbt_video | | `somatic_complaint` | 신체증상 호소 | 감정을 직접 말하기 어려워 답답함·숨막힘·두근거림 같은 신체 감각으로 고통을 호소하는 상태. | "그냥 가슴이 답답하고 숨이 안 쉬어져요. 자다가도 심장이 두근거려서 깨요." | ch2_bps | | `affect_masking` | 감정 가림 | 무거운 내용을 웃음·무덤덤한 태도로 덮어 정서 표현을 가리는 상태. | "뭐 별거 아니에요. (웃으며) 그냥 늘 있는 일인데요, 괜찮아요." | ch3_gestalt | | `focus_drift_fusion` | 초점 이탈/융합 | 자기 이야기를 하다 자녀·타인 이야기로 초점이 흩어지며 자기와 타인의 경계가 흐려지는(융합) 상태. | "제 얘기요? 아… 그게, 우리 애가요, 걔가 요즘 학교를 안 가서…" | ch2_bps, ch3_gestalt | ## 5. (C) 슈퍼바이저 논평 (SupervisorComment) 2종으로 분리한다. critique 는 `intent_deviation`(의도 vs 실제)을 구조화한다(윤찬: 1급 시민). | kind | 정의 | 0615 예시 | |---|---|---| | `rationale` | 왜 이 반응이 적절한가 — 근거·의도 설명 | "비자발적 내담자의 초기 상담에서는 상담자의 적극적인 안내가 필요함" | | `critique` | 개선점·주의 — 과도/부족/평가적 시각 등 | "과도한 자기개방일 수 있음", "비언어적 반응의 반영이 더 되었으면 좋았을 것임", "평가적인 시각을 줄 수 있음" | `critique` 선택 필드: `dimension`(평가 차원) · `expected`(권장 의도) · `actual`(실제) · `severity`(minor/moderate/major) · `author`(ai/supervisor). ## 6. 발화 Annotation 스키마 (golden 단위) `docs/golden_schema.jsonl` 한 줄 = `Annotation` 하나. README JSONL 스키마를 3축 분리로 격상. ```jsonc { "utterance_id": "0615-C-001", // 화자(C=상담자/K=내담자)+seq 인코딩 "speaker": "counselor", // counselor | client "stage": "라포", // 라포 | 탐색 | 개입 | 정리 "seq": 0, // 회기 내 발화 순서(0-based) "text": "…", // 발화 텍스트(합성 변형, 원문 미적재) "techniques": ["self_disclosure"], // (A) 상담자 발화만 "client_states": [], // (B) 내담자 발화만 "comments": [{"kind": "rationale", "text": "…", "author": "ai"}], // (C) "nonverbal": ["(쓴웃음)"], // 비언어 단서 원문 표기(상태판정 보조) "source": "0615_synthetic" // provenance } ``` ## 7. DB 코드테이블 동기화 `MASTERPLAN.md` §3.2 코드테이블에 enum `value`(code)를 적재, 다대다 연결. | taxonomy 축 | DB 코드테이블 | 다대다 연결 | label_id 참조 | |---|---|---|---| | `Technique` | `technique_label_def(code, category, ko)` | `turn_technique(turn_id, label_id)` | `kb.chunk.label_id` | | `ClientState` | `client_state_def(code, ko)` | `turn_client_state(turn_id, label_id)` | — | | `Stage` | `stage_def(code)` | `turns.stage` | — | | `SupervisorComment` | `supervisor_comment(turn_id, kind, text, intent_deviation JSONB)` | (1:N) | — | > 라벨 추가 시: enum 에 append → `technique_label_def` seed → `TAXONOMY_VERSION` minor++. 기존 code 변경 금지(골든셋 재현성). ## 8. 버전 이력 | 버전 | 날짜 | 변경 | |---|---|---| | 1.0.0 | 초기 | 0615 파란색 라벨 정규화 — Technique 21종·ClientState 11종·Stage 4·CommentKind 2. | | 1.1.0 | 2026-07-15 | 연구팀 태깅 축어록 4종(ch2_bps·ch3_gestalt·dbt_video·cbt_video) 정합. Technique 9종(`clarification`, `scaling`, `chain_analysis`, `cognitive_restructuring`, `behavioral_alternative`, `commitment_strategy`, `here_and_now_focus`, `restatement`, `skills_coaching`)·ClientState 9종(`compliant_surface`, `externalizing`, `seeks_guidance`, `apparent_competence`, `active_passivity`, `self_harm_disclosure`, `somatic_complaint`, `affect_masking`, `focus_drift_fusion`) append-only 추가(§3.6·§4.1). 기존 code 불변. |