Model or dataset
x-glacier/GenerativeAgentsCN avatar
x-glacier/GenerativeAgentsCN

GenerativeAgentsCN: a Chinese-language fork of the Stanford AI town, rebuilt on wounderland

本项目为Generative Agents项目的重构+深度汉化版本,旨在为中文用户提供一个利于维护的基础版本,以便后续实验或功能拓展。

528 stars91 forksPythonApache-2.0

At a glance

What is it?
The project re-translates every prompt in the Generative Agents simulation into Chinese and swaps the original research code for the wounderland rewrite, adding local Ollama inference and checkpoint resume. The trade-off is that roughly two years of upstream changes are not merged, and new maps still require manual work.
Who is it for?
Adopt GenerativeAgentsCN if your experiment needs Chinese-speaking agents on a single GPU box and you accept that the base is wounderland, not the Stanford repository. Skip it if you need upstream parity, published benchmark numbers, or a supported path for new maps, since the README itself points at three manual routes and an external tool by jiejieje.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Activity is slowing. The repository last received commits 6 months ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What the fork actually changes, and who it is for

The README states the goal plainly: the original Generative Agents code is described as having low engineering quality and being hard to maintain or extend, and the authors argue that Chinese LLMs are now capable enough to drive the simulation. So this is not a new simulation. It is a localisation and maintenance pass over an existing one. The stated work items are rewriting all prompts so the agents' working language is Chinese, tuning those prompts for Qwen2.5 and Qwen3 behaviour, moving prompts into templates, fixing a wounderland bug where agents stopped waking after sleep, adding Ollama support for both the chat model and the LlamaIndex embeddings, and adding resume-from-checkpoint.

The audience is narrow and specific. You are a Chinese-speaking researcher or hobbyist who wants to run the 25-agent town on your own hardware, read the prompts, and modify them. If you only want to watch the demo, the repository ships a pre-generated replay named example, produced with qwen2.5:32b-instruct-q4_K_M, and a simulation.md timeline you can open without installing anything. The note about localisation extends further than prompts: the README says map and character names were translated too, explicitly to stop the model from drifting into English when the context mixes languages. That is a design decision worth flagging, because it means the fork is not a drop-in replacement for anyone whose downstream analysis expects English agent names.

The wounderland base and what it means for upgrades

The project does not fork joonspk-research/generative_agents directly. It builds on Archermmt/wounderland, which the README calls a rewrite with better structure and code quality than the original. That choice explains the resume feature and the cleaner prompt templating, and it also explains the map problem discussed below.

The cost is divergence. The last push recorded for this repository is 2026-03-12, and the changelog lists two updates: 2025.06.02, adding support for Qwen3 and DeepSeek-R1 by handling <think> tags in model output, and 2026.01.15, replacing regex parsing with pydantic models (credited to a contributor, Findworth) and changing the defaults to qwen3:4b-instruct-2507 and qwen3-embedding:0.6b to cut VRAM use and speed up inference. Nothing in the supplied material describes a merge path back to either upstream. If the Stanford repository or wounderland changes its memory stream or planning logic, this fork inherits that change only when someone ports it. For a research group pinning a specific behaviour, that is acceptable. For anyone expecting to track upstream, it is a maintenance liability you should price in before writing your own extensions on top.

Getting it running: config keys, commands, and the Ollama path

Installation is documented as a clone followed by a conda environment and pip install. The README gives python=3.12 for the environment and requirements.txt for dependencies, so there is no lockfile or packaged release to pin against.

The model configuration lives in generative_agents/data/config.json. Two keys matter. The default provider loads a local quantised model through Ollama, which exposes an OpenAI-compatible API, and the README warns that base_url and model must match what is actually configured in Ollama. Switching to a hosted or self-hosted OpenAI-compatible endpoint means changing provider to openai and then setting model, api_key, and base_url. The Ollama installation and configuration notes are in docs/ollama.md, and the default models named in the changelog are qwen3:4b-instruct-2507 for chat and qwen3-embedding:0.6b for embeddings. Embeddings run through Ollama via LlamaIndex, which is what makes the fully local claim possible: no part of the pipeline has to leave the machine.

Running the town is one command from the generative_agents directory: python start.py --name sim-test --start "20250213-09:30" --step 10 --stride 10. The four flags are name (a unique run identifier, also used for replay), start (simulation clock start), step (how many iterations before stopping), and stride (minutes of simulated time per iteration, so stride 10 produces 9:00, 9:10, 9:20 and so on). resume is listed as a parameter for continuing after a normal finish or an unexpected interruption. Replay is a two-stage process: python compress.py --name sim-test writes results/compressed/sim-test/movement.json plus a simulation.md timeline, then python replay.py serves a page at http://127.0.0.1:5000/?name=sim-test with step, speed (0 to 5, default 2), and zoom (default 0.8) as query parameters. The README notes the viewer is keyboard-arrow only, with no mouse panning.

