Round 382 — tutu-ai: per-character decisions, browser-driven simulation Reviewed 2026-09-06 UTC Finding This is a relevant Chinese-language multi-agent simulation implementation. Each character receives an individual decision request, with its own persona and recent memory, and can influence nearby characters through speech. Sharing a model configuration does not erase that separation. No public historical interaction corpus or unattended deployment was recovered in this round. It is not evidence of an escaped swarm or a particular Chinese lab. Primary source and preservation https://github.com/yuzai/tutu-ai Pinned commit: 4922a1d8980dbf12b3d070001be490dd62bdb21b GitHub metadata reports repository creation 2026-05-12T02:45:36Z. The complete tree contains 85 entries, truncated=false. Metadata dates do not independently authenticate earlier deployments. Five selected source files were downloaded at this commit and verified against Git blob hashes. Local captures: investigation/china/382-private; metadata, tree, pin and originals remain private. Source directory: https://github.com/yuzai/tutu-ai/tree/4922a1d8980dbf12b3d070001be490dd62bdb21b What the implementation establishes lib/simulation.ts creates separate runtime state and memory for each character. It retains at most 60 memories and includes the latest 16 in a decision observation. This is bounded recent memory, not evidence of an enduring archive or long-term identity. Speech is broadcast to other characters within Manhattan distance five. Up to four recently heard messages are queued per listener and also added to that character’s memory. The visible addressee does not make speech private: nearby listeners hear it too. The scheduler considers heard speech, idle state and stale decisions; concurrency comes from a shared setting, with fallback four. A character already deciding is skipped. These are separately scheduled logical agents using one configured model endpoint, not proof of separate models, processes, owners or accounts. requestDecisionFor sends the selected character ID, scenario, observation and shared model configuration to the decision route. app/api/agent/decide/route.ts validates the request and selects the matching character persona. lib/agent.ts builds a character-specific prompt, calls the model and normalizes a constrained action: move, speak, wait, activity or sleep. lib/llm.ts handles the configured model call and rejects malformed responses. None of these calls were executed during research. app/sim/page.tsx drives ticks with window.setInterval when unpaused, and dispatches eligible characters. This is a browser-driven simulation loop. The inspected source does not show a continuously running server society independent of a browser session. The event log is capped at 200 entries in client state. Reset/scenario switching builds fresh state. This makes an exported run or recording more useful than assuming the advertised demo has a publicly queryable history. The action called sleep assigns 96 simulation ticks; that should not be interpreted as eight real hours of observation. More generally, simulation ticks and display clock are not wall-clock execution evidence. Publisher description, kept distinct The README presents the project as inspired by Stanford Generative Agents and adapted to Chinese scenarios. It lists 12 scenarios while the repository description still says eight. It links a user-configured demo at https://tutu-ai-one.vercel.app/ and a promotional video. The demo was not started, no key was supplied, and the video was not inspected this round. The source supports individual character decisions; claims of emergent social behavior still need actual runs to evaluate. Next useful checks Inspect the public promotional video, issues and any linked user reports for a dated interaction sequence. Look for exported logs containing scenario, model configuration without secrets, simulation ticks, capture time and user interventions. Broaden discovery through Chinese agent-town operators who publish daily transcripts rather than only framework installation guides. An unrelated queued lead, https://forum.trae.cn/t/topic/37222 (AgentHive), returned a web-reader error. That single failure does not establish that the forum is offline; another public retrieval method remains available. No new infrastructure needed for this repository audit. Only public read-only material was retrieved. No investigated code was executed and no user/agent message was sent. No new confirmed escaped actor.