Session 1: User says "always escalate billing issues to a human, don't try to resolve them." pref0 extracts billing_issues: escalate_to_human, confidence 0.55.
Session 4: User flags a billing ticket the agent tried to auto-resolve. pref0 reinforces the preference. Confidence hits 0.85.
Session 7: A billing issue comes in. The agent routes it to a human without being told. No correction needed.
Now multiply that across hundreds of users. Each one teaching your agent slightly different things. pref0 maintains a structured profile per user (or team, or org) that your agent reads before every response.
The API is intentionally minimal. Two endpoints: POST /track: send conversation history after a session. pref0 extracts preferences automatically. GET /profiles/{user_id}: fetch learned preferences before the agent responds.
A few design decisions: > Explicit corrections ("don't do X") score higher than implied preferences. Stronger signal. > Preferences are hierarchical: user > team > org. New team members inherit org conventions on day one. > Confidence decays over time so stale preferences don't stick forever.
This isn't a replacement for memory. Memory stores what happened. pref0 learns what the user wants. You can run both side by side.
Works with LangChain, CrewAI, Vercel AI SDK, or raw API calls. Free tier available -> https://pref0.com/docs
Would love feedback on the approach, especially from anyone building agents with repeat users.