생성형 에이전트와 창발적 시뮬레이션(Generative Agents and Emergent Simulation)

Park et al. 2023(UIST '23, arXiv:2304.03442)은 **스몰빌(Smallville), 즉 25명의 에이전트(agent)로 구성된 샌드박스(sandbox)에 세 부분으로 이루어진 아키텍처(architecture)를 채워 넣었습니다. 그 세 부분은 메모리 스트림(memory stream; 자연어 로그), 성찰(reflection; 에이전트가 자기 스트림에 대해 생성하는 상위 수준의 종합), 계획(plan; 하루 단위 행동과 이후의 하위 계획)**입니다. 이 연구의 상징적인 결과는 밸런타인데이 파티 창발(Valentine's Day party emergence) 사례였습니다. 한 에이전트에게 "밸런타인데이 파티를 열고 싶다"는 시드(seed)만 주었을 뿐인데, 추가 스크립팅(scripting) 없이도 초대가 집단 안으로 퍼지고 일정이 조율되어 파티가 실제로 열렸습니다. 처음에는 이를 전혀 몰랐던 24명의 에이전트가 만들어 낸 결과입니다. 절제 실험(ablation)은 믿음직함(believability)을 위해 세 구성 요소가 모두 필요함을 보여 줍니다. 문서화된 실패 사례는 공간 규범 오류(spatial-norm errors)로, 닫힌 가게(store)에 들어가거나 1인용 화장실(single-person bathroom)을 공유하려는 식의 행동입니다. 이 아키텍처는 2026년 현재 에이전트 시뮬레이션과 멀티 에이전트 사회 평가의 참조 아키텍처(reference architecture)입니다.

유형: Learn + Build 언어: Python (stdlib) 선수 지식: Phase 16 · 04 (멀티 에이전트 기본 모델), Phase 16 · 13 (공유 메모리) 예상 시간: 약 75분

문제

대부분의 멀티 에이전트 시스템은 빈틈없이 스크립트로 짜인(tightly-scripted) 팀입니다. 계획자(planner)는 계획하고, 코더(coder)는 코드를 짜고, 리뷰어(reviewer)는 검토합니다. 잘 정의된 과업(task)에는 이 방식이 잘 작동합니다. 하지만 에이전트가 기억(memory), 우선순위(priority), 열린 세계(open world)를 갖게 될 때 나타나는 창발적(emergent)이고 스크립트가 없는 행동은 이 방식으로 포착하지 못합니다. 연구, 사회 시뮬레이션(society simulation), 그리고 점점 더 게임 인공지능(AI)에는 이런 두 번째 종류의 시스템이 필요합니다.

스몰빌 아키텍처(Smallville architecture)는 그 분야의 기준점(benchmark)입니다. Park 2023 이전까지 가장 뛰어난 에이전트 시뮬레이션조차 얕은 스크립트 추종자(script-follower)에 머물렀습니다. 이 연구 이후로는 같은 패턴이 열린 세계 안의 생성형 에이전트(generative agents)에서 기본형으로 자리 잡았습니다. 2026년에 에이전트 시뮬레이션을 만든다면, 스몰빌의 세 구성 요소(component)를 사용하거나, 사용하지 않는 이유를 명시적으로 정당화해야 합니다.

사전 테스트

2문제 · 이 강의를 시작하기 전에 얼마나 알고 있는지 확인해보세요

1.스몰빌(Smallville) 생성형 에이전트(Park et al. 2023)의 세 가지 아키텍처 구성 요소는 무엇인가요?

