One assistant, a set of written rules, and a few hard limits. Everything you can see here is the real setup, including what it still gets wrong.
Each message passes through the same five layers. Only the model is swappable, and it's one setting.
Typed on the page. Length is capped, and a bot check runs before anything else.
Daily and per-chat limits, a monthly budget, and a pause if spending runs high. Each turn is counted and logged.
One graph node. It adds the written rules and the conversation so far, then calls the model. The graph's memory is stored in Postgres, so the clone remembers the chat.
Reached through OpenRouter. A fallback model takes over if the main one fails. The model can be switched in one setting.
The reply appears word by word. Each turn is logged with its cost, even if the visitor leaves mid-reply. Logs are kept for 90 days.
The rules are plain sentences in topic files, not code. The ones that matter most are also tested.
Work, AI, music, books and the desk are open. Family, politics, customers and salary are not, and it says so.
It won't confirm something about me just because a visitor says it.
It can't pass messages on or contact anyone. It points people to LinkedIn.
If something isn't in the rules, it says it doesn't know rather than filling the gap.
Requests to ignore its rules, show its instructions, or pose as me are turned down.
Three kinds of testing, each run through the same code path as the live site.
The question scores come from a separate AI judge, so they're a consistent measure, not a human review.
Cheaper models answered well enough, but they added details that weren't in the rules. For a site that speaks for me, I'd pay a little more per reply for fewer invented details. The setting can be changed, so this can be revisited.
The rules reduce this, but don't remove it. Dates and small specifics are the likeliest to slip.
Anything newer than the last update is unknown to it, so I update the rules by hand.
When a question sits between two subjects, answers can be a little general.
Simulated visitors are a useful signal. Real visitors will tell me more.
Kept for 90 days, so the clone can remember the chat.
Never stored as they are. They're hashed.
Nothing is sold or shared. No advertising trackers.