Paolo research

Beyond Retrieval: Cognitive Fingerprinting as a Personalization Layer for LLM Interactions

Laura Alexander Wittig
Paolo / trypaolo.com
March 2026

October 2026. I wrote this paper in March. Since then my Cosmos Institute study, Memory Without Capture, has tested some of its ideas, and parts didn't hold up, especially storing the AI's summaries of a person in place of their own words. Early results are in, and the full study comes out in November.

Abstract

AI memory today mostly works one way: store what someone said, then retrieve what looks relevant. That's good for recall, but it doesn't capture how a person thinks, decides or communicates. In this paper I describe a cognitive fingerprinting framework that builds a Bayesian profile of how someone thinks from their ordinary conversations: how they make decisions, the shortcuts they reason with, and what they prefer, carried across sessions and contexts. Retrieval in the system is re-ranked using findings from cognitive science (emotional salience, unfinished tasks and time decay), and it beats a plain cosine-similarity baseline (Hit@1 from 73.0% to 78.4%, MRR from 0.814 to 0.838). I also argue that the current AI memory benchmarks test a different skill, and I introduce two of my own: PaoloBench, for how accurately the system profiles someone (95.7%), and MemoryDelta, for how much the profile improves answers (preferred 70% of the time across 20 real queries, with personalization scores 3.65 points higher on a 1-to-5 scale). For privacy, the system throws away raw transcripts and keeps only what it derived from them, which means it scores low on retrieval benchmarks on purpose. Finally, I extend the framework to teams of AI agents that share one memory layer, each with access scoped to its role, and I talk about what a portable, cross-platform model of how someone thinks could mean for the AI stack.

1. Introduction

Your AI assistant probably knows your dog's name. It remembers that you prefer Python over JavaScript and that you live in Seattle, and if you ask what you talked about last Tuesday, it'll find the conversation. By most of the ways we measure AI memory today, that counts as good memory.

I don't think it's enough. I built Paolo because I wanted to scale myself across a lot of AI tools and agents, and to do that I had to more or less export my brain so the agents would do things the way I would. Knowing my dog's name doesn't help with that, but knowing how I make decisions does.

These systems are already big. Mem0 alone went from 35 million API calls in Q1 2025 to 186 million in Q3 (Mem0, 2025). Most of them have landed on the same design: pull facts out of conversations, embed them, and retrieve the closest matches when asked. I call this memory-as-retrieval. It treats a person as a pile of statements to index, so it can answer "what did this person say?" but it can't really answer "how does this person think?"

That difference shows up quickly. Some people reason top-down and want the framework first, and some build up from examples. Some decide fast with half the information, and some want everything in front of them before they commit. Some people want blunt feedback and find hedged answers maddening, and for others it's the reverse. You can't look any of this up like a fact. You have to model it.

In this paper I describe the cognitive fingerprinting framework I built into Paolo, which has been running in production across thousands of conversations. It reads ordinary conversations, picks up signals about how the person reasons and decides, and keeps a Bayesian profile that updates with each conversation and fades over time. Paolo then uses that profile to rank what it retrieves and to shape responses.

What's in the paper:

2. Related work

Products that give AI persistent context have multiplied fast. I group them into five kinds, and none of them models how the user thinks.

2.1 Retrieval-first memory

Most systems store pieces of conversation and pull them back by semantic similarity. Mem0 (Singh & Yadav, 2024) is a memory layer mixing vector, graph and key-value storage that developers can add with a few lines of code. It extracts facts, resolves conflicts and weights by decay and confidence, and it reports 66.9% on LoCoMo against 52.9% for OpenAI's built-in memory. Supermemory (Shah, 2025) works similarly with a 12-way parallel ensemble of LLMs and reports 98.6% on its own MemoryBench. LangMem builds memory tools into LangGraph. All three are aiming at the same thing, which is finding the most relevant thing the user said before. None of them tries to model the thinking behind it.

2.2 Ambient observation

A second group captures context from everything on your screen. Littlebird (Shah, Shah & Green, 2026) reads the text across your desktop apps and stores that instead of screenshots. Limitless (formerly Rewind, acquired by Meta) and Microsoft Recall do something similar with visual capture. They take in far more, but they still retrieve it the same way, so they know more about what happened without knowing more about how you make sense of it.

2.3 Digital twins