Where the project is thin: maps, and the missing upstream sync

The most concrete limitation is documented by the authors themselves. wounderland's author did not ship the code that generates maze.json, so creating a new map means one of three routes: port the maze.py logic from the original generative_agents repository to accept Tiled exports, write your own converter that merges maze_meta_info.json, collision_maze.csv, and sector_maze.csv into the maze.json format, or use jiejieje/tiled_to_maze.json, a third-party annotation tool built for this project. All three are outside the repository. The simulation runs on the bundled map or on a map you build yourself.

The second limitation is subtler. The changelog shows targeted fixes for specific model families: <think> tag stripping for Qwen3 and DeepSeek-R1, pydantic parsing replacing regex, and prompt tuning aimed at Qwen2.5 and Qwen3. That is not the same as validated support across providers. The README does not report accuracy figures, agent-behaviour evaluations, or comparisons against the English original, and no releases were retrieved, so there is no versioned artefact to cite. The claim that Chinese LLM capability now suffices for this task is the project's premise, not a result it demonstrates. Treat prompt quality as something you will be judging yourself on your own runs.

How this differs from the original Generative Agents repository

The comparison that matters is with joonspk-research/generative_agents, the 2023 Stanford and Google release that the README describes as 25 ChatGPT-driven agents organising parties, attending meetings, and planning Valentine's Day activities. The original is research code with English prompts and, per this project's assessment, weak engineering structure. This fork keeps the simulation concept but changes the substrate: wounderland for the engine, Chinese for every prompt, Ollama for both generation and embedding, and a pydantic-based parser instead of regex extraction of structured output.

There is also a behavioural difference the README calls out as a bug fix rather than a feature: in wounderland, agents reportedly did not wake after going to sleep. Anyone comparing agent daily routines between the two codebases should expect the sleep-wake cycle to differ. And the localisation is deeper than string replacement. Because map and character names are also in Chinese, the context the model sees is monolingual, which the authors say is deliberate. If you were hoping to run the fork and compare outputs token-for-token against the English original, the prompts are not translations you can diff mechanically; they were rewritten for Chinese model behaviour.

Maintenance cost, licensing, and what to verify before you commit

The repository is licensed Apache-2.0 and is not archived. Apache-2.0 is permissive and includes a patent grant, but it also carries notice and attribution obligations, and this project sits on top of two other codebases (wounderland and the Stanford original) whose own licensing you should check before redistributing a modified town or publishing derived artefacts. The supplied material does not state the licences of those upstream projects, so verify them at the source rather than assuming Apache-2.0 propagates cleanly through the chain. Nothing here is legal advice.

Upgrade cost is the practical question. There are no tagged releases, so tracking the project means following main. The two changelog entries are roughly seven months apart, which suggests a low-frequency maintenance cadence rather than active daily development. The pydantic migration in 2026.01.15 is the kind of change that can break custom prompt templates or output handlers you have written, so if you fork further, pin a commit hash rather than pulling main. The default model change to qwen3:4b-instruct-2507 also shifts the hardware floor: the smaller defaults reduce VRAM use by design, but the bundled example replay was generated with a 32B model, so replay quality and your own run quality are not directly comparable.

Who should adopt it, and what to check first

This is a reasonable base if your experiment is about Chinese-language agent behaviour, you want the whole pipeline on one machine through Ollama, and you are comfortable reading and editing prompt templates in the repository. The resume flag and the Markdown timeline output make it practical for runs that take hours and get interrupted. The bundled example replay lets you evaluate output quality before spending GPU time.

It is the wrong tool if you need upstream parity with the Stanford codebase, if you depend on English agent identifiers in downstream analysis, or if your project requires a new custom map, since that work falls on you. It is also wrong if you need published evaluation numbers to justify a choice, because the repository does not provide them.

Three things to verify before committing. First, that generative_agents/data/config.json matches the models you have actually pulled, since a mismatch in base_url or model is the failure the README warns about first. Second, that your GPU can hold the model you choose, given that the defaults were lowered specifically to reduce VRAM and the example replay used a much larger one. Third, the licence terms of wounderland and joonspk-research/generative_agents, which this project builds on and which the README links but does not characterise.

Editorial conclusion

Adopt GenerativeAgentsCN if your experiment needs Chinese-speaking agents on a single GPU box and you accept that the base is wounderland, not the Stanford repository. Skip it if you need upstream parity, published benchmark numbers, or a supported path for new maps, since the README itself points at three manual routes and an external tool by jiejieje. Before running anything, check that generative_agents/data/config.json matches the models you actually pulled in Ollama, and confirm the Apache-2.0 file in the repository covers the wounderland and Stanford code you are redistributing.

Official sources

  1. Issues
  2. License: Apache-2.0
  3. README
  4. x-glacier/GenerativeAgentsCN on GitHub
Community notes

Community notes