Skip to content

PSON5

PSON5 is an open-source personalization infrastructure that treats user state as a first-class, structured, auditable artifact — not as free-form notes appended to a prompt.

Core trick

Splits user state into observed, inferred, and simulated layers enforced by TypeScript types, and gives agents consent-scoped views that hide raw profiles.

Tags

Description

PSON5 is an open-source personalization infrastructure that treats user state as a first-class, structured, auditable artifact — not as free-form notes appended to a prompt. Every profile splits across three strictly-separated layers: observed (what the user said), inferred (what the model deduced, carrying confidence + evidence refs), and simulated (what the engine predicts in a specific scenario). The separation is enforced in the TypeScript type system and in the simulation engine, not just documented. Fifteen MIT-licensed packages under @pson5/* ship an SDK, an Ink/React interactive CLI, a hand-rolled HTTP API with MCP (stdio + HTTP) transports, Neo4j and Postgres storage adapters, a rules-first modeling engine, a simulation engine that emits reasoning + caveats alongside every prediction, and an agent-context projection layer that gives agents consent-scoped, redaction-aware views without ever exposing the raw profile. Two reference apps demo it end-to-end: 1. chat-app — a Claude-powered chatbot that talks to a PSON5-backed profile via 8 agent tools. We shipped a new pson_observe_fact primitive in this hackathon to bridge the gap between open conversation (free-form facts the user volunteers mid-chat) and the structured observed layer, which previously required pre-registered questions for every save. 2. researcher-agent — a Claude Managed Agent that assumes the identity of a fictional Anthropic alignment researcher (Dr. Amelia Kwan, explicitly a composite), seeds a persistent persona profile with 20 structured facts on first contact, and uses pson_simulate to reason about model-building decisions in first person. PSON5's engines run on the host; the agent sees only typed custom tools. The problem PSON5 solves: today's agent memory is opaque, non-portable, and silently collapses evidence with inference. You cannot tell which entries in an agent's memory are things the user actually said vs things the model guessed vs things the simulator predicted, and downstream agents inherit the ambiguity. PSON5 makes that contract auditable by design.
fredabila/pson5★ 40 forksTypeScriptMITCreated Apr 22, 2026 · last push Apr 25, 2026

README excerpt

<!-- PSON5 — personalization your agents can actually reason about. -->

<p align="center">
  <img src="docs/assets/pson5-hero.svg" alt="PSON5 — personalization your agents can actually reason about" width="900" />
</p>

<p align="center">
  <a href="https://github.com/fredabila/pson5/actions"><img alt="build" src="https://img.shields.io/badge/ci-passing-b6ff5c?style=flat-square&labelColor=0e0f12" /></a>
  <a href="https://github.com/fredabila/pson5/blob/main/LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-f5f4ef?style=flat-square&labelColor=0e0f12" /></a>
  <a href="https://github.com/fredabila/pson5/blob/main/CHANGELOG.md"><img alt="version" src="https://img.shields.io/badge/version-0.2.0-b6ff5c?style=flat-square&labelColor=0e0f12" /></a>
  <img alt="node" src="https://img.shields.io/badge/node-20%2B-f5f4ef?style=flat-square&labelColor=0e0f12" />
  <img alt="typescript" src="https://img.shields.io/badge/typescript-strict-8ec7ff?style=flat-square&labelColor=0e0f12" />
  <img alt="providers" src="https://img.shields.io/badge/providers-openai%20%C2%B7%20anthropic%20%C2%B7%20openai--compatible-b6ff5c?style=flat-square&labelColor=0e0f12" />
</p>

<p align="center">
  <strong>PSON5 is an open standard and infrastructure for <em>cognitive</em> user profiles.</strong><br/>
  It keeps what the user said, what the model inferred, and what the simulator predicts as three separate things —<br/>
  so agents can plan, explain, and fail gracefully on top of them.

Team