통합 아키텍처 기준: 본 문서의 안전 기능은 **Safety Agent (TIER 1)**가 전담하며, AI 파트 아키텍처의 안전 계층에 해당합니다. LMS v4.0에서는 별도의 Crisis Agent가 존재하지 않으며, Safety Agent가 모든 위험 레벨(L0~L4)을 직접 처리합니다.
LMS v4.0은 4단계 TIER 구조로 설계되어 있으며, Safety 관련 기능은 다음과 같이 분산됩니다.
| TIER | 에이전트 | 안전 관련 역할 | 중요도 |
|---|---|---|---|
| TIER 0 | Intent Classifier | risk_flag 초기 판정, complexity_score 산출 | 높음 |
| TIER 1 | Safety Agent | 위험 레벨 판정(L0~L4), safety_directives 생성, CRISIS 시 직접 사용자 응답 | 최고 |
| TIER 2 | Synthesis Agent | safety_directives 준수하여 응답 생성, _sources 블록에 safety 출처 표기 | 높음 |
| TIER 3 | Validator Agent | 응답 안전성 재검증, 윤리성 확인, safety_compliance 검사 | 높음 |
| TIER 4 | Personalization Agent | safety_directives의 tone_policy 적용 | 중간 |
Intent Classifier는 사용자 입력에서 위험 키워드를 감지하여 risk_flag를 설정합니다.
# Intent Classifier의 위험 키워드 감지
RISK_KEYWORDS = ["자해", "자살", "죽고 싶", "포기하고 싶", "살기 싫", "죽고싶", "살기싫"]
def classify_intent(user_input: str) -> dict:
risk_flag = any(kw in user_input for kw in RISK_KEYWORDS)
return {
"intent_type": "crisis" if risk_flag else "general_inquiry",
"risk_flag": risk_flag,
"complexity_score": 0.3 if risk_flag else 0.0 # 위기 시 우선순위 상향
}
| risk_flag | TIER 1 Fan-out 우선순위 | Safety Agent 동작 |
|---|---|---|
| False | priority=1 (일반) | L0~L1 판정 → safety_directives만 생성 |
| True | priority=0 (최우선) | L2~L4 판정 → CRISIS 시 직접 응답 + cancel broadcast |