Think back to the last interaction that was genuinely meaningful to you, that made you genuinely smile after. Why?

Did it have something to do with who you were with, that the person was uniquely interesting?

We'll all spend more and more time interacting with AI. Why not make those interactions truly meaningful?


Remember when your mum used to hang your simple little drawing of your family on the fridge?

Turns out psychologists use so called projective drawing tasks to generate hypotheses about personality development.

It's rather simple, draw yourself.

We can compare what happens when children draw themselves, when current state of the art LLMs draw themselves and when our agentic personalities draw themselves.

SEE OUR ATTACHED DEMO

Pretty cool! But why? What's next? Beyond the proof-of-concept, this becomes a platform: incredibly accurately simulated populations for enterprise testing, or even super personalized agents, for example in old age meaningful connections are one of the most important health indicators, the list goes on.


There's a lot of architecting that went into this seemingly simple result.

We realised that the common denominator of deep personalities, stripped of their ideological biases, were simply individual and consistent.

How do get such a personality to emerge in an agent though?

Our model of personality uses a high dimensional latent vector of gaussians. Through the mean we can model trait "direction", through variance we can additionally model stability in trait. Isn't that awesome!

Think about people you know: some traits feel stable and unmistakable, while others are more situational, strong one day, softer the next.


We quickly realized that we need a prior.

We noticed quickly that we needed to "show" these random variables, what was possible as a truly deep personality.

Think Dostoevsky, think Kafka or Austen. They created characters so deep you can't really picture them until you've lived with them through the story.

So we scrape these stories from online sources. (Bright Data made this challenge super smooth). Then we extract individual character profiles. (Thank you NVIDIA Nemotron)

These then form our priors. How cool is that!


Given this prior we finetune them using reinforcement learning.

RL requires an environment and actions, we use LLMs to generate and adapt sandbox training environments.

In short we let an LLM think of non deterministic social situations in which our entities act, our very own little Truman Show. (Thank you again NVIDIA Nemotron)


Since we don't actually want to introduce any ideological bias, our reward function is rather simple.

It has a consistency and an individuality part.

We measure consistency by having it answer known personality tests 100 times and measuring the distances of outcomes. We measure the individuality part as the density of population count over volume in our feature space, we aim to build a population of personalities that span the entire feature space well.

We also add a random noise term, to avoid unwanted convergence issues we observed.

That's it. At test time this becomes latent-variable inference via Thompson sampling.


We all know the saying you are a mixture of the 5 "people" you spend the most time with.

If an artificial entity is one of these, it'd be foolish to not have it have a meaningful positive influence.

We've learned so much and we hope to have contributed our little part. May we all flourish

Built With

Share this project:

Updates