Research notebook · local agents · August 2026

What a Local Model Does in MazeBench

Cédric Caruzzo Qwen3.8-27B · UD-IQ4_XS Mac Mini M4 Pro · 24 GB

I started by trying to run MazeBench locally. Then I wanted to inspect the whole loop: what the agent saw, why it chose an action, and how the environment's response changed its next decision.

I built a local Control Center that launches trials, archives interactions, replays movement in the official 3D engine, tracks exploration, and shows reasoning beside each action. Explicit context compaction keeps long runs within an 81,920-token window.

MazeBench Control Center showing a completed Qwen run, exploration charts, room coverage, and the combined reasoning and action stream
The Control Center on the completed JSON run. The model reached two rooms in 256 actions. The reasoning and movement stream at the bottom is the part I kept coming back to.
1,021recorded action attempts
11archived Qwen runs
91successful compactions
2completed runs

A necessary caveat: this is an exploratory research notebook, not a leaderboard result. I changed representation, temperature, reasoning budget, prompts, and memory while building the harness. Comparisons below are descriptive. They tell me what to test next, not what has already been proven.

The First Failure Was Belief Revision

In the hidden-symbol ASCII condition, the model had to infer the meaning of random characters from interaction. Early in one run, it saw a block of ? symbols and made a plausible guess: perhaps those were gems.

The initial hypothesis was reasonable. The problem was how long it survived contradictory evidence.

“Maybe the ? tiles are not gems at all. Maybe they’re just a visual element. The actual gems might be in other rooms or levels.” Model reasoning, turn 88

The agent repeatedly expressed the same doubt, announced a “completely different approach,” and returned to the same narrow movement pattern. From turns 120 to 132, much of its reasoning repeated while the action remained left.

Interactive trace microscope

Reasoning beside movement

ASCII · HxI · 136 turns
movement selected turn death
TURN 80up
first doubtrepeated loop

Saying “my hypothesis may be wrong” did not reliably change the policy. Verbal self-correction and behavioral correction were separate.

HYPOTHESISThe ? block may contain gems.
ACTIONApproach it, probe it, and try another side.
RESULTNo gem, no passage, and no useful state change.
NARRATIONQuestion the idea, then behave as if it still organizes the world.

Representation Changed the Run

The ASCII map is exact but dense, and the agent must infer its symbols. MazeBench also provides a JSON observation mode with typed objects and coordinates. I added that mode to the Control Center so both representations could be audited through the same action interface.

On the first full corrected JSON run, Qwen crossed from room HxI into HxH at action 67. This was the first time one of my local runs discovered a new room without intervention. The new room immediately exposed an explicitly typed gem at coordinate [1,3,1].

It did not collect the gem. The run ended after 256 actions with zero gems and 17 deaths, eventually circling a familiar corridor. Better state encoding coincided with more exploration but did not solve planning or recovery.

Descriptive comparison

Unique positions discovered over time

same model · different conditions

The vertical green marker is the JSON run’s first room transition at action 67. Compaction boundaries are shown as short ticks along the top. Different settings make this a hypothesis-generating comparison, not an estimate of a JSON treatment effect.

RunObservationSettingsOutcome
20260825-103937ASCII, hidden symbolstemperature 0.7, 1,024 reasoning tokens, generic compaction136 actions, 1 room, 55 unique room positions
20260827-192543JSON, literal namestemperature 0, 2,048 reasoning tokens, continuation capsule256 actions, 2 rooms, 92 unique room positions

Memory Can Preserve Mistakes

Long-horizon agents need memory, but what the memory preserves matters just as much.

A compaction system has to decide what survives. If it preserves a mistaken object interpretation, a stale coordinate map, or an unproductive plan with high confidence, it gives the mistake a longer life. The summary becomes part of the next context, and the model can treat that compacted text as established history.

The JSON run used 31 continuation capsules, usually one every eight or nine calls. This kept a 256-action experiment alive inside the available context window. It also made a second problem visible: after action 144, the unique-position curve is almost flat for a long stretch despite continued reasoning and repeated compaction.

The useful question is not only how much the agent remembers, but what the memory makes easier to revise. Observations and uncertainty should remain separate, and failed transitions should stay evidence rather than become facts.

What I think is happening

Across these runs, four behaviors stand out:

I expected long-term memory to be the main problem. These traces point to a more basic one: updating from consequences. When an action predicts movement and the player does not move, the prose changes more readily than the policy.

Long-horizon failure may begin well before the context window fills. It begins when the agent stops treating the environment’s answer as evidence.

What this does not show

Eleven exploratory runs are enough to find behaviors worth studying. They are not enough to rank models or isolate causes. The best JSON run also had a lower temperature, a larger reasoning budget, a corrected prompt contract, and a different memory system. Any of those could matter.

The harness is also a hosted, one-command adapter around the official MazeBench environment. It is not the benchmark’s native coding-agent route with shell and tools. I prefer making that boundary explicit because “same maze” does not mean “same agent condition.”

The Next Experiment

The next step is a controlled diagnostic built around one question:

How do language-model agents detect and recover from failed state transitions, and how do representation and memory affect that belief revision?

That suggests shorter paired experiments:

I would also test more models before adding more machinery. If several models fail at the same transition, the environment or representation may be the culprit. If only the local 27B model collapses, that is evidence for a capability limit. If a small prompt nudge fixes it, then the failure is closer to elicitation. Those are different research stories.

The Control Center is becoming its own open-source project. It is useful beyond this specific Qwen experiment because it makes the whole agent loop inspectable: observation, reasoning, action, environment result, memory event, and replay.

You can follow the code in mazebench-control-center. The current post is a snapshot of a research process, including the parts that failed. That is exactly why the traces are useful.