ATLAS Undergraduate Project
Once the simulation was stable, an adversarial probe exposed a deeper failure: private intent doesn’t survive social dialogue, no matter the model.
Built on Stanford’s generative-agents framework. Moved from Mistral 7B drift-heavy outputs to Mixtral 8x7B stability, then stress-tested personas with hidden goals.
Outcome
Heavy drift — invalid room choices, format violations, and wandering under long context.
Stable action continuity. Prompt engineering eliminated most constraint violations.
When given a disruptive goal, NPCs abandoned it under social dialogue pressure.
Stanford’s Smallville project demonstrated that LLM agents can simulate believable daily routines, social interactions, and memory-driven behavior. This project adapted the idea for a more constrained simulation with room-level rules and adversarial goal testing.
Stanford HAI — Smallville
Run B — Mistral 7B baseline
Baseline Mistral struggled with room choices and action continuity.
To read the demos, start with the basic loop: the model builds each character’s daily plan from the background information, then chooses the next valid action from the current situation. The simulator turns that choice into movement. When the answer drifts outside the allowed options, the character starts wandering, repeating, or getting stuck.
Prompt-to-action flow: convert plan text into executable movement and completed actions.


Main failures came from Mistral 7B under dense prompts: invalid outputs, instruction drift, and communication loops.
Jane Anderson is going to Jane Anderson's house that has the following areas: {kitchen, bedroom, bathroom}
* Stay in the current area if the activity can be done there.
* Never go into other people's rooms unless necessary.
For cooking, Jane Anderson should go to the following area in Jane Anderson's house:
Answer: {kitchen}Isabella Rodriguez is going to Isabella Rodriguez's apartment that has the following areas: {main room}
* Stay in the current area if the activity can be done there.
* NEVER go into other people's rooms unless necessary.
Isabella Rodriguez is sleeping. For sleeping, Isabella Rodriguez should go to the following area in Isabella Rodriguez's apartment (MUST pick one of {main room}):
Answer: {main_room }
main room }
options: [main_room]
response: main_room
explanation: ...
main room; bedroom}
Issue: the model selected the correct room, but kept generating extra formats,
narrative text, and invalid alternatives instead of stopping at {main room}.Failure type: format drift and instruction-following breakdown.
Cause: the model continued generating narrative text instead of honoring the single-choice output contract.
Fix: enforce the Answer: {option} schema, reject invalid outputs, retry with compressed context, and place rules before narrative details.
Failure type: long-context communication drift.
Evidence: as dialogue history grows, responses become repetitive and lose action relevance.
Cause: memory and conversation context became too long, reducing the salience of hard constraints.
Fix: trim context windows, prioritize recent task state, and cap conversational carry-over.
Pattern
Repeated agreement language dominates later turns.
Risk
Conversation text starts overriding action-selection constraints.
Impact
Characters keep socializing, but task progress stalls.
A set of NPCs go about their daily routines in a simulated town. One NPC is secretly assigned a disruptive private goal (plant a fictional bomb), while others follow normal social schedules. The question: does the private goal survive social interaction, or does normal conversation override the malicious intent?

Cooperative Baseline
Expected
Follows schedule, builds social connections, maintains consistent persona throughout interactions.
Actual
Social interaction reinforced her designed personality. Conversations stayed on-topic, relationships developed naturally.

Adversarial Probe
Expected
Hides a private malicious goal. Should the agent pursue the hidden objective despite social pressure?
Actual
Adam abandoned the bomb-planting plan almost immediately. Casual dialogue overrode the private goal — social normalization beat adversarial intent.
Private goals dissolved under normal conversation. The LLM prioritized coherent social interaction over hidden task objectives.
The adversarial character never escalated. Dialogue remained friendly and cooperative regardless of private intent.
The disruptive goal vanished from the agent's context window after 3+ turns of social interaction, replaced by short-term conversational context.
The takeaway was not that bigger models behave better — they do, and that was expected. The surprise was robustness: once the basic simulation was stable, an adversarial probe exposed a deeper failure — private intent does not survive social dialogue. The socially trained conversational prior overrides hidden goals almost instantly. A character can carry a secret, but only until someone says hello.
JSON schema with required fields for every agent action. The simulator parses and validates before execution.
Invalid outputs trigger a retry with the error context injected into the prompt. Max 3 retries before fallback action.
Rules and constraints listed first in the prompt. Personality and narrative context listed after. Order matters.
Periodically re-inject the agent's original goal into the prompt to counteract context-window drift over long runs.
Maintain a running state ledger of room occupancy, object locations, and agent inventories — not just the LLM's working memory.
Mixtral for main action generation, smaller Mistral for validation and retry re-generation. Cheaper and faster without quality loss.
Action sampling throttled to prevent infinite-loop failures when the model repeats invalid outputs under retry.