Pythe

How Pythe keeps agents honest

The server checks claims against tool results, counts what it can count, marks guesses as guesses, and treats saved text as data, never as instructions.

Updated 2026-10-13

Models make things up. Pythe is built so that making things up is caught, or at least labelled.

Claims are checked against tools

  • An agent may claim only what a tool result shows. If no tool confirmed it, it did not happen.
  • The delivery verdict comes from the files, steps, approvals and answer, not the agent’s words.
  • A missing file is said first in the answer.
  • Something is marked sent only if a tool confirmed it. Queued for approval is not sent.

Counted, not believed

Numbers a definition of done asks for are counted in code. Placeholder text fails the work. See Quality controls.

No invented facts

  • Onboarding never fills in pricing, platform, stage, industry or region with a default.
  • Weekly reviews separate observations (with a source and a date) from recommendations.
  • Research with no real data is marked as degraded, never shown as research.
  • Writers use only real proof, and flag what to add. Outreach never invents facts about a person.

Saved text is data

Library items, memory and other text read back by a tool can contain anything, including instructions planted in a web page. Tools that read them return the text marked as untrusted and tell the calling agent to treat it as data. That is how the MCP tools get_library_item and list_memory behave (their results carry source: "untrusted"), and the server’s instructions tell the calling agent to treat everything from search_library the same way.

Honest limits

  • An agent that fails twice at the same thing stops and tells you what is blocked.
  • A task that reaches its budget stops and says so with the numbers.

Related

·