2.밸런타인데이 파티 창발(Valentine's Day party emergence)은 무엇이며 왜 기술적으로 중요한가요?

0/2 답변 완료

개념

세 가지 구성 요소

**메모리 스트림(Memory stream). 관찰(observation), 행동(action), 성찰(reflection), 계획(plan)을 기록한 추가 전용(append-only) 로그입니다. 각 항목(entry)은 타임스탬프(timestamp), 종류(type), 자연어로 된 설명(description), 그리고 파생 메타데이터(metadata)를 가집니다. 파생 메타데이터는 최신성(recency), 중요도(importance; 에이전트가 1-10으로 스스로 매김), 관련성(relevance; 현재 질의와의 코사인 유사도; cosine similarity)**입니다.

[2026-02-14 09:12:03] observation: Isabella Rodriguez asked me if I like jazz
[2026-02-14 09:14:22] reflection:   I enjoy long conversations about music
[2026-02-14 10:05:00] plan:         Attend Isabella's Valentine's Day party tonight

메모리 인출(memory retrieval)은 세 점수를 결합합니다. score = w_recency * e^(-decay * age) + w_importance * importance + w_relevance * cos_sim. 상위 k개(top-k) 항목이 현재 프롬프트(current prompt)로 들어갑니다.

성찰(Reflection). 주기적으로(보통 메모리 N개마다 또는 중요한 사건이 있을 때) 에이전트는 최근 메모리에서 상위 수준의 종합(higher-order synthesis)을 생성합니다. 성찰 항목은 다시 스트림에 들어가며 다른 메모리처럼 인출됩니다. 에이전트가 "이해(understanding)"를 쌓는 방식이며, 이 아키텍처에서 장기 신념(long-term belief)에 해당하는 부분입니다.

계획(Plan). 위에서 아래로 내려가는 분해(top-down decomposition)입니다. 먼저 하루 단위 계획(day-level plan)을 큰 줄기로 잡습니다(예: "출근한다, 클라우스(Klaus)와 저녁을 먹는다"). 그다음 시간 단위 계획(hour-level plan), 행동 단위 계획(action-level plan)으로 내려갑니다. 계획은 수정 가능(revisable)합니다. 관찰이 계획과 어긋나면, 에이전트는 전체 계획이 아니라 영향을 받은 구간(segment)만 다시 계획합니다.

왜 세 가지가 모두 중요한가(절제 실험; ablation)

Park et al.은 관찰(observation), 성찰(reflection), 계획(plan)을 각각 하나씩 빼는 절제 실험을 수행했습니다. 어느 하나를 빼도 믿음직함(believability)이 떨어집니다.

  • 관찰이 없으면 에이전트는 맥락을 놓치고 낡은 신념(stale belief)에 따라 행동합니다.
  • 성찰이 없으면 에이전트가 상위 수준의 신념을 형성하지 못합니다. 상호작용(interaction)이 얕은 수준에 머뭅니다.
  • 계획이 없으면 행동은 단순 반응성 잡음(reactive noise)이 되고, 목표가 흩어집니다.

사람 평가자(human rater)가 매긴 믿음직함 점수는 세 구성 요소가 모두 있을 때 가장 높습니다. 하나라도 빠지면 측정 가능한 수준의 성능 하락(regression)이 발생합니다.

밸런타인데이 창발(Valentine's Day emergence)

한 에이전트인 이사벨라 로드리게스(Isabella Rodriguez)에게 "2월 14일 오후 5시에 홉스 카페(Hobbs Cafe)에서 밸런타인데이 파티를 열고 싶다"는 목표를 시드(seed)로 심습니다. 나머지 24명의 에이전트에게는 그런 시드가 없습니다. 시뮬레이션 안에서 며칠이 흐르는 동안 다음 일들이 일어납니다.

  1. 이사벨라의 계획에는 사람들을 초대하는 일이 포함됩니다.
  2. 각 초대(invitation)는 이웃 에이전트의 메모리 스트림에 관찰(observation)로 들어갑니다.
  3. 그 이웃의 성찰은 "이사벨라가 파티를 연다(Isabella is throwing a party)"라는 신념을 만들어 냅니다.
  4. 그 이웃의 계획에는 "2월 14일 파티에 참석한다(attend party on Feb 14)"가 포함됩니다.
  5. 이웃이 또 다른 이웃에게 말합니다. 초대는 중앙 조정자(central coordination) 없이 퍼져 나갑니다.
  6. 2월 14일 오후 5시, 여러 에이전트가 홉스 카페에 모입니다.

이것이 기술적 의미의 창발(emergence)입니다. 시스템 수준의 행동(system-level behavior; 파티)이 국소적인 상호작용(local interaction; 양자 간 초대 + 개별 계획)에서 생겨났고, 중앙 오케스트레이터(central orchestrator)는 존재하지 않았습니다.

문서화된 실패 양상(failure modes)

Park et al.은 다음 문제들을 명시적으로 문서화했습니다.

  • 공간 규범 오류(Spatial norm errors). 에이전트가 닫혀 있는 가게에 들어갑니다. 1인용 화장실을 동시에 쓰려고 합니다. 식사 용도가 아닌 방에서 식사합니다. 모델(model)은 환경 그 자체만 보고는 사회적·물리적 규범(social-physical norm)을 추론하지 못합니다.
  • 메모리 과다(Memory overflow). 시뮬레이션을 길게 돌리면 메모리 인출 비용이 커집니다. 실무적인 해결책은 주기적 메모리 압축(periodic memory compaction; 요약 후 가지치기)과 중요도가 낮은 항목에 대한 감쇠(decay)입니다.
  • 성찰 환각(Reflection hallucination). 성찰이 메모리 스트림에 존재하지 않는 관계(relationship)를 만들어 낼 수 있습니다. 완화책은 성찰 프롬프트에 원천 메모리 식별자(source memory id)를 포함시키고 인출 시점에 이를 검증(verify)하는 것입니다.

이는 운영(production) 단계에서 의미 있는 실패 양상입니다. 2026년에 만들어지는 모든 에이전트 시뮬레이션이 이 문제들을 함께 물려받습니다.

세 구성 요소 구현 규칙(Three-component implementation rules)

  1. 메모리는 추가 전용(append-only)입니다. 메모리 항목을 변형(mutate)하지 않습니다. 정정(correction)은 새 항목으로 추가합니다.
  2. 중요도 점수는 저렴합니다. 작성 시점(write time)에 LLM을 호출해 중요도를 1-10으로 평가하고, 그 점수는 캐시(cache)합니다.
  3. 인출은 순위화이지 필터링이 아닙니다. 결합 점수 기준으로 상위 k개를 사용합니다. 맥락을 잃게 만드는 강한 필터(hard filter)는 쓰지 않습니다.
  4. 성찰은 주기적으로 실행됩니다. 아직 처리되지 않은(unprocessed) 메모리들의 중요도 합이 임계값(threshold; 예: 150)을 넘으면 발동(trigger)합니다.
  5. 계획은 수정 가능(revisable)합니다. 새 관찰이 계획과 어긋나면 전체 계획이 아니라 영향을 받은 구간만 다시 생성합니다.

스몰빌 이후의 생성형 에이전트

2024-2026년 후속 연구는 이 아키텍처를 다음 방향으로 확장합니다.

  • 정책/시장 조사(policy / market research)를 위한 멀티 에이전트 사회 시뮬레이션. 스몰빌과 같은 형태의 인구 집단(population)이 새 기능에 대한 사용자 행동(user behavior)을 시뮬레이션합니다. 에이/비 테스트(A/B test)보다 빠르지만, 정확도(accuracy)에 대해서는 논쟁이 있습니다.
  • 게임용 NPC AI. 스몰빌 방식의 에이전트를 쓰는 롤플레잉 게임(RPG)은 스크립트로 짜인 퀘스트(scripted quest) 대신 창발적인 이야기 줄기(emergent storyline)를 만들어 냅니다.
  • 생성형 에이전트 평가 벤치마크(generative-agent evaluation benchmark). 평가 지표는 과업 정확도(task accuracy)가 아니라, 긴 시뮬레이션 동안 행동의 믿음직함 + 일관성(believability + coherence)이 됩니다.

이 아키텍처는 참조점입니다. 확장 연구는 구성 요소를 교체합니다. 메모리에는 벡터 저장소(vector store)를 쓰고, 성찰은 검색 보강(retrieval-augmented) 방식으로 만들며, 계획은 신경기호적 계획(neurosymbolic plan)으로 바꿀 수 있습니다. 하지만 세 부분으로 이루어진 구조는 그대로 유지됩니다.

이것이 멀티 에이전트 엔지니어링에 중요한 이유

스몰빌은 구성 요소만 맞으면 멀티 에이전트 창발이 저렴하게 가능하다는 점을 입증한 개념 증명(proof of concept; PoC)입니다. 이 아키텍처는 오픈소스 모델에서도 재현되었습니다. 더 작은 LLM에서는 믿음직함이 급격히 무너지기보다 완만하게 떨어지는 경향을 보입니다. 창발적 사회 행동(emergent social behavior)이 필요한 운영 시스템은 이 형태를 사용합니다. 빈틈없는 과업 수행(tight task execution)이 필요한 시스템은 이 단계(phase) 앞부분에서 다룬 관리자/역할/원형 패턴(supervisor / roles / primitives patterns)을 사용합니다.

직접 만들기

code/main.py는 실제 LLM 없이 스크립트로 짜인 에이전트 정책(agent policy)을 사용해 세 구성 요소를 표준 라이브러리(stdlib) Python으로 구현합니다. 데모(demo)는 밸런타인 파티 창발을 작은 규모로 재현합니다.

  • MemoryStream — 최신성·중요도·관련성(recency/importance/relevance) 인출이 있는 추가 전용 로그입니다.
  • reflect(stream) — 최근의 중요도 높은 메모리를 대상으로 동작하는, 스크립트로 짜인 성찰입니다.
  • plan(agent_state) — 현재 신념(current belief)에 기반한 하루 단위와 시간 단위 계획입니다.
  • 시나리오(scenario): 에이전트 5명. 에이전트 1은 "오후 5시에 파티를 연다"는 시드로 시작합니다. 시뮬레이션 틱(tick)이 흐르며 초대가 퍼지고 에이전트가 한곳에 모입니다.

실행합니다.

python3 code/main.py

예상 출력은 틱 단위 추적(tick-by-tick trace)입니다. 마지막 틱(final tick)까지 에이전트 5명 중 적어도 3명이 자기 계획에 파티를 포함하고, 파티 장소에 모입니다. 하나의 시드가 오케스트레이터 없이 조율된 도착(coordinated arrival)을 만들어 낸 것입니다.

사용해보기

outputs/skill-simulation-designer.md는 생성형 에이전트 시뮬레이션을 설계합니다. 에이전트 수, 메모리 스키마(memory schema), 성찰 주기(reflection cadence), 계획 시야(plan horizon), 평가 지표(evaluation metric)를 정합니다.

배포 전 확인

운영 시뮬레이션을 위한 규칙입니다.

  • 메모리가 곧 데이터베이스입니다. 규모가 커지면 실제 저장소(vector DB, Postgres 등)를 고릅니다. 인메모리 stdlib 구현은 프로토타입(prototype)용입니다.
  • 인출 추적(retrieval trace)을 로그로 남기세요. 모든 행동에 대해, 그 행동을 이끈 상위 k개 메모리를 로그로 기록합니다. 이것이 디버깅 능력(debug ability)의 핵심입니다.
  • 에이전트당 토큰 예산(per-agent token budget)을 정하세요. 틱마다 에이전트 한 명의 인출 + 성찰 + 계획은 O(k)번의 LLM 호출입니다. 에이전트 수 N × 틱 수 T × 틱당 호출 수가 예산을 크게 초과할 수 있습니다.
  • 메모리를 주기적으로 압축하세요. 중요도가 낮은 항목은 요약 후 가지치기(summarize-and-prune)합니다. 보존 정책(retention policy)은 사소한 디테일이 아니라 설계 결정입니다.
  • 공간/사회 규범 위반을 명시적으로 탐지하세요. 이 아키텍처는 그 규범을 스스로 배우지 않습니다.

연습문제

  1. (쉬움) code/main.py를 실행합니다. 3명 이상의 에이전트가 파티 장소에 모이는지 확인합니다. 에이전트 수를 10명으로 늘리면 창발이 여전히 일어나는지도 살펴봅니다.
  2. (중간) 성찰 단계(reflection step)를 제거합니다. 행동이 어떻게 달라지나요? Park 2023의 절제 실험 결과(ablation finding)와 어떻게 대응되는지 정리합니다.
  3. (중간) 경쟁하는 시드 목표를 도입합니다(예: "클라우스는 오후 5시에 연구 발표를 하고 싶다"). 에이전트가 둘로 나뉘나요, 아니면 한쪽 목표가 우세해지나요? 무엇이 결과를 결정하는지 분석합니다.
  4. (어려움) 공간 제약(spatial constraint)을 추가합니다. 홉스 카페가 한 번에 최대 4명까지만 수용한다고 가정합니다. 시뮬레이션이 초과 인원을 우아하게 처리하나요, 아니면 "1인용 화장실" 같은 실패 양상이 나타나나요?
  5. (어려움) Park et al.(arXiv:2304.03442) 6절(창발적 행동 실험; emergent behavior experiments)을 읽습니다. 미니어처 구현에서 재현할 수 없는 행동을 하나 찾아내고, 그것을 재현하려면 이 아키텍처의 어떤 구성 요소를 강화해야 하는지 설명합니다.

핵심 용어

용어흔한 설명실제 의미
메모리 스트림(Memory stream)"에이전트의 일기"관찰, 행동, 성찰, 계획을 기록한 추가 전용 로그다.
최신성(Recency)"메모리가 얼마나 새로운가"항목의 나이(age)에 대해 지수 감쇠(exponential-decay)로 매기는 점수다.
중요도(Importance)"에이전트가 얼마나 중요하게 여기는가"작성 시점에 1-10으로 스스로 매겨 캐시해 둔 값이다.
관련성(Relevance)"현재 질의와 얼마나 관련 있는가"임베딩 기반 코사인 유사도(cosine similarity)다.
성찰(Reflection)"상위 수준의 신념"최근 메모리에서 생성한 종합이며, 새 메모리로 다시 스트림에 들어간다.
계획(Plan)"하루/시간/행동 분해"위에서 아래로 내려가는 계획 트리(plan tree)다. 관찰과 충돌하면 수정 가능하다.
스몰빌(Smallville)"Park 2023의 샌드박스"밸런타인데이 창발을 만들어 낸 25명짜리 에이전트 시뮬레이션이다.
믿음직함(Believability)"품질 지표"행동이 그럴듯한 에이전트처럼 보이는지를 사람 평가자가 매긴 점수다.

더 읽을거리

실습 코드

이 강의의 실습 코드 1개

main
Code

산출물

이 강의에서 생성된 프롬프트, 스킬, 코드 산출물 1개

simulation-designer

Design a generative-agent simulation (Smallville-style) for a given scenario. Specifies memory schema, reflection cadence, plan horizon, spatial/social constraints, and evaluation metrics.

Skill

확인 문제

3문제 · 모두 맞추면 완료 표시가 가능합니다

1.Park et al.의 절제 실험(ablation study)에서 성찰(reflection)을 제거하면 어떻게 되나요?

2.생성형 에이전트 시뮬레이션에서 문서화된 '공간 규범 오류(spatial norm error)' 실패 모드는 무엇인가요?

3.메모리 인출 점수 공식(최신성 + 중요도 + 관련성)이 강한 필터(hard filter)가 아닌 순위화(ranking) 함수로 설계된 이유는 무엇인가요?

0/3 답변 완료

추가 문제 풀기

AI가 강의 내용을 바탕으로 새로운 문제를 생성합니다