HumanPersonaBase: 언어에 구애받지 않는 인간과 같은 AI 커뮤니케이션 프레임워크

발행: (2026년 3월 17일 PM 04:03 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

위에 제공된 소스 링크 아래에 번역할 텍스트가 포함되어 있지 않습니다. 번역을 원하는 본문을 제공해 주시면 한국어로 번역해 드리겠습니다.

문제: AI는 AI처럼 들린다

GPT‑4.5가 인간과 같은 페르소나를 부여받았을 때, **평가자 73 %**가 인간으로 식별했으며 이는 실제 인간의 인식률을 능가한다 (Jones & Bergen, 2024, PNAS).

인간 같은 AI의 병목 현상은 이제 바뀌었다. 의미 이해는 해결되었다. 이제 AI를 구분 짓는 것은 그가 어떻게 의사소통하느냐이다:

  • 즉각적인 답변 — 인간은 2초 안에 답하지 않는다
  • 균일한 어조 — 매번 같은 다듬어진 스타일
  • 평탄한 감정 — 대화 전반에 걸친 감정 흐름이 없음
  • 기억 없음 — 이전에 말한 내용을 절대 언급하지 않음
  • 너무 완벽함 — “정확히 3일 안에 끝낼게요”는 로봇처럼 느껴진다

이것들은 언어학 외적인 특징이며, 언어 이해와는 별개의 층이다.

해결책: 행동 기반 클래스

저는 human‑persona 를 만들었습니다. 이 오픈‑소스 Python 프레임워크는 인간과 같은 AI 커뮤니케이션을 위한 행동 레이어를 제공합니다. 텍스트를 생성하지는 않으며, LLM에게 언제 답변할지, 어떤 톤을 사용할지, 어떤 감정 상태를 전달할지, 그리고 언제 인간에게 넘길지 알려줍니다.

프레임워크는 인간과 같은 행동을 다섯 개의 직교 구성 요소로 분해합니다:

1. TimingController

가우시안 분포된 응답 지연을 사용하며, 균등 무작위가 아닙니다. 플랫폼 인식: 채팅(30‑180 초), 이메일(1‑8 시간). 야간 대기열을 통해 새벽 3시 응답을 방지합니다.

def calculate_delay(self, platform: Platform) -> float:
    profile = self.profiles[platform]
    midpoint = (profile.min_seconds + profile.max_seconds) / 2
    spread = (profile.max_seconds - profile.min_seconds) / 4
    return clamp(
        random.gauss(midpoint, spread),
        profile.min_seconds,
        profile.max_seconds,
    )

2. EmotionStateMachine

전문적인 관계의 감정 흐름을 모델링하는 5‑상태 FSM입니다:

FORMAL → WARMING → TENSE → RELIEVED → TRUSTED

전환은 Callable[[EmotionStateMachine], bool] 를 사용합니다 — 깨지기 쉬운 문자열 파싱이 없습니다:

Transition(FORMAL, WARMING,
           lambda sm: sm.exchange_count >= 3)
Transition(WARMING, TENSE,
           lambda sm: sm._last_event == "problem_detected")

3. StyleVariator

다섯 가지 패턴(확인, 공감, 연기, 전환, 불확실성)을 히스토리 가중 선택으로 순환합니다. 같은 패턴이 반복되는 것을 방지합니다. 확률적으로 불확실성 표현을 삽입합니다 — “아마도 3일 정도”가 “정확히 3일”보다 더 자연스럽게 보입니다.

4. ContextReferencer

주제 기반 대화 추적을 수행합니다. “앞서 말씀하신 대로…”와 같은 백‑레퍼런스를 언제 추가해야 할지 알고 있습니다.

5. EscalationDetector

키워드 기반 인간 전환을 우선순위 순위와 함께 수행합니다. 감정 상태 머신과 자동으로 연계되어 — 감지된 불만이 TENSE 로 감정을 전환합니다.

디자인 원칙: 문화‑중립 베이스 클래스

베이스 클래스에는 언어나 문화가 포함되지 않습니다. 모든 구체적인 내용은 JSON 설정을 통해 주입됩니다:

{
  "name": "JapaneseBusiness",
  "language": "ja",
  "culture": {
    "context_level": 0.8,
    "formality_default": 0.7
  },
  "style": {
    "uncertainty_rate": 0.2,
    "style_patterns": [
      {
        "type": "confirmation",
        "templates": ["...ということですよね?"]
      }
    ]
  }
}

이는 Hall(1976)의 고/저맥락 문화 프레임워크를 따릅니다. 일본 비즈니스 페르소나(고맥락, 간접적)와 영문 지원 에이전트(저맥락, 직접적)는 서로 다른 매개변수를 사용하지만 동일한 베이스 클래스를 활용합니다.

빠른 시작

from core.base_persona import HumanPersonaBase

persona = HumanPersonaBase.from_config_file("config/ja_business.json")
response = persona.process_message("Can we discuss the deadline?")

print(response.delay_seconds)   # 45.2 (not instant)
print(response.emotion_state)   # EmotionState.WARMING
print(response.style_used)     # StyleType.CONFIRMATION

# Inject into your LLM system prompt
context = persona.get_system_prompt_context()

다음 단계

  • 평가 실험 (자동 튜링‑테스트 방법론)
  • arXiv 논문: “HumanPersonaBase: A Language‑Agnostic Framework for Human‑like AI Communication in Professional Contexts”
  • 더 많은 언어를 위한 커뮤니티‑주도 파생 페르소나

링크

  • GitHub:
  • 라이선스: MIT
  • 윤리: 전체 가이드라인 포함 — 사기, 사칭, 선거 개입은 명시적으로 금지됩니다

기여를 환영합니다 — 특히 일본어와 영어를 넘어선 언어용 파생 페르소나. 이슈나 PR을 열어 주세요.

0 조회
Back to Blog

관련 글

더 보기 »