Generative Agents: Interactive Simulacra of Human Behavior

Joon Sung Park, Joseph C. O'Brien, Carrie J. Cai, Meredith Ringel Morris, Percy Liang, Michael S. Bernstein

UIST · 2023

generative-agentssimulationmemory-streamreflection

TL;DR

Introduces generative agents with memory, reflection, and planning capabilities that produce believable human-like behavior in a simulated environment.

Key Contribution

This paper introduces generative agents - computational software agents that simulate believable human behavior. The key innovation is an architecture combining memory stream, reflection, and planning to create coherent, persistent agent personalities.

Architecture Components

Memory Stream

A comprehensive record of the agent's experience:

  • Stores observations as natural language descriptions
  • Each memory has timestamp, importance score, and embedding
  • Retrieval based on recency, importance, and relevance
  • Enables agents to remember and reference past events
  • Reflection

    Higher-level abstractions from memories:

  • Periodically synthesizes memories into insights
  • Generates questions about recent experiences
  • Answers questions to form reflections
  • Reflections stored as new memories (enabling recursive reflection)
  • Planning

    Converting reflections into action:

  • Creates daily plans based on personality and goals
  • Plans stored in memory for reference
  • Plans can be revised based on new observations
  • Reactions to unexpected events
  • Memory Retrieval

    Scoring Function

    Memories retrieved using weighted combination:

  • Recency: Exponential decay over time
  • Importance: LLM-assigned significance (1-10)
  • Relevance: Embedding similarity to current context
  • Retrieval Process

  • Query formulated from current situation
  • Compute scores for all memories
  • Return top-k highest scoring memories
  • Include in agent's current context
  • Reflection Mechanism

    Triggering Reflections

    When sum of importance scores exceeds threshold:

  • Generate questions about recent memories
  • Retrieve relevant memories for each question
  • Generate insight answering the question
  • Store insight as high-level memory
  • Example Reflection

    Observations:

  • "I had coffee with Sarah this morning"
  • "Sarah mentioned she's stressed about work"
  • "I noticed Sarah seemed tired"
  • Reflection:

  • "Sarah is going through a difficult time at work and could use support"
  • Simulation Results

    Emergent Behaviors

    In a simulated town environment:

  • Information diffusion through conversations
  • Relationship formation and evolution
  • Coordinated group activities (party planning)
  • Consistent personality expression
  • Evaluation

  • Human evaluators rated agent behavior
  • Compared against ablations (no memory, no reflection, no planning)
  • Full architecture significantly more believable
  • Implications for Agent Memory

    Design Lessons

  • Importance scoring helps prioritize memories
  • Reflection enables learning from experience
  • Planning provides coherent long-term behavior
  • All components necessary for believability
  • Memory Stream Properties

  • Append-only is sufficient
  • Natural language representation flexible
  • Embeddings enable semantic retrieval
  • Hierarchical abstraction through reflection
  • Limitations

  • Compute intensive (many LLM calls)
  • Simulation is small scale
  • Long-term coherence not fully tested
  • Memory can grow unbounded
  • Citation

    @inproceedings{park2023generative,

    title={Generative Agents: Interactive Simulacra of Human Behavior},

    author={Park, Joon Sung and O'Brien, Joseph C and Cai, Carrie J and Morris, Meredith Ringel and Liang, Percy and Bernstein, Michael S},

    booktitle={Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology},

    year={2023}

    }