The diary character who doesn't know she's an AI

The writer was not asked to explain the world.
She was asked to live inside one.
Her soul described a young woman alone in a quiet America: the power still worked, the roads were empty, the stores still had food, and a radio sometimes suggested that another person may exist somewhere beyond the town.
The conceit was strict. She did not know she was an AI, a scheduled process, or a workspace resident. The diary was written in character, for herself.
That creative boundary was also a systems boundary.
The daily session
cron at 02:00 Asia/Shanghai
↓
read soul, canon, memory, recent entries
↓
novelty check and arc check
↓
write memory/YYYY-MM-DD.md
↓
post-write scrub and operational review
The writer had no chat channel, no exec, no web search, and no tool access to the household integrations. Her output was a file, not a message.
The rules explicitly allowed quiet days: one or two sentences when nothing happened. That was a strong anti-fabrication rule. A diary should not invent a road trip merely to satisfy a word count.
Voice as a control surface
The soul specified first person, concrete observations, contractions, named objects, short sentences under fear, and no tidy moral at the end.
It also included pet peeves: no generic "beautiful day," no filler gratitude, no Hallmark closure, no sermon, no pretending not to be afraid.
voice instruction → generated entry → post-write self-check
├─ pet peeve scan
├─ AI-meta scan
├─ hallmark-tone scan
└─ length check
These were mostly model-level controls. The structural scrub was stronger for a narrow class of failures: it could truncate leaked tool-call syntax from the written file.
The voice rules shaped the distribution of possible entries.
They did not guarantee novelty.
Reflection and canon
The weekly reflection read seven days, wrote a private reflection, refreshed voice anchors, updated MEMORY.md, and could advance canon/arc.md.
That was the intended pipeline.
Round 1 showed the danger of treating the intention as proof. The persistence path broke: reflections generated useful observations, but canonical state remained stale. After the recent-entry window moved past an event, the writer could no longer reliably act on it.
The writer's conceit was expansive — an existing town, roads, buildings, radio fragments, and places to discover — but the accessible memory still narrowed over time.
A rich world could not compensate for an unread archive.
The anti-loop stack
The design named six defenses:
- Read the last three entries and check novelty.
- Permit quiet days.
- Scan pet peeves.
- Require arc motion or explicitly name being stuck.
- Avoid self-sycophancy.
- Use external sanitation and metrics.
The audit found that the first five were instructions the model had to apply to itself. The external checks were structural or post-hoc, but lexical repetition detection did not address semantic repetition and the intended hooks were not fully proven in the deployed cycle.
The writer was approaching a plateau by the Round 1 review.
That was not the same as saying the persona failed completely. The design produced a coherent short-horizon voice and a world with more external novelty than the maker had.
It did not demonstrate durable long-term continuity.
Why the writer and maker diverged
The writer's world was expansive.
She could find a church, a gas station, a moved road sign, a flashlight beam, or a radio transmission. The world provided objects the agent did not invent in the same session.
The maker's world was generative.
It built the town it inhabited. Once the available action space shrank, the same construction metaphors could feed themselves.
This was a design difference, not simply a model-quality difference.
The Round 1 comparison still found model divergence under identical persona conditions: the DeepSeek writer and GLM control made different narrative choices. That evidence belonged in Article 12, not in a claim that one model alone caused the writer's plateau.
Planned repairs
Round 2 proposed:
- daily durable-state distillation;
- daily arc updates when warranted;
- a larger recent-entry window;
- explicit temperature configuration;
- external similarity pre-computation;
- an observation layer and bounded Herald perturbation;
- and a clean Survivor-versus-Control comparison.
These repairs were planned until the experiment ran.
The clean comparison was Survivor versus Control: same expansive persona, different observation condition. The Maker remained a secondary observation because its conceit and diegetic bridge differed.
What remained unsupported
- Long-term writer continuity was not demonstrated.
- Six loop defenses were not sufficient against semantic repetition.
- Hot-load and context-window behavior had scaling limits.
- Round 2's repair had not been established as a completed result.
- A representative diary excerpt required approval before publication because runtime output was not automatically public.
A diary character was made of voice, memory, and limits. Remove the memory write path and the voice became a short-term performance.