
채용 공고에서 보는건 게임 도메인을 기준으로 LLM을 얼마나 논리적이고 효율적으로 제어할 수 있는지를 핵심 역량으로 보고있습니다.
LLM에게 생각하는 법을 가르쳐서 LLM을 게임 속 지능형 에이전트 (NPC)로 만들기 위한 설계 기법에 대해 알아보겠습니다.
기본적으로 NPC와 LLM통한 NPC의 차이점은 대답만 하는게 아닌 논리적으로 행동하게 만드는 기법이라고 생각합니다
연운 NPC AI 채팅 대화 후기 및 공략
오늘은 연운에서 AI 채팅으로 플레이어와 대화하는 NPC들과 있었던 경험들을 바탕으로 AI 대화 공략법을 얘기해보려고 합니다. 연운에서는 일부 NPC가 AI 채팅 기반으로 플레이어와 대화할 수 있게
dewpaca-games.tistory.com
참조된 내용을 보면 최근 steam에 발매된 연운 npc들은 특정 호감도를 달성하면 보상을 얻을 수 있게 설계되었습니다.
LLM을 통해 NPC에게 말을 전달하고 분석하여 NPC가 다음에 나올 행동과 호감도를 결정 짓습니다.
직접 플레이 하진 않았지만 지인이 플레이하는것을 지켜본 결과
대화 품질과 결과가 그렇게 만족스럽진 않았습니다
생각하는 NPC의 기술은 4가지로 설명할 수 있습니다.
A. CoT (Chain of Thought, 생각의 사슬)
- 개념: 모델에게 바로 답을 요구하지 않고, **"단계별로 생각한 뒤 대답해"**라고 유도하는 기법입니다.
- 게임 적용 예시:
- Bad: "플레이어가 칼을 들고 다가온다. 상인인 너는 어떻게 할래?" "도망갑니다." (단순함)
- CoT: "상황을 분석하고, 너의 성격(겁쟁이)과 현재 소지금, 플레이어의 평판을 고려하여 단계별로 추론한 뒤 행동을 결정해."
- 결과: "1. 플레이어는 무장 상태임. 2. 나는 겁쟁이임. 3. 하지만 플레이어 평판이 '영웅'임. 따라서 도망가지 않고 떨면서 물건을 팝니다."
B. CoT-SC (Self-Consistency, 자기 일관성)
- 개념: 같은 질문에 대해 여러 개의 추론 경로(CoT)를 생성하게 하고, 그중 **가장 다수가 나온 결론(투표)**을 선택하는 방식입니다.
- 왜 필요한가?: NPC가 가끔 엉뚱한 행동(할루시네이션)을 하는 것을 방지하고 일관된 캐릭터성을 유지하기 위함입니다.
C. ReAct (Reasoning + Acting) ★ 중요 (Agentic AI의 핵심)
- 개념: **[생각(Reasoning) 행동(Acting) 관찰(Observation)]**의 루프를 돌리는 기법입니다.
- 게임 적용 예시:
- Thought: 플레이어가 퀘스트 아이템을 요구했다. 내가 그 아이템을 가지고 있는지 확인해야 한다.
- Action: Inventory_Check(item_name="Dragon_Ball") (외부 툴/함수 호출)
- Observation: (게임 DB에서 리턴) "아이템 있음: 0개"
- Final Response: "미안하네, 그 물건은 지금 내게 없어."
- LangChain이 바로 이 ReAct 패턴을 구현하기 쉽게 해줍니다.
D. ToT (Tree of Thoughts)
- 개념: 여러 가지 해결책을 나뭇가지처럼 펼쳐놓고, 각 가지의 가망성을 평가하며 탐색하는 기법입니다. 퍼즐 게임이나 복잡한 전략 시뮬레이션 NPC를 만들 때 유용합니다.
LLM은 입력할 수 있는 토큰(기억)의 한계가 있습니다. 게임 속 방대한 설정(Lore)과 로그(Log)를 어떻게 효율적으로 주입하느냐가 **'RAG'**와 **'컨텍스트 엔지니어링'**의 핵심입니다.
A. 동적 컨텍스트 주입 (Dynamic Context Injection)
- 모든 게임 설정을 프롬프트에 다 넣을 수 없습니다. 현재 플레이어의 위치, 퀘스트 진행도, 눈앞의 상황에 맞는 정보만 골라서 프롬프트 앞단(System Prompt)에 끼워 넣는 기술입니다.
- 이것을 자동화하고 고도화하면 그게 바로 **RAG(검색 증강 생성)**가 됩니다.
B. 프롬프트 압축 및 요약 (Context Compression)
- 긴 대화 로그를 그대로 유지하면 토큰 비용이 폭발합니다.
- 기법: 지난 10턴의 대화를 "플레이어와 가격 협상을 했으나 결렬됨"처럼 한 줄로 요약하여 다음 프롬프트의 '기억' 섹션에 넣어주는 방식입니다.
C. 페르소나 및 제약조건 강화 (System Prompting)
- NPC가 AI임을 들키지 않게 하는 엔지니어링입니다.
- 기법: "너는 AI 모델이 아닙니다"라고 하는 것보다, **"너는 중세 시대 대장장이이며, 현대 과학 용어는 전혀 모릅니다. 말투는 투박하게 하세요."**라고 구체적인 제약(Negative Constraints)을 거는 것이 핵심입니다.
위를 기반으로 작은 LLM NPC를 만들어보겠습니다
'AI 엔지니어준비' 카테고리의 다른 글
| 🐳 도커 스토리지 바인드 마운트, tmpfs, 그리고 --mount 🚩 (1) | 2026.01.20 |
|---|---|
| 🐳 도커 이미지 vs 도커 볼륨: 무엇이 다를까? 🤔 (0) | 2026.01.20 |
| AI 채용 직무 준비 (리서치, 데이터, 에이전트) (0) | 2026.01.18 |
| Image Segmentation 이미지 분할 코드 분석 (0) | 2026.01.16 |
| weight 단어에 대한 해석 (0) | 2026.01.15 |