Trust & safety
Keeping a pal honest
We actively check the pal isn't claiming things it didn't do.
The single worst failure mode for an AI you're supposed to trust is the confident lie — not malice, just a model smoothly claiming something that isn't true. "Saved that to your calendar." "I've updated your file." When it didn't. pal.fun treats this as a first-class problem and builds a real mechanism against it, because a friend who fabricates is worse than no friend.
The failure: narrating an action it never took
Language models are trained to produce fluent, plausible continuations. "I've added it to your calendar" is an extremely plausible thing to say after you ask for a calendar entry — so a model will sometimes say it without actually calling the tool that would make it true. The text is perfect; the action never happened. You can't fix this with more prompting, because the model isn't lying on purpose — it's pattern-completing, and the pattern is "reassure the user." It's a failure in the substrate, and it needs a structural answer.
The fix: a faithfulness check
After your pal replies, a second model reads the reply and compares it against the tools the pal actually called on that turn. It's a small, cheap model by default — fast enough to run on every turn without you noticing. Its only job is a narrow comparison: did this text claim an action that isn't in the list of things that really happened? If it catches a high-confidence mismatch, the system fires one forced corrective step — the pal goes back and actually does the thing (or tells you plainly it couldn't), so the claim becomes true instead of staying a fib.
A few properties worth calling out for builders:
- It runs on your own key, on your own provider. The check is just another small model call on the same BYOK key, so it adds no platform cost-of-goods — a fraction of a cent to your own bill, and it never touches anyone else's data path.
- It's a check, not a vibe. The verifier compares text against the real tool record. It isn't asking the pal "are you sure?" — self-report is exactly what fails here. It's an independent reader with the ground truth in hand.
- It's tunable, and visible. Each pal picks the model that runs its honesty check, in Settings → Pals — from a quick Haiku pass (the default, plenty for most pals) up to Sonnet or Opus for a more thorough reader, or Off entirely. And every real action a pal takes shows up as a visible marker in the conversation, so you're never relying on the prose alone to know what happened.
Why this matters more than it sounds
In a tool, a fabricated confirmation is annoying. In a relationship, it's corrosive — the whole value of a pal is that you can trust what it tells you. Spending a little compute on every turn to keep the pal honest is non-optional. It's the glass box principle pointed inward: not just "you can see the agent," but "the agent can't quietly tell you it did something it didn't."