{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/generative-agents-interactive-simulacra-of","title":"Generative Agents: Interactive Simulacra of Human Behavior","arxiv_id":"2304.03442","date":"2023-04-07","proceeding":null,"authors":["Joon Sung Park","Joseph C. O'Brien","Carrie J. Cai","Meredith Ringel Morris","Percy Liang","Michael S. Bernstein"],"abstract":"Believable proxies of human behavior can empower interactive applications ranging from immersive environments to rehearsal spaces for interpersonal communication to prototyping tools. In this paper, we introduce generative agents--computational software agents that simulate believable human behavior. Generative agents wake up, cook breakfast, and head to work; artists paint, while authors write; they form opinions, notice each other, and initiate conversations; they remember and reflect on days past as they plan the next day. To enable generative agents, we describe an architecture that extends a large language model to store a complete record of the agent's experiences using natural language, synthesize those memories over time into higher-level reflections, and retrieve them dynamically to plan behavior. We instantiate generative agents to populate an interactive sandbox environment inspired by The Sims, where end users can interact with a small town of twenty five agents using natural language. In an evaluation, these generative agents produce believable individual and emergent social behaviors: for example, starting with only a single user-specified notion that one agent wants to throw a Valentine's Day party, the agents autonomously spread invitations to the party over the next two days, make new acquaintances, ask each other out on dates to the party, and coordinate to show up for the party together at the right time. We demonstrate through ablation that the components of our agent architecture--observation, planning, and reflection--each contribute critically to the believability of agent behavior. By fusing large language models with computational, interactive agents, this work introduces architectural and interaction patterns for enabling believable simulations of human behavior.","url_abs":"https://arxiv.org/abs/2304.03442v2","url_pdf":"https://arxiv.org/pdf/2304.03442v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"generative-agents-interactive-simulacra-of","repo_url":"https://github.com/joonspk-research/generative_agents","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"generative-agents-interactive-simulacra-of","repo_url":"https://github.com/ZhangYiqun018/StickerConv","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"generative-agents-interactive-simulacra-of","repo_url":"https://github.com/a16z-infra/ai-town","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"generative-agents-interactive-simulacra-of","repo_url":"https://github.com/ejunprung/llm-agents","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"generative-agents-interactive-simulacra-of","repo_url":"https://github.com/jina-ai/thinkgpt","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"generative-agents-interactive-simulacra-of","repo_url":"https://github.com/litanlitudan/skyagi","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"generative-agents-interactive-simulacra-of","repo_url":"https://github.com/nickm980/smallville","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"generative-agents-interactive-simulacra-of","repo_url":"https://github.com/renmengjie7/aisimutoolkit","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"language-modelling","task_name":"Language Modelling"},{"task_slug":"large-language-model","task_name":"Large Language Model"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2304.03442","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2304.03442"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ZhangYiqun018/StickerConv","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/nickm980/smallville","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ejunprung/llm-agents","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/renmengjie7/aisimutoolkit","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/joonspk-research/generative_agents","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jina-ai/thinkgpt","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/litanlitudan/skyagi","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/a16z-infra/ai-town","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":5,"unverified":7},"by_repo_kind":{"official":{"samples":3,"ran":3,"repositories":1},"listed":{"samples":9,"ran":2,"repositories":3}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"04d3df25d420010e","entry":"create_folder_if_not_there","repo":"joonspk-research/generative_agents","repo_kind":"official","path":"environment/frontend_server/global_methods.py","file_url":"https://github.com/joonspk-research/generative_agents/blob/HEAD/environment/frontend_server/global_methods.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"04d3df25d420010e"}},{"code_sha256_prefix":"48476b17bdfd0043","entry":"read_file_to_list","repo":"joonspk-research/generative_agents","repo_kind":"official","path":"environment/frontend_server/global_methods.py","file_url":"https://github.com/joonspk-research/generative_agents/blob/HEAD/environment/frontend_server/global_methods.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"48476b17bdfd0043"}},{"code_sha256_prefix":"219bfa7864169c24","entry":"read_file_to_set","repo":"joonspk-research/generative_agents","repo_kind":"official","path":"environment/frontend_server/global_methods.py","file_url":"https://github.com/joonspk-research/generative_agents/blob/HEAD/environment/frontend_server/global_methods.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"219bfa7864169c24"}},{"code_sha256_prefix":"545ba72b86f890f5","entry":"relevance_score_fn","repo":"litanlitudan/skyagi","repo_kind":"listed","path":"skyagi/src/skyagi/simulation/simulation.py","file_url":"https://github.com/litanlitudan/skyagi/blob/HEAD/skyagi/src/skyagi/simulation/simulation.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"545ba72b86f890f5"}},{"code_sha256_prefix":"2d779390d2d954c2","entry":"verify_pinecone_token","repo":"litanlitudan/skyagi","repo_kind":"listed","path":"skyagi/src/skyagi/util.py","file_url":"https://github.com/litanlitudan/skyagi/blob/HEAD/skyagi/src/skyagi/util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2d779390d2d954c2"}},{"code_sha256_prefix":"ea817e6b698cf08e","entry":"fit_context","repo":"jina-ai/thinkgpt","repo_kind":"listed","path":"thinkgpt/helper.py","file_url":"https://github.com/jina-ai/thinkgpt/blob/HEAD/thinkgpt/helper.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ea817e6b698cf08e"}},{"code_sha256_prefix":"d52b33b77d35e4ed","entry":"format_options","repo":"jina-ai/thinkgpt","repo_kind":"listed","path":"thinkgpt/gpt_select.py","file_url":"https://github.com/jina-ai/thinkgpt/blob/HEAD/thinkgpt/gpt_select.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d52b33b77d35e4ed"}},{"code_sha256_prefix":"2793537d25115ebc","entry":"get_file_stream","repo":"renmengjie7/aisimutoolkit","repo_kind":"listed","path":"AISimuToolKit/utils/utils.py","file_url":"https://github.com/renmengjie7/aisimutoolkit/blob/HEAD/AISimuToolKit/utils/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2793537d25115ebc"}},{"code_sha256_prefix":"56a62d76a2e1fb94","entry":"get_fromat_len","repo":"renmengjie7/aisimutoolkit","repo_kind":"listed","path":"AISimuToolKit/utils/utils.py","file_url":"https://github.com/renmengjie7/aisimutoolkit/blob/HEAD/AISimuToolKit/utils/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"56a62d76a2e1fb94"}},{"code_sha256_prefix":"4c2c52a526fb9a29","entry":"get_n_tokens","repo":"jina-ai/thinkgpt","repo_kind":"listed","path":"thinkgpt/helper.py","file_url":"https://github.com/jina-ai/thinkgpt/blob/HEAD/thinkgpt/helper.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4c2c52a526fb9a29"}},{"code_sha256_prefix":"ff183b964718e88e","entry":"parse_yaml_config","repo":"renmengjie7/aisimutoolkit","repo_kind":"listed","path":"AISimuToolKit/utils/utils.py","file_url":"https://github.com/renmengjie7/aisimutoolkit/blob/HEAD/AISimuToolKit/utils/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ff183b964718e88e"}},{"code_sha256_prefix":"f1c5580780f0e534","entry":"verify_openai_","repo":"litanlitudan/skyagi","repo_kind":"listed","path":"skyagi/src/skyagi/util.py","file_url":"https://github.com/litanlitudan/skyagi/blob/HEAD/skyagi/src/skyagi/util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f1c5580780f0e534"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}