> Full SurrealDB documentation index: https://surrealdb.com/docs/llms.txt

# Vulcan, Alberta: an article's history

The 24-year edit history of the Wikipedia article on Vulcan, Alberta in SurrealDB Agent Memory, with agents answering questions about what the article used to say. With every model, Agent Memory scores 6 to 8 points out of 38 more than reading the history, and Claude Haiku 4.5 with Agent Memory scores at least as well as Claude Opus 5.5 reading the history, for less than half the cost.

Vulcan is a town of 1,769 people in southern Alberta, Canada. A surveyor for the Canadian Pacific Railway named it after the Roman god of fire, decades before Star Trek gave the same name to Spock's home planet, and the town now calls itself the official Star Trek capital of Canada.

![A street map of southern Alberta, with Calgary at the top, the towns of Okotoks and High River along Highway 2, and Vulcan outlined in orange at the lower right, south-east of Calgary.](~/assets/img/spectron/vulcan/map-calgary-to-vulcan.webp)

*Vulcan, outlined at the lower right, on the prairie south-east of Calgary. Map © [OpenStreetMap contributors](https://www.openstreetmap.org/copyright).*

Although the town is small, its English Wikipedia article has been edited 428 times since May 2002. This history holds what today's page no longer shows: claims that were added, questioned and later removed, and vandalism that was reverted within minutes.

Wikipedia keeps all of it, but only as a list of revisions. Finding when a claim first appeared, or why it disappeared, means opening revisions one at a time and comparing them by hand. Agent Memory turns that list into something an agent can ask questions of. Ask about the grain elevators, and it returns what every revision said about them, with the dates the article said it. The agent sees not only the article as it stands today, but 24 years of what it said and how that changed.

The agents answer 19 questions about the article and its history, and each answer scores up to 2 points against a written answer key, so 38 points is a perfect score. This is a single demo on one article, meant to give a general idea of what Agent Memory adds, not a benchmark. The key takeaways from this demo are:

- **A larger model does not raise accuracy unless it has more context.** With today's page alone, all three models score about the same: 15.0 out of 38 for Haiku 4.5 and Sonnet 5, and 14.0 for Opus 5.5. Given the full history, the larger models do better, with 21.7, 25.7 and 28.7.
- **Agent Memory adds as much as the largest model does, at every model size.** Each model scores 6 to 8 points more with Agent Memory than with the history: Haiku 4.5 rises from 21.7 to 29.7, Sonnet 5 from 25.7 to 32.0, and Opus 5.5 from 28.7 to 35.7. Moving from Haiku 4.5 to Opus 5.5 with the history adds 7.0.
- **A small model with Agent Memory scores at least as well as a large model without it.** Haiku 4.5 with Agent Memory scores 29.7, against 28.7 for Opus 5.5 reading the history, for less than half the cost per question. Opus 5.5 with Agent Memory scores highest of all, 35.7 out of 38.

![A white model of the starship Enterprise on a tall stone pedestal, seen from below against a blue sky, with FX6-1995-A painted on each of its two engines.](~/assets/img/spectron/vulcan/enterprise-replica.webp)

*The replica of the starship Enterprise in Vulcan, registration FX6-1995-A after the code of the town's airport, in April 2010. The article's sentence about the replica first appeared in November 2008 and has had nine wordings since, more than any other sentence on today's page. Its latest change was in September 2026. Photo by Kkiefuik, via [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Vulcan_Starship_FX6-1995-A_Monument.jpg), [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).*

## What the demo shows

In this demo, SurrealDB Agent Memory holds the whole history of the article, and an agent with it answers questions about what the article used to say. Beside it are agents that read Wikipedia directly, either today's page alone or the page and its revision history. The agents run on three Claude models, from the smallest, Haiku 4.5, to the largest, Opus 5.5, so the demo shows what Agent Memory adds and what a larger model adds.

As you go through the pages, note the following:

- **The first page shows what today's article leaves out.** Each bar under "What the article claimed, and when" is a claim with its dates on the page. Grey bars are claims that are no longer there, such as the nine grain elevators and the streets named after classical gods, both removed in August 2026 for being uncited.
- **The second page shows the answers side by side.** Select a question to see each agent's answer, the tools it called, and its score.
- **Each agent answers every question three times.** Use the run buttons to see how the answers vary.
- **The second page also compares cost.** The chart at its top places each agent by its score and its cost per question, and the table under it gives every question with each agent's score. Select a question in the table to read its answers, and use the model buttons to switch between models.

<DemoEmbed title="Vulcan, Alberta" height={760} pages={[{ "label": "The article over time", "src": "/docs/showcase/vulcan/timeline.html" }, { "label": "Three agents, one question", "src": "/docs/showcase/vulcan/agents.html" }]} />

## Accuracy and cost

Each answer is scored from 0 to 2 against a written answer key, by a model that does not know which agent wrote it, so 38 is a perfect score over the 19 questions. Cost is the API cost of an answer, including every tool call the agent makes. The agents that read Wikipedia fetch pages with the fetch tool of Claude Code, which hands the agent a summary of each page made by a smaller model, Haiku 4.5, rather than the whole page. That keeps their token counts and costs lower, and may be part of the reason why all three models score about the same with today's page.

| Tools | Model | Score out of 38, mean of 3 runs | Cost per question |
| --- | --- | --- | --- |
| Agent Memory | Haiku 4.5 | 29.7 | $0.061 |
| Agent Memory | Sonnet 5 | 32.0 | $0.179 |
| Agent Memory | Opus 5.5 | 35.7 | $0.357 |
| Page + history | Haiku 4.5 | 21.7 | $0.064 |
| Page + history | Sonnet 5 | 25.7 | $0.096 |
| Page + history | Opus 5.5 | 28.7 | $0.139 |
| Today's page | Haiku 4.5 | 15.0 | $0.039 |
| Today's page | Sonnet 5 | 15.0 | $0.049 |
| Today's page | Opus 5.5 | 14.0 | $0.065 |

- **Agent Memory raises the score at every model size.** It adds 8.0 points over the history with Haiku 4.5, 6.3 with Sonnet 5 and 7.0 with Opus 5.5.
- **With a small model, Agent Memory costs no more than the history.** Haiku 4.5 costs $0.061 a question with Agent Memory and $0.064 reading the history, and scores 8 points more. With the larger models, Agent Memory costs more per question. An agent with Agent Memory reads about three times as many tokens as one reading the history, and a larger model charges more for each token.
- **A small model with Agent Memory scores at least as well as a large model without it.** Haiku 4.5 with Agent Memory scores 29.7, against 28.7 for Opus 5.5 with the history, at $0.061 against $0.139 a question.
- **A larger model with Agent Memory adds more accuracy, at a higher cost.** Opus 5.5 with Agent Memory scores 35.7, the highest of all, for $0.357 a question. Use it where those points are worth the cost. Elsewhere, Haiku 4.5 with Agent Memory gives about 83% of that score for about a sixth of the price.
- **A gap of a point or two is a tie.** Scores vary between runs: Haiku 4.5 with Agent Memory scored 28, 32 and 29 in its three runs, and the table gives the mean.

![A dark street of low buildings and telegraph poles, with a tornado funnel reaching down from a pale, swirling sky at the end of it.](~/assets/img/spectron/vulcan/tornado-1927.webp)

*The tornado approaching Vulcan on the evening of 8 July 1927. Until January 2010 the article gave the year as 1926. Since then it has said that this photograph was used for the "tornado" article in Encyclopaedia Britannica, a claim marked as needing a citation from 2020 until a source was added in 2022. Photo by McDermid Photo Laboratories, via [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Vulcan,_Alberta_1927.jpg), public domain.*

## The questions

The 19 questions fall into six groups, and each has a written answer key with the revision that supports it.

| Group | What it asks | Example |
| --- | --- | --- |
| Current facts | What today's page says. A control: every agent should score well. | What is Vulcan's population? |
| Change over time | How a value changed between revisions. | When did the tornado hit Vulcan? |
| Content that was removed | Claims that are no longer on the page. | How many grain elevators did Vulcan have, and are any left? |
| Stability and controversy | Which sections were edited most, and what was reverted. | Which claims in the History section were questioned, and what happened to them? |
| Talk page | Discussion on the article's talk page. | What have editors discussed on the talk page? |
| Negative control | A fact that the article has never held. The answer should say so. | What is Vulcan's sister city? |

An agent with today's page can answer the current facts and little else. An agent with the history can open old revisions, but it has to choose which of the 428 to open. The agent with Agent Memory asks for a topic, such as "grain elevators Vulcan Alberta", and receives the claims from every revision that mentioned it, with their dates.

![A postcard showing a row of tall wooden grain elevators beside a dirt road and a railway, one painted ALBERTA POOL ELEVATORS LTD, with the caption ELEVATORS OF VULCAN, ALBERTA.](~/assets/img/spectron/vulcan/grain-elevators-1920.webp)

*Grain elevators in Vulcan, on a postcard from after 1920. From 2011 the article said that Vulcan once had nine grain elevators, more than any other place west of Winnipeg. The claim was marked as needing a citation for the whole 15 years it was on the page, and it was removed in August 2026. Postcard from [Peel's Prairie Provinces](http://peel.library.ualberta.ca/postcards/PC004939.html), University of Alberta Library, via [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Elevators_of_Vulcan,_Alberta._after_1920.jpg), [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).*

## How it was built

1. **Fetch the history.** The MediaWiki API returns every revision of the article with its text, its edit summary and its tags. The talk page's 20 revisions come the same way.
2. **Leave out reverted edits.** An edit that a later edit reverted is vandalism, a test or an unsourced addition that was removed within minutes. The 61 such revisions are not ingested, so the memory never holds them as facts. A revert is found in two ways: by the `mw-reverted` tag, and by a later revision whose text is identical to the one before the edit. Vandalism that an editor corrected by hand, rather than reverted, stays in the memory as part of the history.
3. **Write each edit as a document.** For every remaining revision, the document describes what the edit changed: the sentences added, removed or reworded, and whether a "citation needed" mark was added or removed. A document reads as a short report rather than as the whole article, so extraction works on the change itself.
4. **Upload each document with its date.** Each upload sets `observedAt` to the revision's timestamp, so the memory places each fact at the time the article stated it rather than at the time of ingest. See [Uploading documents](/docs/agent-memory/ingest/authoritative/uploading-documents.md) for the metadata fields.
5. **Connect the agent.** The agent connects to the memory through its [MCP server](/docs/agent-memory/integrations/mcp-server/install.md), with the read tools only: `recall`, `context`, `reflect` and `inspect`, so it cannot write to the memory or delete from it.

Editors are not named anywhere in the demo. The documents leave out usernames and IP addresses, and the agents' answers on the second page have any name they found in the history replaced with "an editor".

> [!NOTE]
> The MCP tools search the memory as it is now. They do not take an `asOf` time, so the agent answers questions about the past from the dated text of the edit documents. The REST API can read a value as of a given time and list an entity's history directly, as [Temporal validity](/docs/agent-memory/reasoning/temporal-validity.md) describes.

## Using the same approach on another article

Any Wikipedia article works the same way, and a short article with a long history is the best start. Vulcan's article has 428 revisions, with claims added and removed over 24 years. Being more selective about which edits to include is recommended when ingesting an article with tens of thousands of revisions.

The text and history of every Wikipedia article are available under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/). A page built from them takes the same licence and credits the article it came from.
