← All use cases
The scenario
A new engineer has thirty questions in week one and will ask maybe six of them.
The other twenty-four are the ones that feel too basic to interrupt someone
over — what does this acronym mean, who owns this service, why is there a second
staging environment.
Those are exactly the questions a document set can answer, and exactly the ones
nobody searches for because they do not know the vocabulary yet.
Step 1 — Load what already exists
No curation pass. The point of extraction is that you do not have to pre-chunk
or pre-summarise; upload what you have.
Step 2 — Answer in the new hire’s words, not yours
reason runs a multi-step loop rather than a single search, which is what lets
a vague question find a specific answer.
Step 3 — Let it learn what was missing
When the agent cannot answer, that is a gap in your documentation, and it is
worth capturing.
After a month, ask it what people keep asking about. That list is your
documentation backlog, written by the people who needed it.
Evals
- Take ten real questions from your last new starter’s Slack history.
- Ask all ten. Score how many are answered correctly from the docs alone.
- For each failure, check the receipt: was the answer not retrieved, or
retrieved and cut? Those have different fixes —
see the receipt recipe.
- Re-run after adding the missing document. The score is the thing to track.
Guardrails
An internal handbook contains things not everyone should read — salary
bands, security procedures, unreleased plans. A space is readable by everyone
it is shared with, so put restricted material in a different space rather than
relying on the question not being asked.
- Stale docs answer confidently. Memory does not know your runbook is two
reorganisations old. Date what you upload, and prefer
a correction with a reason to a silent
re-upload.
- Do not point it at a wiki dump and walk away. A large corpus of
contradictory drafts produces confident contradictions.
- Uploads are asynchronous. The first question asked thirty seconds after an
upload may legitimately find nothing.
Built from
Both are complete, runnable scripts:
document_qa.py,
memory_basics.py.