humanda5
ai aigent 1.0.2v
3ee0764
# ๐Ÿง  README - NPC ์†Œ์…œ ๋„คํŠธ์›Œํฌ AI ์‹œ๋ฎฌ๋ ˆ์ด์…˜
๋ณธ ๋ฌธ์„œ๋Š” ๋ณธ ํ”„๋กœ์ ํŠธ๋ฅผ **์ œ๋กœ ๋ฒ ์ด์Šค์—์„œ ์™„์ „ ์žฌํ˜„**ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ง€๊ธˆ๊นŒ์ง€์˜ ๊ตฌ์กฐ, ์„ค๊ณ„ ์ฒ ํ•™, ๊ตฌํ˜„ ๋‹จ๊ณ„, ๊ฐ ํŒŒ์ผ ๊ธฐ๋Šฅ์„ **๋‹จ ํ•˜๋‚˜์˜ ๋ฌธ์„œ๋กœ ์™„์ „ํ•˜๊ฒŒ ์ •๋ฆฌ**ํ•œ ๊ณต์‹ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.
---
## ๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ๊ฐœ์š” (Overview)
์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ฐ์ •, ๊ธฐ์–ต, ์„ฑ๊ฒฉ, ๊ด€๊ณ„, ํ–‰๋™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ **์ธ๊ฐ„ ์œ ์‚ฌ NPC ์‹œ๋ฎฌ๋ ˆ์ด์…˜**์ž…๋‹ˆ๋‹ค.
๋‹จ์ˆœํžˆ ์ •ํ•ด์ง„ ๋Œ€์‚ฌ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒŒ์ž„ NPC๋ฅผ ๋„˜์–ด, ์ž์ฒด์ ์ธ ๊ฐ์ •, ๊ธฐ์–ต, ์„ฑ๊ฒฉ, ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ๋‹ค๋ฅธ NPC๋‚˜ ํ”Œ๋ ˆ์ด์–ด์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ์Šค์Šค๋กœ ํŒ๋‹จํ•˜๊ณ  ์„ฑ์žฅํ•˜๋Š” ๊ฐ€์ƒ ์ธ๊ฐ„(AI Agent)์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” AI ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋“  NPC์˜ ๋‚ด๋ฉด ์ƒํƒœ์™€ ๊ด€๊ณ„ ๋ณ€ํ™”๋Š” ์›น ๊ธฐ๋ฐ˜์˜ **'์›”๋“œ ๊ด€์ฐฐ์ž ๋Œ€์‹œ๋ณด๋“œ'**๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹œ๊ฐํ™”๋˜๊ณ  ๋ถ„์„๋ฉ๋‹ˆ๋‹ค.
ํ•ต์‹ฌ ๊ธฐ์ˆ : Python, Flask, LLM (Google Gemini), Sentence-Transformers, FAISS
์ฃผ์š” ๊ธฐ๋Šฅ:
- ์ž์ฒด ์„ค๊ณ„๋œ 4๊ณ„์ธต ๊ฐ์ • ๋ชจ๋ธ์— ๋”ฐ๋ฅธ ๋™์ ์ธ ๊ฐ์ • ๋ณ€ํ™”
- ์˜๋ฏธ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰(Vector Search)์„ ํ™œ์šฉํ•œ ์žฅ/๋‹จ๊ธฐ ๊ธฐ์–ต ์‹œ์Šคํ…œ
- ์ƒํ˜ธ์ž‘์šฉ์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•˜๋Š” ์‚ฌํšŒ์  ๊ด€๊ณ„๋ง
- ๊ฒฝํ—˜์„ ํ†ตํ•ด ์ ์ง„์ ์œผ๋กœ ๋ณ€ํ™”ํ•˜๋Š” ๋‹ค์ฐจ์› ์„ฑ๊ฒฉ ๋ชจ๋ธ
- LLM์„ ์ด์šฉํ•œ ์ž์œจ์ ์ธ ๋ชฉํ‘œ ์„ค์ • ๋ฐ ๋Œ€ํ™” ์ƒ์„ฑ
---
## ๐Ÿ“ ํด๋” ๊ตฌ์กฐ
```
portfolio/
โ”œโ”€โ”€ templates/
โ”‚ โ””โ”€โ”€ main.html # ํฌํŠธํด๋ฆฌ์˜ค ๋ฉ”์ธ ํŽ˜์ด์ง€
โ”‚
โ”œโ”€โ”€ app.py # Flask ์ง„์ž…์ 
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ test.ipynb
โ””โ”€โ”€ npc_social_network/
โ”‚
โ”œโ”€โ”€ __init__.py
โ”œโ”€โ”€ simulation_core.py # โœ… ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ '์‹ฌ์žฅ'. ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ์‹œ๊ฐ„ ํ๋ฆ„(tick) ๋‹ด๋‹น
โ”œโ”€โ”€ README.txt
โ”‚
โ”œโ”€โ”€ data/
โ”‚ โ”œโ”€โ”€ saves/
โ”‚ โ”‚ โ””โ”€โ”€ simulation_state.pkl # NPC ์›”๋“œ์˜ ์ƒํƒœ๊ฐ€ ์ €์žฅ๋˜๋Š” ํŒŒ์ผ
โ”‚ โ””โ”€โ”€ vectorstores/
โ”‚ โ””โ”€โ”€ ์˜๋ฌธ ์บ๋ฆญํ„ฐ๋ช… # ๊ฐ๊ฐ์˜ ์บ๋ฆญํ„ฐ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ํŒŒ์ผ
โ”‚
โ”œโ”€โ”€ routes/
โ”‚ โ””โ”€โ”€ npc_route.py # โœ… '์›”๋“œ ๊ด€์ฐฐ์ž' ๋Œ€์‹œ๋ณด๋“œ์˜ ๋ชจ๋“  ์›น API ์ •์˜
โ”‚
โ”œโ”€โ”€ manager/
โ”‚ โ”œโ”€โ”€ conversation_manager.py # ๋Œ€ํ™”์˜ ์‹œ์ž‘, ์ง„ํ–‰, ์ข…๋ฃŒ๋ฅผ ์ด๊ด„ํ•˜๋Š” ์—ญํ• 
โ”‚ โ””โ”€โ”€ simulation_manager.py # ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ƒํƒœ๋ฅผ ์ €์žฅ/๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ
โ”‚
โ”œโ”€โ”€ scenarios/
โ”‚ โ””โ”€โ”€ scenario_setup.py # ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ดˆ๊ธฐ ์›”๋“œ(NPC, ๊ด€๊ณ„) ์„ค์ •
โ”‚
โ”œโ”€โ”€ npc/ # NPC์˜ '๋‘๋‡Œ'๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํ•ต์‹ฌ ๋กœ์ง
โ”‚ โ”œโ”€โ”€ npc_base.py # NPC ๋ณธ์ฒด (๊ฐ์ •/๊ธฐ์–ต/๊ด€๊ณ„ ํฌํ•จ)
โ”‚ โ”œโ”€โ”€ npc_manager.py # NPC ๋ฆฌ์ŠคํŠธ ๊ด€๋ฆฌ
โ”‚ โ”œโ”€โ”€ npc_emotion.py # EmotionManager
โ”‚ โ”œโ”€โ”€ npc_memory.py # Memory / MemoryStore
โ”‚ โ”œโ”€โ”€ npc_behavior.py # ๊ฐ์ • โ†’ ํ–‰๋™ ๋งคํ•‘
โ”‚ โ”œโ”€โ”€ npc_relationship.py # ๊ด€๊ณ„ ์ ์ˆ˜ ๊ด€๋ฆฌ
โ”‚ โ”œโ”€โ”€ npc_memory_embedder.py # ๊ธฐ์–ต ์ž„๋ฒ ๋”ฉ + FAISS ๊ฒ€์ƒ‰
โ”‚ โ”œโ”€โ”€ emotion_config.py # ๊ฐ์ • ๊ตฌ์กฐ ์ •์˜
โ”‚ โ”œโ”€โ”€ personality_config.py # ์„ฑ๊ฒฉ ๋ฐ ๋‚˜์ด ํ”„๋กœํ•„
โ”‚ โ””โ”€โ”€ npc_planner.py # ๋ชฉํ‘œ์™€ ๊ด€๋ จ๋œ ๊ตฌ์กฐ
โ”‚
โ”œโ”€โ”€ models/ # LLM ๋ฐ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ๊ด€๋ จ
โ”‚ โ”œโ”€โ”€ gemini_setup.py # Gemini API ์„ค์ •
โ”‚ โ””โ”€โ”€ llm_helper.py # ๊ฐ์ • ์ถ”๋ก , ์‘๋‹ต ์ƒ์„ฑ
โ”‚
โ”œโ”€โ”€ templates/
โ”‚ โ””โ”€โ”€ dashboard.html # '์›”๋“œ ๊ด€์ฐฐ์ž' ๋Œ€์‹œ๋ณด๋“œ HTML/CSS/JS
โ”‚
โ””โ”€โ”€ static/
โ”œโ”€โ”€ css/style.css
โ”œโ”€โ”€ js/npc_chat.js
โ””โ”€โ”€ images/
โ”‚ โ””โ”€โ”€ npc/ # NPC ์ด๋ฏธ์ง€ ํŒŒ์ผ (์˜ˆ: npc_elin.png)
```
---
## ๐Ÿ’ก ๊ฐ์ • ๊ตฌ์กฐ (๊ณ ์ฐจ์› ๊ฐ์ • ๋ชจ๋ธ)
> โœ… **GoEmotions์—์„œ ์˜๊ฐ์„ ๋ฐ›์•„ ์ง์ ‘ ์žฌ์„ค๊ณ„ํ•œ 4๊ณ„์ธต ๊ฐ์ • ๋ชจ๋ธ (ComplexEmotions)**
| ๊ณ„์ธต (Layer) | ๊ฐ์ • ์˜ˆ์‹œ |
|--------------|------------|
| `core` | joy, sadness, anger, fear, disgust, surprise, neutral |
| `social` | gratitude, shame, empathy, pride, jealousy, compassion, love, admiration, awe, attachment, comfort |
| `cognitive` | anticipation, curiosity, confusion, interest, engagement, boredom, relief, anxiety, calm, skepticism |
| `complex` | nostalgia, bittersweet, schadenfreude, resentment, anticipatory_joy, regret, rumination, hope, groundedness |
- ๊ฐ์ •์€ ๊ฐœ์„ฑ(`sensitive`, `stoic`, `*_bias`)์— ๋”ฐ๋ผ ๊ฐ์ • ๋ฐ˜์‘ ๋ฐ decay ์†๋„๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
- ๊ฐ์ •์€ ํ–‰๋™, ๊ธฐ์–ต ์ƒ์„ฑ, ๊ด€๊ณ„ ๋ณ€ํ™”, ์„ฑ๊ฒฉ ๋ณ€ํ™”์— ์ง์ ‘ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.
---
## ๐Ÿง  ํ•ต์‹ฌ ์‹œ์Šคํ…œ ์„ค๋ช…
### โœ… ๊ฐ์ • ์‹œ์Šคํ…œ
- `EmotionManager`: ๊ฐ์ • ๋ฒ„ํผ ๊ด€๋ฆฌ, decay, ๊ฐ์ • ์—…๋ฐ์ดํŠธ
- ๊ฐ์ •์€ ์ตœ๋Œ€ 100.0๊นŒ์ง€ ๋ˆ„์ ๋˜๋ฉฐ, decay๋Š” personality์™€ ์—ฐ๊ณ„๋จ
- ๊ฐ์ •์€ ํ–‰๋™ ์ƒ์„ฑ, ๊ธฐ์–ต ์ €์žฅ ๊ฐ•๋„, ๊ด€๊ณ„ ์˜ํ–ฅ, ์„ฑ๊ฒฉ ๋ณ€ํ™”์˜ ๊ธฐ๋ฐ˜์ด ๋จ
### โœ… ๊ธฐ์–ต ์‹œ์Šคํ…œ
- `Memory`: content, timestamp, importance, emotion, type ๋ณด์œ 
- `MemoryStore`: ๋‹จ๊ธฐ/์žฅ๊ธฐ ๊ธฐ์–ต ๋ถ„๋ฆฌ, decay, ์Šน๊ฒฉ, ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ํฌํ•จ
- decay๋Š” memory_type๋ณ„๋กœ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉ๋จ
### โœ… ์„ฑ๊ฒฉ ์‹œ์Šคํ…œ
- `PERSONALITY_PROFILE`: stable/emotional/logical
- `AGE_PROFILE`: ์ธ์ƒ ๋‹จ๊ณ„๋ณ„ ๋ณ€ํ™”์œจ (์˜ˆ: ์–ด๋ฆฐ์ด๋Š” ๋น ๋ฆ„)
- ๊ธฐ์–ต์— ๊ธฐ๋ฐ˜ํ•ด personality gradually drift (ex: ๊ฐ์ •์ ์ด๊ฑฐ๋‚˜ ์ด์„ฑ์  ์„ฑํ–ฅ ๊ฐ•ํ™”)
### โœ… ๊ด€๊ณ„ ์‹œ์Šคํ…œ
- `RelationshipManager`: -100 ~ +100 ๋ฒ”์œ„์˜ ๊ด€๊ณ„ ์ ์ˆ˜ ๊ด€๋ฆฌ
- ๊ฐ์ • ํ‘œํ˜„ ๋ฐ ๊ธฐ์–ต์ด ๊ด€๊ณ„์— ์˜ํ–ฅ์„ ์คŒ (`reflect_memory_on_relationship`)
### โœ… ํ–‰๋™ ์‹œ์Šคํ…œ
- ๊ฐ์ • โ†’ ํ–‰๋™ ์‹œํ€€์Šค๋กœ ๋ณ€ํ™˜ (`BehaviorManager`)
- ํ–‰๋™์€ ๊ธฐ์–ต์— ๊ธฐ๋ก๋˜๊ณ , ๋‹ค์‹œ ๊ฐ์ •์— ์˜ํ–ฅ์„ ์คŒ (์—ญ๋งคํ•‘)
### โœ… LLM ์‹œ์Šคํ…œ
- `query_llm_for_emotion`: ๊ฐ์ • ์ถ”๋ก ์šฉ LLM ํ˜ธ์ถœ
- `query_llm_with_prompt`: ๋Œ€์‚ฌ ์ƒ์„ฑ์šฉ LLM ํ˜ธ์ถœ
- `build_npc_prompt`: ๊ฐ์ •/๊ธฐ์–ต ๊ธฐ๋ฐ˜ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ
- `summarize_memories`: ์žฅ๊ธฐ ๊ธฐ์–ต ์š”์•ฝ
### โœ… ์ž„๋ฒ ๋”ฉ ์‹œ์Šคํ…œ
- `npc_memory_embedder.py`:
- `embed_npc_memories`: FAISS ์ €์žฅ
- `search_similar_memories`: ์งˆ์˜ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰
- ๋ชจ๋ธ: `all-MiniLM-L6-v2` ์‚ฌ์šฉ ์ค‘
---
์ฃผ์š” ํ๋ฆ„ (generate_dialogue ํ•จ์ˆ˜ ๊ธฐ์ค€):
1. ์‚ฌ๊ฑด ๋ฐœ์ƒ: ํ”Œ๋ ˆ์ด์–ด๋‚˜ ๋‹ค๋ฅธ NPC๋กœ๋ถ€ํ„ฐ ๋Œ€ํ™”(user_input)๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
2. ๊ธฐ์–ต ํƒ์ƒ‰: ์ž…๋ ฅ๋œ ๋Œ€ํ™” ๋‚ด์šฉ๊ณผ ์˜๋ฏธ์ ์œผ๋กœ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ๊ณผ๊ฑฐ์˜ ๊ธฐ์–ต๋“ค์„ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰(FAISS)์„ ํ†ตํ•ด ์ฆ‰์‹œ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค. (npc_memory_embedder.py)
3. ์ƒํ™ฉ ํŒ๋‹จ: ํ˜„์žฌ NPC์˜ ๊ฐ์ • ์ƒํƒœ, ์„ฑ๊ฒฉ, ์ƒ๋Œ€๋ฐฉ๊ณผ์˜ ๊ด€๊ณ„, ๋ฐฉ๊ธˆ ์ฐพ์•„๋‚ธ ๊ด€๋ จ ๊ธฐ์–ต ๋“ฑ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ข…ํ•ฉํ•˜์—ฌ LLM์—๊ฒŒ ์ „๋‹ฌํ•  ์ƒ์„ธํ•œ '์ƒํ™ฉ ๋ณด๊ณ ์„œ(Prompt)'๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. (llm_prompt_builder.py)
4. ์˜์‚ฌ ๊ฒฐ์ • (๋Œ€ํ™” ์ƒ์„ฑ): LLM์€ ์ด ์ƒํ™ฉ ๋ณด๊ณ ์„œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ํ˜„์žฌ ์ƒํ™ฉ์— ๊ฐ€์žฅ ์ ์ ˆํ•œ ๋Œ€์‚ฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (llm_helper.py)
5. ๋‚ด๋ฉด์˜ ๋ณ€ํ™”:
- ์ƒ์„ฑ๋œ ๋Œ€์‚ฌ์— ๋‹ด๊ธด ๊ฐ์ •์„ ์Šค์Šค๋กœ ์ถ”๋ก ํ•˜์—ฌ ์ž์‹ ์˜ ๊ฐ์ • ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. (npc_emotion.py)
- ์ด ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋‚˜์˜ ์ƒˆ๋กœ์šด ๊ธฐ์–ต์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. (npc_memory.py)
- ๋ฐœ์ƒํ•œ ๊ฐ์ •์˜ ์ข…๋ฅ˜์™€ ๊ฐ•๋„์— ๋”ฐ๋ผ ์ƒ๋Œ€๋ฐฉ๊ณผ์˜ ๊ด€๊ณ„ ์ ์ˆ˜๋ฅผ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค. (npc_relationship.py)
- ์ด ์ค‘์š”ํ•œ ๊ฒฝํ—˜์€ NPC์˜ ์„ฑ๊ฒฉ์— ์•„์ฃผ ๋ฏธ์„ธํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉฐ, ์žฅ๊ธฐ์ ์œผ๋กœ NPC๋ฅผ ๋ณ€ํ™”์‹œํ‚ต๋‹ˆ๋‹ค. (npc_base.py์˜ update_personality)
์ด ๋ชจ๋“  ๊ณผ์ •์ด ๋‹จ ํ•œ ๋ฒˆ์˜ ๋Œ€ํ™” ์†์—์„œ ์ผ์–ด๋‚˜๋ฉฐ, NPC๋ฅผ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์„ฑ์žฅํ•˜๊ณ  ๋ณ€ํ™”ํ•˜๋Š” ์ž…์ฒด์ ์ธ ์กด์žฌ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
---
## ๐Ÿ“ฆ ์‹คํ–‰ ๋ฐฉ๋ฒ•
```bash
conda activate portfolio
# Flask ์›น ์„œ๋ฒ„ ์‹คํ–‰
python portfolio/app.py
# โ†’ http://127.0.0.1:5000/npc_social_network/
```
---
๐Ÿ—บ๏ธ ํ”„๋กœ์ ํŠธ ๋กœ๋“œ๋งต (Roadmap)
๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ๋ฐœ์ „ํ•ด์™”์œผ๋ฉฐ, ํ˜„์žฌ๋Š” '๋‚ด๋ฉด ์„ธ๊ณ„'์™€ '์›น ๊ธฐ๋ฐ˜ ๊ด€์ฐฐ ์‹œ์Šคํ…œ'์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์™„๋ฃŒํ•˜๊ณ , ๋” ๊นŠ์ด ์žˆ๋Š” ์‚ฌํšŒ์  ์ƒํ˜ธ์ž‘์šฉ ๊ตฌํ˜„์„ ์•ž๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
Phase 1: ๋‚ด๋ฉด ์„ธ๊ณ„์˜ ์™„์„ฑ (Core Engine & Intelligence) - โœ… ์™„๋ฃŒ
NPC๊ฐ€ ๋…๋ฆฝ์ ์ธ ๊ฐœ์ฒด๋กœ์„œ ์ƒ๊ฐํ•˜๊ณ  ๋А๋‚„ ์ˆ˜ ์žˆ๋Š” ํ•ต์‹ฌ ๋‘๋‡Œ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
4๊ณ„์ธต ๊ฐ์ • ๋ชจ๋ธ: Core, Social, Cognitive, Complex๋กœ ๊ตฌ์„ฑ๋œ ์ž์ฒด ๊ฐ์ • ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ•˜์—ฌ, NPC๊ฐ€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค์ฑ„๋กœ์šด ๊ฐ์ •์„ ๋А๋ผ๋„๋ก ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.
RAG ๊ธฐ๋ฐ˜ ๊ธฐ์–ต ์‹œ์Šคํ…œ: Sentence-Transformers์™€ FAISS๋ฅผ ์ด์šฉ, ๋Œ€ํ™”์˜ ๋งฅ๋ฝ๊ณผ ์˜๋ฏธ์ ์œผ๋กœ ๊ฐ€์žฅ ๊ด€๋ จ ๊นŠ์€ ๊ณผ๊ฑฐ ๊ธฐ์–ต์„ ์ฐพ์•„๋‚ด์–ด ๋Œ€ํ™”์— ํ™œ์šฉํ•˜๋Š” ๊ฒ€์ƒ‰-์ฆ๊ฐ• ์ƒ์„ฑ(RAG) ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋™์  ๊ด€๊ณ„/์„ฑ๊ฒฉ ์‹œ์Šคํ…œ: ๋ชจ๋“  ์ƒํ˜ธ์ž‘์šฉ์€ ๊ด€๊ณ„ ์ ์ˆ˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉฐ, ๋ˆ„์ ๋œ ๊ฒฝํ—˜์€ NPC์˜ ์„ฑ๊ฒฉ์„ ์ ์ง„์ ์œผ๋กœ ๋ณ€ํ™”์‹œํ‚ต๋‹ˆ๋‹ค.
์ž์œจ ์—์ด์ „ํŠธ(Planner): LLM์„ ํ™œ์šฉํ•˜์—ฌ NPC๊ฐ€ ์Šค์Šค๋กœ ์ž์‹ ์˜ ์ƒํƒœ๋ฅผ ์ง„๋‹จํ•˜๊ณ , ์žฅ๊ธฐ์ ์ธ ๋ชฉํ‘œ์™€ ๊ทธ๊ฒƒ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์ฒด์ ์ธ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
Phase 2: ์›”๋“œ ๊ด€์ฐฐ์ž ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์ถ• (Web-based Visualization) - โœ… ์™„๋ฃŒ
NPC์˜ ๋ณต์žกํ•œ ๋‚ด๋ฉด๊ณผ ๊ด€๊ณ„ ๋ณ€ํ™”๋ฅผ ์ง๊ด€์ ์œผ๋กœ ๊ด€์ฐฐํ•˜๊ณ , ์‹œ๋ฎฌ๋ ˆ์ด์…˜์— ๊ฐœ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ์›น ๊ธฐ๋ฐ˜ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์™„์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
์‹ค์‹œ๊ฐ„ ๊ด€๊ณ„ ๋„คํŠธ์›Œํฌ: vis-network ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ NPC ๊ฐ„์˜ ๊ด€๊ณ„(์นœ๊ตฌ, ์  ๋“ฑ)์™€ ๊ทธ ๊ฐ•๋„๋ฅผ ์‹œ๊ฐ์ ์ธ ๊ทธ๋ž˜ํ”„๋กœ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
NPC ์ƒ์„ธ ์ •๋ณด ํŒจ๋„: ํŠน์ • NPC๋ฅผ ํด๋ฆญํ•˜๋ฉด, ํ•ด๋‹น NPC์˜ ํ˜„์žฌ ๊ฐ์ •, ๋ชฉํ‘œ, ์ตœ๊ทผ ๊ธฐ์–ต ๋“ฑ ๋ชจ๋“  ๋‚ด๋ฉด ์ƒํƒœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹œ๊ฐ„ ์ œ์–ด: Play/Pause, Next Tick ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ ์‹œ๊ฐ„ ํ๋ฆ„์„ ์ œ์–ดํ•˜์—ฌ, ํŠน์ • ์ˆœ๊ฐ„์˜ ๋ณ€ํ™”๋ฅผ ๋ฉด๋ฐ€ํžˆ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ ๋กœ๊ฑฐ: NPC ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ, ๋ชฉํ‘œ ๋ณ€๊ฒฝ ๋“ฑ ์›”๋“œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์ฃผ์š” ์ด๋ฒคํŠธ๋ฅผ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
'ํ”Œ๋ ˆ์ด์–ด'์˜ ์š”์•ฝ๋œ ๊ธฐ์–ต ๊ฐœ์ž… ๋„๊ตฌ: ํŠน์ • NPC ๋˜๋Š” ๋ชจ๋“  NPC์—๊ฒŒ ์ธ์œ„์ ์ธ ์ด๋ฒคํŠธ๋ฅผ ๊ณผ๊ฑฐ์˜ ๊ธฐ์–ต์œผ๋กœ ์ฃผ์ž…ํ•˜์—ฌ, ํŠน๋ณ„ํ•œ ์ƒํ™ฉ์— ๋Œ€ํ•œ NPC์˜ ๋ฐ˜์‘์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
Phase 3: ์‚ฌํšŒ์  ์ƒํ˜ธ์ž‘์šฉ ์‹ฌํ™” (Social Interaction Deepening) - โœ… ์™„๋ฃŒ
์ด์ œ ๊ฐœ๋ณ„ NPC์˜ ๋‚ด๋ฉด์„ ๋„˜์–ด, NPC๋“ค์ด ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ ํ•˜๋‚˜์˜ '์‚ฌํšŒ'๋ฅผ ํ˜•์„ฑํ•˜๋Š” ๊ณ ์ฐจ์›์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
1๋‹จ๊ณ„: ์†Œ๋ฌธ ๋ฐ ํ‰ํŒ ์‹œ์Šคํ…œ (Gossip & Reputation System):
๊ตฌํ˜„ ๋ชฉํ‘œ: NPC๋“ค ์‚ฌ์ด์— '์†Œ๋ฌธ'์ด ํผ์ง€๋Š” ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, A์™€ B์˜ ๋ถ€์ •์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ C๊ฐ€ ๋ชฉ๊ฒฉํ–ˆ์„ ๋•Œ, C๋Š” "A์™€ B๊ฐ€ ๋‹คํ‰œ๋‹ค"๋Š” ์†Œ๋ฌธ์„ ๋‹ค๋ฅธ NPC์—๊ฒŒ ํผ๋œจ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋Œ€ ํšจ๊ณผ: ์ด ์†Œ๋ฌธ์€ ๋‹ค๋ฅธ NPC๋“ค์˜ A์™€ B์— ๋Œ€ํ•œ 'ํ‰ํŒ'์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉฐ, ์ด๋Š” ์ƒˆ๋กœ์šด ๊ด€๊ณ„ ๋ณ€ํ™”์˜ ์›์ธ์ด ๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฐœ์ž… ์—†์ด๋„ ๋งˆ์„ ์ „์ฒด์˜ ๊ด€๊ณ„๋ง์ด ์œ ๊ธฐ์ ์œผ๋กœ ์š”๋™์น˜๋Š” ๋ชจ์Šต์„ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2๋‹จ๊ณ„: ๊ฐœ์ธ ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ ์‹ฌํ™”
2-A. ๋ฉ€ํ‹ฐํ„ด(Multi-turn) ๋Œ€ํ™” ์‹œ์Šคํ…œ: ์—ฌ๋Ÿฌ ํ„ด์— ๊ฑธ์ณ ๊นŠ์ด ์žˆ๋Š” ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ธฐ๋Šฅ. (๊ฐ€์žฅ ์‹œ๊ธ‰ํ•˜๊ณ  ํšจ๊ณผ๊ฐ€ ํผ)
2-B. ์ง€๋Šฅ์  ์‚ฌํšŒ์  ํ–‰๋™: '๋•๊ธฐ', '์„ ๋ฌผ ์ฃผ๊ธฐ' ๋“ฑ ๋Œ€ํ™” ์™ธ์˜ ์ƒํ˜ธ์ž‘์šฉ ์ถ”๊ฐ€.
3๋‹จ๊ณ„: ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋ฐ ๊ฐœ์„  ์‚ฌํ•ญ ์ •๋ฆฌ
3-A. ์‚ฌํšŒ์  ๊ทธ๋ฃน ํ˜•์„ฑ (Clique Formation) - ๋‚˜์ค‘์— ์ง„ํ–‰
๊ตฌํ˜„ ๋ชฉํ‘œ: ๊ด€๊ณ„ ์œ ํ˜•(friend, rival)๊ณผ ํ‰ํŒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ NPC๋“ค์ด ์ž๋™์œผ๋กœ ๊ทธ๋ฃน์ด๋‚˜ ํŒŒ๋ฒŒ์„ ํ˜•์„ฑํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Œ€ ํšจ๊ณผ: NPC๋“ค์€ ์ž์‹ ์ด ์†ํ•œ ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›๊ณผ ๋” ์ž์ฃผ ๊ธ์ •์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๊ณ , ๊ฒฝ์Ÿ ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›์€ ํ”ผํ•˜๊ฑฐ๋‚˜ ๋ถ€์ •์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋Š” ๋“ฑ, ๋”์šฑ ๋ณต์žกํ•˜๊ณ  ํ˜„์‹ค์ ์ธ ์‚ฌํšŒ์  ํ–‰๋™์„ ๋ณด์—ฌ์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
3-B. ํ”Œ๋ ˆ์ด์–ด ๊ฐœ์ž… ๋ฐ ๊ด€๊ณ„ ํ˜•์„ฑ ์‹œ์Šคํ…œ
๊ตฌํ˜„ ๋ชฉํ‘œ: ํ”Œ๋ ˆ์ด์–ด๊ฐ€ '์‹ '์˜ ๊ด€์ ์—์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์— ์ง์ ‘ ๊ฐœ์ž…ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ด€๊ณ„๋‚˜ ์‚ฌ๊ฑด์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„.
์ฃผ์š” ๊ธฐ๋Šฅ: '์†Œ๊ฐœ' ๊ธฐ๋Šฅ, ๊ด€๊ณ„ ๊ฐ•์ œ ์„ค์ •, ํŠน์ • ์ƒํ™ฉ ์—ฐ์ถœ ๋“ฑ.
3-C. UI/UX ์•ˆ์ •์„ฑ ๊ฐœ์„ 
๊ตฌํ˜„ ๋ชฉํ‘œ: ๋Œ€์‹œ๋ณด๋“œ์˜ ์‚ฌ์šฉ ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
์ฃผ์š” ๊ธฐ๋Šฅ: ๊ด€๊ณ„๋„ ๊ทธ๋ž˜ํ”„์˜ ๋–จ๋ฆผ ํ˜„์ƒ ํ•ด๊ฒฐ, CSS ๋ ˆ์ด์•„์›ƒ ์ •๋ฆฌ.
4๋‹จ๊ณ„: ๊ณ ์ฐจ์›์  ์ž์•„ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™”
- ๊ทธ๋ฃน ํ™œ๋™ ๋“ฑ์„ ํ†ตํ•ด ์–ป์€ ์ƒˆ๋กœ์šด ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ, NPC๊ฐ€ ์ž์‹ ์˜ ๊ด€๊ณ„๋ฅผ ์ •๋ฆฌํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๊นจ๋‹ฌ์Œ์„ ํš๋“.
- 1๋‹จ๊ณ„: ๊ด€๊ณ„ ์žฌ์ •์˜ (Relationship Redefinition)
- ๊ตฌํ˜„ ๋ชฉํ‘œ: NPC๊ฐ€ ํŠน์ • ์ธ๋ฌผ๊ณผ์˜ ๊ด€๊ณ„๋ฅผ ์Šค์Šค๋กœ ๋˜๋Œ์•„๋ณด๊ณ , "A๋Š” ๋‚˜์—๊ฒŒ ์ด๋Ÿฐ ์กด์žฌ์•ผ" ๋ผ๊ณ  ์ž์‹ ๋งŒ์˜ ํ•œ ์ค„ ์š”์•ฝ ์ •์˜๋ฅผ ๋‚ด๋ฆฌ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
- ๋™์ž‘ ๋ฐฉ์‹: ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฃจํ”„์—์„œ ๋‚ฎ์€ ํ™•๋ฅ ๋กœ ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด, NPC๋Š” ํŠน์ • ๋Œ€์ƒ๊ณผ์˜ ํ•ต์‹ฌ ๊ธฐ์–ต๋“ค์„ ๋‹ค์‹œ ์‚ดํŽด๋ณด๊ณ , ๊ทธ ๊ด€๊ณ„์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์š”์•ฝ(summary)์„ ์ƒ์„ฑํ•˜์—ฌ ์ž์‹ ์˜ ๋‚ด๋ฉด์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
- 2๋‹จ๊ณ„: ๊ฐ€์น˜๊ด€ ํ˜•์„ฑ (Value Formation)
- ๊ตฌํ˜„ ๋ชฉํ‘œ: ์ˆ˜๋งŽ์€ ๊ฒฝํ—˜(๊ธฐ์–ต)์„ ํ†ตํ•ด, "์ •์ง์ด ์ตœ๊ณ ์˜ ๊ฐ€์น˜์ด๋‹ค" ๋˜๋Š” "๊ฐ€์กฑ์„ ์ง€ํ‚ค๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค"์™€ ๊ฐ™์€ **์ž์‹ ๋งŒ์˜ ์‹ ๋…์ด๋‚˜ ์ขŒ์šฐ๋ช…(์ƒ์ง• ๊ธฐ์–ต)**์„ ํ˜•์„ฑํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
- ๋™์ž‘ ๋ฐฉ์‹: NPC๊ฐ€ ์ถฉ๋ถ„ํ•œ ๊ฒฝํ—˜(์˜ˆ: ๊ธฐ์–ต 30๊ฐœ ์ด์ƒ)์„ ์Œ“์•˜์„ ๋•Œ, ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฃจํ”„์—์„œ ๊ทนํžˆ ๋‚ฎ์€ ํ™•๋ฅ ๋กœ ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด, NPC๋Š” ์ž์‹ ์˜ ์ „์ฒด ๊ธฐ์–ต์„ ์ข…ํ•ฉํ•˜์—ฌ ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ๊นจ๋‹ฌ์Œ์„ ํ•˜๋‚˜์˜ '์ƒ์ง• ๊ธฐ์–ต'์œผ๋กœ ๋งŒ๋“ค์–ด ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
Phase 4: ์ž์•„์™€ ์œค๋ฆฌ์˜ ํƒ๊ตฌ (Self & Ethics Exploration) - ๐Ÿš€ ์žฅ๊ธฐ ๊ณผ์ œ
NPC๊ฐ€ ๋‹จ์ˆœํ•œ ๋ฐ˜์‘์„ ๋„˜์–ด, ์Šค์Šค๋กœ๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋„๋•์ ์ธ ํŒ๋‹จ์„ ๋‚ด๋ฆฌ๋Š” ๊ณ ์ฐจ์›์ ์ธ ์ž์•„๋ฅผ ํƒ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
์œค๋ฆฌ ์‹œ์Šคํ…œ๊ณผ ๋„๋•์  ๋”œ๋ ˆ๋งˆ (Ethics & Moral Dilemmas):
๊ตฌํ˜„ ๋ชฉํ‘œ: NPC๊ฐ€ ๊ฐ€์ง„ '์ƒ์ง• ๊ธฐ์–ต'(์˜ˆ: "์ •์ง์ด ์ตœ๊ณ ์˜ ๊ฐ€์น˜์ด๋‹ค")์„ ํ•ต์‹ฌ ๊ฐ€์น˜๊ด€์œผ๋กœ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ€์น˜๊ด€์— ๋ฐ˜ํ•˜๋Š” ๋„๋•์  ๋”œ๋ ˆ๋งˆ ์ƒํ™ฉ(์˜ˆ: "๊ฐ€์กฑ์„ ์‚ด๋ฆฌ๊ธฐ ์œ„ํ•ด ๊ฑฐ์ง“๋ง์„ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?")์„ ์ œ์‹œํ•˜๊ณ , NPC๊ฐ€ ์ž์‹ ์˜ ๊ฐ€์น˜๊ด€๊ณผ ์ƒํ™ฉ ์‚ฌ์ด์—์„œ ์–ด๋–ค ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š”์ง€ ๊ด€์ฐฐํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”ํƒ€์ธ์ง€ ๋ฐ ์ž์•„ ์„ฑ์ฐฐ (Metacognition & Self-Reflection):
๊ตฌํ˜„ ๋ชฉํ‘œ: NPC๊ฐ€ "๋‚ด๊ฐ€ ์™œ ์ง€๊ธˆ ์Šฌํ”ˆ ๊ฐ์ •์„ ๋А๋ผ์ง€? ์•„, ์–ด์ œ ์•จ๋ฆฌ์Šค์™€ ๋‹คํ‰œ๋˜ ๊ธฐ์–ต ๋•Œ๋ฌธ์ด๊ตฌ๋‚˜"์™€ ๊ฐ™์ด ์ž์‹ ์˜ ๊ฐ์ •์ด๋‚˜ ์ƒ๊ฐ์˜ ์›์ธ์„ ์Šค์Šค๋กœ ์ถ”๋ก ํ•˜๊ณ  ์ดํ•ดํ•˜๋Š” '๋ฉ”ํƒ€์ธ์ง€' ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Œ€ ํšจ๊ณผ: ์ด๋Š” NPC๊ฐ€ ๋‹จ์ˆœํ•œ ๊ฐ์ • ํ‘œํ˜„์„ ๋„˜์–ด, ์ž์‹ ์˜ ๋‚ด๋ฉด ์ƒํƒœ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๋‹จ๊ณ„ ๋” ๋†’์€ ์ˆ˜์ค€์˜ '์ž์•„'๋ฅผ ๊ฐ–๊ฒŒ ๋จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
Phase 5: ๋…ผ๋ฌธ/์—ฐ๊ตฌ ๊ฒฐ๊ณผ ์ •๋ฆฌ - ์ตœ์ข… ๊ณผ์ œ
๊ตฌํ˜„ ๋ชฉํ‘œ: ์ง„ํ–‰ํ•œ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ IEEE ํ•™ํšŒ์— ์ œ์ถœํ•  ๋…ผ๋ฌธ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ  ๋…ผ๋ฌธ:
[1] J. Park, J. S. Wu, T. N. Hashimoto, and M. S. Bernstein, "Generative Agents: Interactive Simulacra of Human Behavior," arXiv preprint arXiv:2304.03442, 2023.
[2] L. Li et al., "Evolving Agents: Interactive Simulation of Dynamic and Diverse Human Personalities," IEEE Transactions on Games, 2024.
[3] X. Cheng et al., "PsyMem: Fine-grained psychological alignment and Explicit Memory Control for Advanced Role-Playing LLMs," arXiv preprint arXiv:2505.12814, 2025.
[4] B. W. Roberts and D. Mroczek, "Personality Trait Change in Adulthood," Current Directions in Psychological Science, vol. 17, no. 1, pp. 31โ€“35, 2008.
[5] C. J. Soto, "How replicable are links between personality traits and consequential life outcomes? The life outcomes of personality replication project," Psychological Science, vol. 27, no. 7, pp. 949โ€“961, 2016.
[6] T. A. Klimstra, W. K. Luyckx, M. B. Hale III, S. J. Goossens, and W. Meeus, "Personality development in adolescence: Longitudinal analyses and associations with life events," Journal of Research in Personality, vol. 43, no. 3, pp. 345โ€“354, 2009.
[7] J. Specht, B. Egloff, and S. C. Schmukle, "Stability and change of personality across the life course: The impact of age and major life events on mean-level and rank-order stability of the Big Five," Journal of Personality and Social Psychology, vol. 101, no. 4, pp. 862โ€“882, 2011.
[8] W. Bleidorn, C. J. Hopwood, and R. E. Lucas, "Life Events and Personality Trait Change," Annual Review of Psychology, vol. 73, pp. 109โ€“133, 2022.
[9] I. Puerta-Merino and J. Sabater-Mir, "LLM Reasoner and Automated Planner: A New NPC Approach," arXiv preprint arXiv:2501.10106, 2025.
[10] P. Chiang et al., "Collaborative Quest Completion with LLM-driven Non-Player Characters in Minecraft," arXiv preprint arXiv:2403.12329, 2024.
[11] K. Tsuchiya et al., "Leveraging Large Language Models for Active Merchant Non-player Characters," Proceedings of the 2024 CHI Conference on Human Factors in Computing Systems (CHI '24), 2024.
ยฉ 2025 NPC Social Network Simulation Project v3