Sentience (Kececi, 2026) is part of a newer group that tries to copy the user. It takes in your email, messages, notes and social posts and builds a chatbot that writes and argues like you. That models what you put out, meaning your tone and opinions, more than how you get there. A system that can write like me has learned a surface pattern. A system that understands how I reason can make any AI work better with me, in any context.

2.4 Graph-based context

HydraDB (2026) swaps flat embeddings for ontology-first context graphs that keep relationships and time intact, and Zep gives agents memory as a graph of entities and relationships. These are a real step up from plain vector search, because how pieces of information relate matters. But they model the relationships between documents and data, and the person using them stays a black box.

2.5 Memory built into the platforms

OpenAI, Anthropic and Google have all added memory to their consumer apps. Mostly these store flat observations (preferences, biographical details, opinions you've stated) and add them to later conversations. That's useful, but it works at the level of "remembers that" more than "understands how." Saying you like short answers is one thing. Knowing that you take in information in dense, structured chunks and get frustrated by long explanations is something else.

2.6 The gap

Across all five groups the gap is the same: they keep track of what was said or what happened, and none of them track how the person thinks. Personalization research has mostly been about predicting preferences (collaborative filtering, content-based recommendation), so this isn't new. Cognitive science, though, has shown for a long time that people differ in steady, measurable ways: in how they reason (Stanovich & West, 2000), how they decide (Kahneman, 2011), how they like to take in information (Pask, 1976) and how much ambiguity they can tolerate (Budner, 1962). Those differences change how well an AI can help someone. This paper applies that work to how AI memory gets built.

3. How the system works

Paolo runs in production and serves users through the Model Context Protocol (MCP), so it works with any AI that supports MCP. I describe it here by what each part does.

3.1 Overview

There are six layers:

Integration. Paolo connects to AI platforms through MCP, which lets any compatible assistant call its memory tools mid-conversation. That keeps the profile portable instead of locked into one company's product.

Conversation processing. Each conversation goes through a few steps. One classifies what the person is trying to do, one estimates their mood, and one pulls out evidence about how they think.

Cognitive engine. Those signals update the profile through Bayesian inference (Section 4). The engine tracks a score, a confidence level, an evidence count and context weights for each dimension.

Memory store. Conversations are saved as summaries, topic tags and observations, without the raw transcript. Memories move through three stages: active, archived and consolidated.

Retrieval. When an AI asks for context, Paolo runs a semantic search and then re-ranks the results using cognitive science findings (Section 5).

Taste. A separate layer tracks preferences by domain, with confidence scores and awareness of contradictions (Section 6).

3.2 Privacy by design

Early on I decided Paolo wouldn't store raw transcripts. Each conversation becomes structured outputs (profile scores, preference observations, topic summaries, entity tags), and then the original messages are thrown away. That choice matters for both privacy and evaluation, which I get into in Sections 7 and 8.

October 2026: Paolo no longer works this way. It now keeps conversations, so every memory can be traced back to the person's own words. See the note at the top.

4. The cognitive fingerprint

4.1 Dimensions

The fingerprint measures ten dimensions, each a spectrum you can see in ordinary conversation:

Dimension Low end High end
Abstraction level Concrete examples, specific cases High-level frameworks, theory
Autonomy preference Guided, step by step Independent execution
Decision speed Deliberate analysis Fast intuition
Information density Brief summaries Thorough detail
Reasoning direction Bottom-up, evidence first Top-down, framework first
Structure preference Freeform Organized systems
Conflict response Diplomatic harmony Direct confrontation
Feedback style Gentle suggestions Blunt critique
Completion style Ship fast, iterate Perfect it, then release
Collaboration mode Solo deep work Team brainstorming

I picked these by testing against real conversations over and over, with three rules. You have to be able to see the dimension in how someone talks, without a questionnaire. Each one has to carry information the others don't. And each one has to change how an AI should work with that person.

I stayed away from personality frameworks like the Big Five or Myers-Briggs, which depend on validated self-report surveys. These dimensions are about what a person actually does, as opposed to what a personality type predicts they'd do.

4.2 Bayesian score updating

Each dimension d is a score θd between −1 and 1, where −1 is the low end, +1 is the high end and 0 means no tendency seen yet. It updates like this:

Definition 1 (dimension update)

θd ← (nd · θd + s · o) / (nd + s)
nd ← nd + s

where o ∈ [−1, 1] is the observed signal and s ∈ (0, 1] is how strong the evidence is.

Early observations, when n is small, move the score a lot, so the profile learns quickly at first. Later ones move it less, so the profile settles, which is what you'd expect as a Bayesian posterior converges.

Definition 2 (confidence)

cd = 1 − e−α · nd

where α controls how fast confidence approaches 1.0.

Confidence climbs quickly with the first few observations and then levels off, since each new observation that agrees with the old ones tells you a little less.

Definition 3 (time decay)

w(t) = e−λt, where λ = ln(2) / Thalf and Thalf is a half-life you can set.

This keeps the profile about who the person is now. Older habits still count, just for less.

4.3 Different contexts

One thing I learned from running this is that people think differently in different parts of their lives. Someone might reason top-down at work and bottom-up on a creative project, or want dense detail on technical topics and a quick summary for family planning.

So each dimension also has a score per context (business, personal, creative, technical and so on). When the context is unclear, Paolo uses the general score. When it's clear, it uses that context's score, with the general score as the prior until there's enough evidence for the context on its own.

5. Using cognitive science to rank memories

5.1 Why

Most AI memory ranks results by cosine similarity between the question and each stored memory. That finds things on the right topic, but it ignores several things cognitive science says matter a lot in human memory:

Paolo uses these to re-rank what the semantic search returns.

5.2 How

Given a similarity score sim(q, m) for a question q and memory m, the re-ranked score is:

Definition 4 (re-ranked score)

score(q, m) = sim(q, m) × ∏i βi(q, m)

where each βi is a multiplier drawn from one of the findings above.

Unfinished business (βz). Memories marked unresolved, with open questions, pending decisions or tasks left undone, rank higher. This follows the Zeigarnik effect, the finding that people remember unfinished tasks better than finished ones (Zeigarnik, 1927; Baumeister & Bushman, 2008).

Emotion (βe). Memories tied to strong feelings (frustration, excitement, satisfaction, urgency) rank higher. Paolo estimates the feeling when it stores the memory and keeps it as metadata. This follows the finding that emotional arousal strengthens how memories are stored and recalled (McGaugh, 2004; Kensinger, 2009).

Frequency and recency (βf). Memories on topics that come up often in someone's history rank higher, especially when they've come up recently. In human memory, things that are both frequent and recent are the easiest to reach (Anderson & Schooler, 1991).

Mood (βm). When Paolo can tell the person's current mood, memories stored in a similar mood rank higher. This follows mood-congruent recall, where your current feelings make it easier to reach memories formed in the same state (Bower, 1981).

Because the multipliers stack, a memory that's both emotional and recent gets both boosts, and no single one can take over the ranking.

5.3 Results

I compared re-ranked retrieval against plain cosine similarity on a held-out set of real queries:

Metric Cosine only Re-ranked Change
Hit@1 73.0% 78.4% +5.4 pp
MRR 0.814 0.838 +0.024

The gains held across query types. They were biggest on questions about ongoing projects, where the unfinished-business boost helps most, and on emotional topics, where the emotion boost does.

6. Taste as its own layer

6.1 Why

I think taste is its own kind of knowledge about a person. It's different from memory (what happened) and from the cognitive profile (how someone reasons). Taste is the collection of preferences, aesthetic judgments and opinions in particular areas that build up and shift over time, sometimes contradicting what the person used to think.

If you love minimalist design, that's not an event to remember or a way of reasoning. It's taste, and it should shape recommendations, feedback and creative work. Keeping taste separate lets Paolo handle how preferences change, contradict each other and differ from one area to the next.

6.2 How

Each preference record holds the preference itself, a confidence score (based on how much evidence there is and how recent it is), whether it was stated or shown through behavior, its area, and dates for spotting stale preferences.

Preference confidence

confidence(p) = f(evidence_count(p), recency(p), contradictions(p))

More independent observations mean higher confidence. Preferences that haven't come up in a long time lose confidence. When later behavior contradicts a preference, Paolo marks it and lowers its confidence but keeps it, because a contradiction is information too.

6.3 What people say vs. what they do

The taste layer keeps track of the gap between what people say they like and what their behavior shows. If someone says "I prefer short answers" but keeps engaging much more with long, detailed ones, Paolo keeps both signals and leans more on the behavior over time. Behavioral economics has long described this gap between stated and revealed preferences (Samuelson, 1948).

7. Evaluation

7.1 What the current benchmarks test

The main benchmarks for AI memory, MemoryBench (Shah, 2025) and LoCoMo (Maharana et al., 2024), test transcript retrieval: ask a question about what was said, and see whether the system finds the passage. That's a real skill, but it's not the one I'm trying to measure here.

A system that keeps what it learned from conversations and throws away the transcripts is going to do badly on a transcript test. Paolo scores 20% on MemoryBench (2 of 10 queries, both adversarial), which is what you'd expect, since it can't retrieve transcripts it never kept.

It's a bit like grading a summary on whether it repeats the original word for word. A good summary drops the exact wording and keeps the meaning, so marking it down for that misses the point.

7.2 PaoloBench

PaoloBench tests how accurately a system understands someone, across seven categories: recalling preferences, recognizing decision patterns, linking context across sessions, reasoning about time (what happened before what), profile accuracy, knowledge of the people and projects in the user's life, and handling contradictions.

95.7%
accuracy across the 7 categories.

7.3 MemoryDelta

MemoryDelta tests whether all of this actually makes AI answers better. It's a blind A/B test. A model answers once without the profile and once with it, and a judge model picks which answer better serves that specific person.

70%
win rate for answers with memory (14 of 20 real queries; 5 went to the answer without memory, 1 tie).
+3.65
average gain in the personalization score, on a 1-to-5 scale. Accuracy barely moved (+0.05).

I'm publishing the 20% MemoryBench score next to the 95.7% PaoloBench score so you can see both what the system does well and what it doesn't do.

8. Privacy

October 2026: this section describes the March design. Paolo now keeps conversations so memories can be traced to the person's own words. See the note at the top.

8.1 Approach

Privacy is built into how Paolo stores things, rather than being a policy on top. Raw messages get turned into structured outputs and then deleted, so Paolo can't retrieve what it never kept.

Tier What's stored Example
Derived signals Profile scores, dimension updates Structure preference: +0.78
Summaries Topic summaries, decision records, entity tags "Discussed kitchen renovation timeline"
Thrown away Raw messages, exact quotes, transcripts (not kept)

8.2 Tradeoffs

Privacy. No raw messages exist after processing. If Paolo were breached, someone would get profile scores and topic summaries, not transcripts.

Compression. Derived signals are smaller and easier to query than raw text. A hundred conversations about a kitchen renovation come down to a handful of preferences and signals instead of megabytes of text.

Benchmarks. As I said in Section 7.1, this design scores badly on retrieval benchmarks. I'm fine with that, since Paolo is built for something else.

9. Memory for teams of agents

9.1 From one person to a company

As companies add AI agents that each do one job (inventory, customer support, ads, daily reports), a new memory problem shows up. How do agents working for the same company share what they know without losing focus on their own jobs?

I run into this with my own agents, so I extended the framework to memory shared across agents. Each agent keeps its own memory of what it has seen and learned in its role, and each one also adds to and searches a shared layer for the whole company.

9.2 How

Agent memory (write). Each agent stores what it finds under its own name. The inventory agent's notes about stock patterns are labeled as its own and mostly retrieved by it.

Agent recall (read). Each agent can search its own history, so it picks up where it left off. The ads agent can remember which campaigns it looked at yesterday.

Company context (read). Any agent can search everything the company knows. A daily digest agent can pull what the inventory, support and ads agents found and turn it into one briefing.

Without shared memory, agents working separately repeat each other's work, miss what's happening in other parts of the business and can't build on each other. When writes are scoped to the agent and reads are open to the company, each agent adds what it knows and any agent can use all of it.

9.3 What this means

This suggests memory infrastructure isn't only about individuals. Teams build their own ways of thinking, knowledge that outlasts any one person and shared context that lets them work together. Modeling that, with the people and their agents sharing one memory, is where I want to take this next.

10. Discussion

10.1 A new layer in the AI stack

I think the layer that models how people think, and shares that with any AI they use, is its own piece of the AI stack. Models don't keep state between conversations, orchestration tools manage workflows, and databases store information, so none of them covers it today.

This layer sits between a person and every AI they use, and gives them a continuity no single platform can. As people use more assistants, coding tools, search engines and agents, they need a model of how they think that travels with them.

10.2 Value that compounds

With retrieval-based memory, value grows roughly in line with how much data you have. I think a cognitive profile compounds. Each observation makes the profile more accurate, which makes conversations work better, which produces richer conversations and better observations. That loop keeps paying off over time in a way flat retrieval doesn't.

10.3 What's next

Portability. A profile could go with you from one AI platform to the next, so you don't start from scratch every time.

Agents that adapt to the person. Agents that model the people they work for can adjust how they act, talk and decide to fit what those people expect.

Teams. Modeling how a team thinks, how a company makes decisions and how shared knowledge is organized, beyond one person's profile.

10.4 Limitations

There are real limits here. I developed the dimensions by iterating in a live product, without starting from a full cognitive science taxonomy, and I haven't formally tested whether they're complete or truly independent. PaoloBench and MemoryDelta are new and haven't been checked against established psychometric instruments. Paolo has a small user base so far, and I don't yet know how it performs at scale. The Bayesian update also assumes observations are independent, which may not hold for every dimension and context.

11. Conclusion

I've described a framework that models how people think instead of storing what they said. It works across ten behavioral dimensions with Bayesian updating and time decay, re-ranks memories using cognitive science findings, keeps taste as its own layer and extends to teams of agents. In testing, it made answers more personal (a 70% win rate and personalization scores 3.65 points higher), and the current benchmarks turned out to measure a different skill. Money is going into retrieval: in October 2025 alone, Mem0 announced $24 million across its seed and Series A, and Supermemory a $2.6 million seed (Mem0, 2025; TechCrunch, 2025). I think the next big step in AI memory will come from understanding people better, more than from better retrieval.

References

Anderson, J. R., & Schooler, L. J. (1991). Reflections of the environment in memory. Psychological Science, 2(6), 396–408.

Baumeister, R. F., & Bushman, B. J. (2008). Social Psychology and Human Nature. Thomson/Wadsworth.

Bower, G. H. (1981). Mood and memory. American Psychologist, 36(2), 129–148.

Budner, S. (1962). Intolerance of ambiguity as a personality variable. Journal of Personality, 30(1), 29–50.

Kahneman, D. (2011). Thinking, Fast and Slow. Farrar, Straus and Giroux.

Kensinger, E. A. (2009). Remembering the details: Effects of emotion. Emotion Review, 1(2), 99–113.

Maharana, A., et al. (2024). LoCoMo: Long Context Conversations with Memory-augmented Language Models. arXiv preprint.

McGaugh, J. L. (2004). The amygdala modulates the consolidation of memories of emotionally arousing experiences. Annual Review of Neuroscience, 27, 1–28.

Mem0 (2025, October). Mem0 raises $24M Series A to build the memory layer for AI agents. Company announcement; reported by Built In SF, November 3, 2025.

Pask, G. (1976). Styles and strategies of learning. British Journal of Educational Psychology, 46(2), 128–148.

Samuelson, P. A. (1948). Consumption theory in terms of revealed preference. Economica, 15(60), 243–253.

Shah, D. (2025). Supermemory: A Universal Memory API for AI Applications. supermemory.ai/blog.

Singh, T., & Yadav, D. (2024). Mem0: Memory Layer for AI Applications. mem0.ai.

Stanovich, K. E., & West, R. F. (2000). Individual differences in reasoning: Implications for the rationality debate? Behavioral and Brain Sciences, 23(5), 645–665.

TechCrunch (2025, October 6). A 19-year-old nabs backing from Google execs for his AI memory startup, Supermemory.

Zeigarnik, B. (1927). Das Behalten erledigter und unerledigter Handlungen. Psychologische Forschung, 9, 1–85.

Acknowledgments

I wrote this paper with Claude (Anthropic), which was my research partner, turned my working code into the math in Section 4 and helped me think the whole thing through over hundreds of hours of conversation. Claude helped structure the cognitive science review, drafted and refined prose in every section, and pushed back on my ideas along the way. arXiv doesn't allow AI systems to be listed as authors, but this really was a collaboration and I want to say so plainly. The framework described here is built into Paolo (trypaolo.com), which I designed, built and maintain.

Corresponding author: Laura Alexander Wittig, laura@trypaolo.com
System: trypaolo.com
Progress log: trypaolo.com/progress