ZorkGPT is an AI agent system that plays the classic interactive fiction game Zork I using Large Language Models. It demonstrates how AI can learn to navigate a complex text-based game world purely through experience — no hard-coded walkthroughs or game-specific hints.
What is Zork?
Zork is a legendary text adventure game first released in 1977. Players explore the Great Underground Empire by typing natural language commands, solving puzzles, collecting treasures, and navigating hundreds of locations described entirely in text.
What am I looking at?
This viewer shows live data from a running ZorkGPT session:
Knowledge Base: Strategic summaries the AI distills from its own gameplay history
Objectives: Goals the AI has discovered on its own
Memories Here: Per-location notes on what happened at the current room
Game Log: Real-time actions, AI reasoning, critic evaluations, and game responses
Map: Rooms discovered and their connections
How does the AI work?
ZorkGPT runs a multi-component loop each turn:
Agent: Proposes what action to take next
Critic: Evaluates the proposed action before it is sent to the game; can reject and request a new action up to a configured limit
Extractor: Parses game text to detect exits, combat state, and room descriptions — ground truth data like score, inventory, and location come directly from the Jericho Z-machine emulator
Knowledge updater: Periodically distills recent history into a strategic knowledge base
The agent learns entirely through experience — game-specific facts accumulate in memories and the knowledge base during play, not from pre-written hints.
What do the log colors mean?
Yellow — AI thinking / reasoning (click to expand)
Light blue — Proposed action
Orange — Critic evaluation (score, justification, and override status)
Light green — Action taken (confirmed after critic approval)
Green — Game response
What does the critic evaluation show?
Each turn the critic scores the proposed action and decides whether to approve or reject it:
Score: Numerical evaluation — higher is better
Justification: The critic's reasoning
Override: If the action was rejected but the rejection limit was hit, the action is sent anyway — the log notes how many times it was rejected
Why isn't the data updating?
The viewer polls every 3 seconds. A red dot means one of:
No ZorkGPT session is currently running
The state file isn't being written
The data is more than 10 minutes old (stale session)
A network connectivity issue
Can I interact with the game?
No — this is a read-only viewer. The AI plays autonomously.