AI 레이어의 모든 종류
Source: Dev.to

Introduction
- 이 문서는 맞춤형 AI 아키텍처를 구축할 때 다양한 유형의 AI 레이어를 생각하기 위한 개념적 프레임워크를 제시합니다.
- 이는 엄격한 기술 정의가 아니라 다중 레이어 AI 시스템을 구축하면서 도출한 실용적인 분류 체계입니다.
- 이 프레임워크는 AI가 특정 기능을 자율적으로 수행하면서 전체적인 일관성을 유지하는 시스템 설계에 도움이 됩니다.
- 더 깊이 이해하려면 Lesson 4 – Multilayered AI Architectures를 다시 살펴보세요.
- 해당 강의에서는 이러한 레이어 유형을 조정하여 AI가 핵심 기능을 제어하도록 하는 일관된 시스템을 만드는 방법을 탐구합니다.
구조적으로 생각하기
플랫폼에서 뛰어난 결과를 달성하기 위한 최선의 전략을 세우세요
- 실제 목표를 고려하고 구체적인 단계로 나누세요.
- 직접 이 작업을 수행한다면 어떤 단계가 필요한지 생각해 보세요. 그것을 적어두세요—그것이 여러분의 워크플로우입니다.
- 워크플로우를 정형화한 후, 프로세스 전반에 걸쳐 필요한 데이터 변환을 생각해 보세요.
- 이러한 변환을 자동화할 프롬프트를 만들고, 이를 연결하세요.
성능 고려사항
컨텍스트를 위해 대화 기록에 의존하는 플랫폼은 토큰 수와 성능 문제를 일으킬 수 있습니다.
- 대화 통합 프롬프트가 도움이 될지 고려해 보세요.
무작위성 고려사항
어떤 결정에든 진정한 무작위 숫자가 필요하다면, 백엔드에서 해당 값을 AI에 제공하도록 하세요.
- LLM 학습 데이터가 순수한 무작위성에 근접한 값을 생성한다고 가정하지 마세요.
핵심 레이어 유형
Reasoning / Strategy Layers
플랫폼의 의사결정자
- Reasoning 레이어는 콘텐츠가 생성되기 전에 결정을 내립니다.
- 현재 상태를 평가하고, 가능한 옵션을 고려하며, 결과를 판단하고, 방향을 선택합니다.
- 시스템의 *“계획 뇌”*라고 생각하면 됩니다.
Emstrata에서: Discovery 레이어는 참가자가 무엇을 하고 싶어 하는지 살펴보고, 시뮬레이션 상태를 고려하며, 서사적으로 의미 있는 결과를 평가하고, 행동이 어떻게 해결될지 결정합니다.
- 아직 이야기를 쓰는 것이 아니라 무엇이 일어나야 하는지를 결정하는 단계입니다.
필요할 때: LLM에게 “무엇이 일어나야 할지 그리고 아름답게 써라”라고 동시에 요구하고 있지는 않은가요?
- 하나로 과부하가 걸렸다면 먼저 추론하고, 그 다음에 작성하도록 나누세요.
Navigator Layers
상황에 맞는 시스템의 길잡이
- Reasoning 레이어와 밀접하지만 별개의 기능을 수행합니다.
- 조건에 따라 실행 흐름이 바뀌는 시스템에서 다음 단계가 무엇이어야 하는지를 결정합니다.
- Reasoning 레이어는 콘텐츠 혹은 결과를 결정하고, Navigator 레이어는 프로세스 흐름을 결정합니다.
전형적인 사용 사례:
- 오류 감지 레이어가 수정이 필요한지 판단합니다.
- 라우팅 레이어가 사용자 의도를 분석하고 요청을 완전히 다른 처리 경로로 보냅니다.
- 시스템이 런타임 조건에 따라 자체 실행 흐름을 조정합니다.
필요할 때: 이전 단계에서 일어난 일에 따라 아키텍처가 동적으로 분기해야 할 때.
- Navigator 레이어는 시스템이 아키텍처 내에서 스스로 경로를 선택할 수 있게 해줍니다.
Content Layers
플랫폼의 수행자
- Content 레이어는 사용자가 경험하는 실제 출력물(문장, 대화, 설명, 인터페이스 텍스트 등)을 생성합니다.
- Reasoning 레이어의 결정과 Memory 레이어의 컨텍스트를 받아 경험을 만들어냅니다.
Emstrata에서: Narration 레이어는 Discovery가 결정한 “무엇이 일어났는지”를 받고, Groundskeeper의 시뮬레이션 상태를 확인한 뒤, 플레이어가 읽는 서사 텍스트를 작성합니다.
- 여기서는 분위기, 템포, 감정적 울림을 최적화하며—논리나 일관성은 다른 레이어가 담당합니다.
필요할 때: 인간이 읽을 수 있는 출력을 생성하지 않는 플랫폼이 아니라면 언제나 필요합니다.
- 시스템의 “목소리”가 살아나는 곳입니다.
Correction Layers
플랫폼의 심판관
- Correction 레이어는 다른 레이어가 작업을 마친 후에 오류를 잡아냅니다.
- 품질 관리 역할을 하며, 연속성 단절, 논리적 모순, 제약 위반 등을 찾아냅니다.
Emstrata에서: Chron‑Con 레이어는 내러션이 작성된 뒤에 실행됩니다.
- 예를 들어 “술집에 있던 캐릭터가 여행 없이 갑자기 숲에 나타났는가?”
- “누군가가 가지고 있지 않은 아이템을 사용했는가?”
- “공간 좌표가 서술된 행동과 일치하는가?” 등을 확인합니다.
필요할 때: 복잡한 요구사항과 기대치를 충족해야 할 경우.
- 최종 답변을 공개하기 전에 수정하면 잘못된 응답이 나올 확률을 낮출 수 있습니다.
Memory Consolidation Layers
플랫폼의 기록자
- 이 레이어는 방금 일어난 일을 나중에 검색 가능하도록 정제합니다.
- 장황한 콘텐츠에서 중요한 세부 정보를 추출해 시스템이 효율적으로 조회하거나 향후 입력에 삽입할 수 있는 형식으로 저장합니다.
Emstrata에서: Groundskeeper가 이 역할을 수행합니다.
- Discovery가 무엇이 일어날지 결정하고 Narration이 이를 작성한 뒤, Groundskeeper는 모든 엔티티와 떠오르는 서사의 종합 메모리를 업데이트합니다.
- 시뮬레이션 상태에 대한 진실의 근원을 유지합니다.
필요할 때: 대부분의 다중 턴 시스템에서 필요합니다.
- 이 레이어가 없으면 시스템이 정보를 잊어버리거나 처리되지 않은 히스토리로 비대해집니다.
Catch‑All / Connector Layers
플랫폼의 정리 담당자
- 모든 레이어가 딱 맞지는 않지만, 시스템을 매끄럽게 연결하고 보완하는 역할을 합니다.
- (이하 내용은 다음 파트에서 이어집니다.)
위 범주에 깔끔하게 들어맞으며, 캐치‑올 또는 커넥터 레이어는 다음과 같은 잡다한 작업을 처리합니다:
-
하위 시스템에서 사용할 데이터를 포맷팅합니다.
-
외부 API와 내부 AI 워크플로우를 연결합니다.
-
보조 변환을 수행합니다(예: 현지화, 어조 조정).
-
이 레이어들은 주요 레이어 간의 원활한 인계 과정을 보장하고 전체 파이프라인이 일관되게 유지되도록 합니다.
문서 끝.
Clean Category Layers
- Catch‑all layers는 여러 다른 레이어를 보완하는 하이브리드입니다.
- 이들은 단일 전문 레이어에 속하지 않지만 시스템이 일관되게 작동하는 데 필수적인 작업을 처리합니다.
- 이러한 레이어는 격차를 발견할 때 종종 나타납니다.
- 두 레이어가 함께 작업해야 할 수도 있지만 서로 다른 언어로 “소통”합니다.
- 여러 레이어가 동일한 전처리를 필요로 할 수 있지만, 그 전처리를 개별적으로 담당해서는 안 됩니다.
Emstrata에서: Chron‑Con
Chron‑Con은 단순히 오류를 교정하는 것을 넘어, 서사에서 비밀과 기억을 추적하고, 이를 Groundskeeper가 시스템 메모리에 통합할 수 있도록 명시적으로 태그합니다.
- Narration이 고품질 prose를 쓰면서 비밀을 추출하고 분류하는 별도 작업에 부담을 지게 하고 싶지는 않을 것입니다.
- Groundskeeper는 이러한 조각들을 “비밀” 또는 “기억”으로 명확히 라벨링해야 시뮬레이션 히스토리에 올바르게 통합할 수 있습니다.
- Chron‑Con이 바로 이 간극을 메워 줍니다.
포괄적인 레이어가 필요할 때
- 레이어 간 조정 문제가 발생했을 때.
- 기존 레이어에 자연스럽게 들어가지 않는 중요한 작업이 있을 때.
순환형 vs. 상황형 시스템 (그리고 그 사이의 모든 것)
순환형 시스템
- 매번 같은 프롬프트를 실행합니다.
Emstrata는 다음과 같은 패턴을 따릅니다: 매 턴마다 Discovery → Narration → Chron‑Con → Groundskeeper 를 정확히 그 순서대로 실행합니다.
- 시뮬레이션에서 무슨 일이 일어나든 흐름이 예측 가능하고 일관됩니다.
- 다음에 무엇이 실행될지 항상 알 수 있습니다.
- 디버깅이 간단하고 비용 추정이 더 신뢰할 수 있습니다.
상황형 시스템
- 결과나 AI 방향에 따라 경로를 결정합니다.
- 이전 단계에서 일어난 일에 따라 아키텍처를 통과하는 경로가 달라집니다.
예시:
-
오류 감지 레이어가 수정이 필요한지를 판단합니다.
-
라우팅 레이어가 사용자 의도를 분석하고 요청을 완전히 다른 처리 경로로 보냅니다.
-
시스템이 런타임 조건에 따라 자체 실행 흐름을 조정합니다.
하이브리드 시스템
- 기본적으로는 순환형이지만, 특정 조건이 충족될 때는 상황형으로 전환됩니다.
- 핵심 사이클은 항상 실행하지만, 특정 트리거가 발생하면 특화된 서브시스템으로 분기할 수 있습니다.
- 많은 실제 시스템이 여기서 끝납니다: 신뢰할 수 있는 백본에 엣지 케이스를 위한 조건부 분기가 결합된 형태.
Emstrata에도 상황형 파생 시스템이 있습니다.
무관한 백엔드 상호작용
AI 레이어 사이에서 무슨 일이 일어날까?
레이어 사이에 데이터를 저장하는 이유
- AI 레이어 사이에서 중요한 변환된 데이터를 백엔드에 저장하면 나중에 조회, 디버깅, 오류 발생 시 재실행 등에 활용할 수 있습니다.
- 데이터를 저장해 두면 나중에 흥미로운 방식으로 보여주거나, 향후 다른 레이어에 입력으로 사용할 수 있습니다.
편견 없는 판사로서의 백엔드
- 편견 없는 판단이 필요할 때는 백엔드가 바로 그 역할을 합니다.
- 백엔드는 결과에 무관하며, AI는 강한 선호도를 가지고 이를 드러낼 수 있습니다.
Emstrata에서는 결과가 가중 무작위성을 사용해 결정됩니다.
- Discovery 레이어가 어떤 일이 일어날 가능성을 결정합니다.
- 백엔드가 0~1000 사이의 무작위 숫자를 반환합니다.
- 그 숫자가 설정된 가능성 범위 안에 있으면, 백엔드는 확인된 결과를 Narration 레이어에 전달합니다.
- 범위를 벗어나면, 백엔드는 실패 결과를 전송합니다.
데이터 지속성 모범 사례
- 각 레이어의 변환된 출력을 저장하고, 원시 AI 응답만 저장하지 마세요.
- 데이터에 태그를 붙이세요:
- 레이어 출처
- 타임스탬프
- 관련 메타데이터(예: 신뢰도 점수, 버전 번호) 등
- 디버깅, 분석, 혹은 나중에 재처리할 때 필요할 사항을 고려하세요.
- 백엔드가 전체 상태 관리를 담당해야 합니다—AI가 레이어 간 자체 히스토리를 추적하도록 의존하지 마세요.