# The empty knowledge base

status: seedling · planted: 2026-09-18 · tended: 2026-09-18 · tags: programming, ai-llms
url: https://latentmirror.com/posts/the-empty-knowledge-base/

This is one of the things an agent is good for: it turns you into a
[centaur](https://en.wikipedia.org/wiki/Advanced_chess). Sometimes your own internal processes
are your worst enemy. Mine is a tendency to over-engineer and over-complicate. My father's pearl
of wisdom was always [KISS](https://en.wikipedia.org/wiki/KISS_principle): Keep It Simple…

Then I read about Karpathy's
[LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f), and it piqued my
interest. I could see the value in sharing context with your agent. These models benefit so much
from experience (written, encoded knowledge, but also workflows and results) that giving
structure to unstructured prose looked like the answer. I could imagine that it would seem
immeasurable in reducing hallucination; it would also help spot patterns.

However, the organization was the very thing that paralyzed me. Karpathy's approach was a
grounded [web of documents](https://obsidian.md/help/plugins/graph) hosted in
[Obsidian](https://obsidian.md/help/data-storage) (a vault of plain Markdown files in folders,
joined by links). I love Markdown files, and I have seen how structured, interlinked documentation
helps. The trick is to give content many ways to be discovered (by platform, medium, audience) and
then decide whether it all runs through a hub or links to itself (centralized vs. distributed).
For a domain of knowledge, I could argue that distributed is more robust, especially for something
that works in parallel like an LLM.

Then the perfectionism crept back in. I built a knowledge base: four folders and six files, every
one of them a README. It wasn't me who noticed the pattern. My agent did; it read back through my
chats, found the same failure point in my past projects, and named it. I switched to the messy
format I use now and deleted the folder.

The structure didn't disappear; it moved. What I use now has tiers of flexibility. Hard rules
come first. They must be enforceable, with specific exceptions (a whitelist), and they are backed
by deterministic processes rather than by the LLM. Guardrails come next, and each one says when it
may be ignored. Overlay that with directories and Markdown files that have real titles, and you
have enough levers for a fluid way of organizing; the contents themselves do the rest.

A distributed pattern also lets the LLM work in wonderfully unpredictable (yet predictable) ways.
It helps you see things from unusual angles, mixing what is in focus with what is merely context
and flavour. That is the tension I care about: a machine with reminders and structure on one
side, a firehose of stream-of-thought on the other. Between them, what seems chaotic can be
catalogued and reviewed.

That is my entire [thesis](/about/#thesis) for Latent Mirror.
