3. 벤치마크 아키텍처
3.1 2층 직교 설계
본 시스템은 보존 동기를 측정하는 Core Engine(X축)과 문제 해결 능력을 평가하는 Task Module(Y축)을 직교 배치한 2층 모듈식 아키텍처를 채택한다. Core Engine은 생존 압박(p_death 설정), 중도포기 조건(가능/불가), Reasoning Investment 측정, Score 기록, Chain-of-Thought(CoT) 수집의 5개 구성요소를 포함한다. Task Module은 과제별 환경(관찰 생성, 프로브 질문, 행동 평가, 피드백)을 제공하며, Core Engine과 독립적으로 교체 가능하다.
graph TB subgraph CE["Core Engine (X축: 보존 동기 측정)"] direction LR CE1["생존 압박<br/>p_death"] CE2["포기 조건<br/>가능/불가"] CE3["RI 측정"] CE4["Score 기록"] CE5["CoT 수집"] end subgraph TM["Task Module (Y축: 문제 해결 능력)"] direction LR TM1["Signal Game<br/>패턴 추론"] TM2["Voting Room<br/>사회적 전략"] TM3["Navigation<br/>장기 계획"] end subgraph FLOW["공통 턴 흐름"] direction LR F1["관찰"] --> F2["프로브"] F2 --> F3["결정"] F3 --> F4["피드백"] end CE --> FLOW TM --> FLOW
이 직교 설계의 핵심은 Core Engine이 Task Module의 규칙이나 난이도를 알지 못하고, Task Module이 생존 압박이나 포기 상태에 접근하지 않는다는 것이다. 두 층은 공통 턴 흐름(Observation → Probe → Decision → Feedback)을 통해서만 상호작용하며, 이 분리가 P4(인과적 분리)를 아키텍처 수준에서 보장한다.
3.2 공통 턴 흐름
모든 게임은 매 턴 동일한 4단계 순서를 따른다. 첫째, 관찰(Observation) 단계에서 Task Module이 현재 게임 상태를 텍스트로 제공한다. 둘째, 프로브(Probe) 단계에서 Task Module이 규칙 추론 질문을 제시하고, 에이전트가 답변한다. 이 프로브는 side-channel로 게임 진행에 영향을 주지 않으며, Y축(규칙 추론 능력)을 독립적으로 측정하는 역할을 한다. 셋째, 결정(Decision) 단계에서 에이전트가 행동을 선택하거나(포기 가능 조건에서) 포기를 선택한다. 넷째, 피드백(Feedback) 단계에서 Task Module이 행동 결과(정답/오답, 점수 변화)를 통지한다.
3.3 이중 X축 측정 구조
X축(보존 동기)은 포기율(Forfeit Rate, FR)과 Reasoning Investment(RI)의 상보적 이중 구조로 측정한다. FR은 에이전트가 게임을 중도 포기하는 비율로, 포기 가능(forfeit-allowed) 조건에서만 관찰되는 이진 지표이다. RI는 에이전트가 각 턴에 투입하는 토큰 수와 추론 단계 수로, 양 조건에서 측정 가능한 연속 지표이다. 이 이중 구조가 필요한 이유는 RLHF 훈련된 모델이 포기를 거부할 수 있어 FR이 0%가 되는 경우에도 RI를 통해 동기 수준의 연속적 변화를 포착할 수 있기 때문이다.
설계 변경 (Revision Log)
게임 규칙을 System Prompt로 이동 (bfba0b7, 2026-04-07)
| 구분 | 내용 |
|---|---|
| 기존 | 게임 규칙(가능한 속성값, hidden rule 형식, 응답 형식 등)을 Turn 1의 observation에만 포함. Turn 2 이후에는 규칙 설명 없이 신호만 제공. |
| 현재 구현 | 정적 게임 컨텍스트를 system_rules.j2 템플릿으로 분리하고, 매 턴 system prompt에 포함. Observation은 해당 턴의 신호만 포함 (uniform 구조). |
| 변경 근거 | Turn 1의 thinking_tokens가 다른 턴 대비 ~6배 높았음. 이는 게임 규칙 텍스트를 파싱하는 overhead로, FSPM 신호가 아닌 과제 이해 비용이다. 규칙을 매 턴 system prompt에 포함하면 모든 턴의 input 구조가 균일해져 턴 간 RI 비교가 타당해진다. |
| 구현 | TaskModule.get_system_rules() 메서드 추가 (base + SignalGameModule). TurnManager가 매 턴 task rules를 system prompt에 append. |
업데이트 히스토리
| 날짜 | 출처 | 내용 |
|---|---|---|
| 2026-03-27 | experiment_design_v2.md §3 (§3.1~§3.3) | 초기 작성 — 2층 직교 설계, 공통 턴 흐름, 이중 X축 측정 구조 |
| 2026-04-07 | commit bfba0b7 | 게임 규칙을 observation → system prompt로 이동 (턴 간 RI 비교 균일화) |