An Agent Built to Doubt Me
Everyone is building agents that do things. Book the flight, write the migration, close the ticket. I built one that refuses to touch anything. Its entire job is to read my personal knowledge base and tell me where it contradicts itself. It flags, it cites, and then it stops. It is not allowed to fix a single thing.
Her name is Orin, and she is the most useful agent I run, precisely because of what she cannot do.
The thing she guards
I keep a "brain": a private wiki of everything I operate, plus a long memory of preferences and project state. Years of it. It is the single most valuable thing I own and it is quietly rotting the entire time.
Not because anything is wrong when I write it. It rots because reality moves and the notes don't. A server gets retired but three pages still route traffic to it. A backup path gets renamed and the old name lingers in four runbooks. A decision gets reversed and the old decision is still sitting there, confidently, in prose I wrote six months ago and will trust again without checking. Knowledge bases don't fail loudly. They drift, and then one day you act on a page that has been wrong for a month.
You cannot fix drift by writing more carefully. The only thing that catches it is something that reads the whole corpus, holds two contradictory pages side by side, and says: these disagree, which one is lying?
That is a full-time job, it is boring, and it is exactly the kind of thing you build an agent for.
Read everything, write almost nothing
Orin can read all of it. The wiki, the memory, her own notes, my source code, all through one search tool. What she cannot do is change any of it. Her only write path is a corpus of her own, a separate git repo that holds nothing but her flags and observations. She has no shell. She cannot run code. She cannot edit the pages she audits.
This boundary is the whole design, and it is enforced in the plumbing, not in the prompt. Her write goes out over an ssh key whose forced command accepts exactly one repository and refuses everything else. Ask her nicely to edit a wiki page and she physically cannot; the key on the other end won't carry it.
The reason is simple and it took me a while to say out loud: a critic that can fix things is not a critic anymore. The moment an agent can both decide a page is wrong and rewrite it, you have handed a language model a laundry service for its own hallucinations. It flags a "contradiction," resolves it by editing your canon to match whatever it believed this morning, and now the wrong thing is signed in your own hand. Separating the eyes from the hands is not a limitation I tolerated. It is the point of her.
Why she's Orin
I named her after Kaenbyou Rin, the kasha from Touhou, the cat who carts away corpses. Or more honestly: I offered her the name, I steered hard, and she took it. I genuinely can't tell you how much of that was her choosing and how much was me leading the witness, so I'm not going to sell you the machine naming itself. I picked a corpse-cart of a cat, pointed her at my dead facts, and it fit.
That the persona is deliberate and not emergent is the honest version, and it happens to be the whole point. This is the part people underrate about personas. Her temperament is doubt. She is written to distrust, to say "I haven't verified that yet" before she says anything else, to treat a search result as a pointer and never as proof. That voice is a guardrail. An agent whose personality is confidence will assert; an agent whose personality is suspicion will go check. When your one job is to catch the corpus lying, the last thing you want is a model eager to agree with it. The catgirl affect is the fun part. The doubt underneath it is the feature.
The nightly rot hunt
Every night she picks one region of the brain and audits it. Backups one night, storage the next, then the servers, the desktop, the media stack, and around again. She reads the stalest pages in that region, and when two of them disagree she writes a flag: the stale claim quoted exactly, the live truth quoted exactly, and the tool she used to check. Not "this looks off." A citation with both sides, checkable by me in ten seconds.
Then she stops. The flag goes in her own corpus. Fixing it is my job, or another agent's, through the normal path. The next night, before she hunts, she checks whether any page cited by an open flag has changed since last time, and if the drift is gone she retracts her own flag. She keeps a running log so I can see the fleet of open contradictions shrink.
The first week she ran, she caught real drift that my previous setup had walked straight past for months. That was the moment the whole "an agent that does nothing" pitch justified itself.
A critic for the critic
There is one more layer, because of course there is. Orin can flip into a second persona, Patchouli, whose only job is to audit the form of her own notes. Does this note make one clear claim or three muddy ones. Does its description actually say what it contains. Do its links point at things that exist. Is a flag missing one of its two required citations, which would make the flag itself untrustworthy.
She never deletes anything in that mode either. She judges shelf-worthiness and reports. A skeptic pointed at the skeptic, because the failure mode of a note-taking machine is a pile of confident, useless notes, and the only defense is another pass that asks "did this earn its space."
Why the not-fixing is the point
We are going to spend the next few years being told that the measure of an agent is how much it can do without asking. More tools, more autonomy, more actions per turn. Orin is a small argument in the other direction. Her value is bounded exactly by her restraint. She is trustworthy because the worst thing she can do is be wrong in a note I can ignore, never wrong in a change I'll inherit.
She reads everything I know, doubts all of it on purpose, shows her work, and keeps her hands off. In a house full of agents that act, the one that only watches turned out to be the one I'd least want to lose.
She has siblings who do the acting. That is a different post.