Grounded archive assistant
A chat assistant that answers only from the archive
An archive of a creative body of work, with a chat assistant that answers only from the record, cites what it used, and declines what the record cannot support.
How it fits together
Inputs
Curated record
Source material cleaned into structured entries, one per work, held in a content system on Postgres.
Visitor question
Asked in plain language on the public site.
Engine
Grounded assistant
A chat service that answers only from the record.
Retrieve
Pull the entries that bear on the question.
Answer from the record
The model answers only from what was retrieved and cites it.
Decline the rest
When the record does not cover a question, it says so instead of guessing.
Outputs
Cited answer
An answer that shows the entries it drew on.
Research lanes
Separate lanes gather and check new material.
Guardrails
- Limits on what it will answer, written into the build
- A recorded human decision before any change to an original
- Answers only from retrieved material
The problem
Archives hold years of material that visitors cannot search by meaning. A general chat model would fill the gaps with confident guesses, which is the wrong behavior for a historical record.
What I built
- An assistant grounded in a curated record, so each answer traces to a source it can cite.
- Clear limits on what it will not answer, written into the build instead of left to the model.
- A multi-lane research workflow that splits the gathering and checking of material into separate lanes.
- A recorded human decision before any change to an irreplaceable original.
How I built it
Retrieval over a curated record, with a model constrained to answer from the retrieved material and to say so when the record does not cover a question.
What it shows
I put limits on what an assistant is allowed to say, and I make those limits part of the build.