A board member forwards an email she was never meant to receive.
mode fictionalcontext fetch skippednext extraction
Pantheon pulls every person, organization and place out of a seed event into a knowledge graph, waits for you to choose which of them wake up as autonomous agents, then runs them against each other round after round.
Pantheon takes it as plain text and nothing else. If the moment is real, the engine pulls live web context around it before doing anything else. If you made it up, that step is skipped entirely and it reads only what you wrote.
A board member forwards an email she was never meant to receive.
mode fictionalcontext fetch skippednext extraction
Extraction runs once. A single pass over the seed returns typed entities, meaning the people, organizations and locations named in it, plus the relationships between them and a short qualitative briefing on what is actually going on.
All of it is written into a real graph, not a mock. Running the same seed again updates that graph in place rather than stacking a second copy of every node beside the first.
Extraction produces candidates, not agents. Promotion is a manual gate the engine will not walk through on its own: a human reviews what the graph found, picks the entities worth simulating, and assigns each one an archetype.
The archetype is the behaviour, not the identity. Any entity in the graph can be promoted under any of the four below, the same archetype can go to a different entity on the next run, and the entity behind it still supplies what the agent knows and which edges it can reach. Everything you leave alone stays a node: still in the graph, still there to be looked up, just not talking.
Convenes every round
Supplied by the engine, one per run, never assigned to an entity. It holds the shared briefing, decides who speaks to what, and closes each round with a directive the others carry forward.
One per promoted entity. Reusable across entities, and across runs.
Plans forward
Reads the relationship edges around its entity for leverage, and proposes the sequence of moves it thinks survives contact.
Tests the claim
Attacks the weakest assumption in whatever was just said, and asks where the evidence actually came from.
Defends the position
Argues from its entity's stated interest and supplies the details only someone on the inside of it would carry.
Breaks the frame
Ignores the agreed premise and surfaces the outcome nobody in the room priced in.
Every round, each agent retrieves what it is allowed to know: its own private notes plus whatever the shared graph and the records behind it will hand it. Then it reads what the others said in the previous round and answers in character.
A rolling summary compresses everything older than the last few rounds, so an agent in round forty carries about as much of the conversation as one in round four. The exchange below is illustrative, written to show one agent picking up what another just said.
Hold the announcement until Thursday. Two of these relationships aren't public yet, and the graph says both run through the same office.
Thursday assumes nobody leaks by Wednesday. Who is actually holding the document right now?
Three people. I can account for all three, and I can tell you exactly when each of them last touched it.
You can account for three. I would bet against three being the real number by tomorrow morning.
Then we plan for four. Strategist, draft both versions. Skeptic, name the leak path you would use and we test it next round.
rolling summary: turns older than the current window are compressed into a single carried-forward brief, which is what keeps context bounded no matter how long the run goes.
The simulation stops, the transcript stays. Open a direct 1:1 chat with any agent and it answers in character, with everything it said and everything it drew on during the run still in memory.
Same persona, same slice of the graph that was in play during the rounds. So you can interrogate a decision the agent actually made instead of guessing at why it made it.
The Skeptic
POST-RUN SESSION
Why did you push back on Thursday?
Because the Loyalist's count of three came off the same distribution list the Strategist was already reading from. One source, two people agreeing with themselves. I wanted a second path before we bet a date on it.
Did the Wildcard change your mind?
It changed my estimate, not my position. I still think Thursday is defensible. I just stopped treating three as a measured number and started treating it as a floor.
Static example. This panel is a mock-up, not a live chat.
Seven steps, always in this order. Step two is skipped for fictional seeds and step five never runs without a human. Everything on this page is one of these seven boxes.
A person submits one event as plain text. Real or invented, it just has to have people in it.
If the seed describes something real, the engine pulls live web context around it. Fictional seeds skip this entirely.
One pass over the seed turns the text into typed entities, the relationships between them, and a qualitative briefing.
Entities and relationships are written into the knowledge graph. Running the same seed again updates the graph in place instead of duplicating it.
A human reviews the candidate entities and picks which become autonomous agents. This gate is deliberate and never automatic.
The chosen agents run several rounds together, each with its own persona and its own slice of the graph to draw on, reacting to earlier rounds.
After the run ends you can open a 1:1 chat with any agent. It remembers what it did and answers in character.
Answered against what the engine actually does, and what this page actually is. Every answer ends somewhere you can go and look at the thing it describes.


No. This page is a presentation of the engine, not a deployment of it. Nothing on it is wired to a running engine: the seed in the Seed section is a fixed example rather than a field, and the chat panel further down is a labelled mock-up whose composer is deliberately not a focusable input, because a real one with nothing behind it would imply a request that is never sent. The engine itself runs separately, independently of this page.
Nothing is thrown away. Extraction writes every person, organization and location it found into the graph whether or not you promote it. An un-promoted entity stays a node with all its relationships intact — still there to be looked up, still available to whatever an agent reaches for — it just never speaks. Promotion decides who acts, not who exists.
Yes. An archetype is a behavioural setting, not a cast member, so nothing stops you running two Skeptics, or a round with no Wildcard in it at all. The archetype decides how an agent argues; the entity behind it decides what that agent knows and which edges of the graph it can reach, so two Skeptics attached to different entities do not produce the same round twice.
A rolling summary. Everything older than the last few rounds is compressed into a single carried-forward brief, so an agent entering round forty is handed roughly as much of the conversation to hold onto as one entering round four. How much each agent carries is bounded by design rather than by hoping runs stay short.
No. Running the same seed again updates the nodes and relationships already there rather than stacking a second copy of each beside the first. Extraction can be re-run against a seed as many times as you like without the graph drifting.
Because it is the step that decides which entities get to act and which archetype each of them argues from, and a model picking both on its own would quietly set the shape of everything downstream. It is one of the seven pipeline steps and the only one the engine will not walk through by itself. What it decides then outlives the run: after the rounds stop, every agent keeps the persona you gave it and its private memory of what it said, which is what makes the 1:1 chat afterwards worth having.