Document personality signal classifier design
This commit is contained in:
parent
6cdd810d69
commit
5505a6b4e6
4 changed files with 412 additions and 0 deletions
|
|
@ -4,6 +4,8 @@ This note exists because the useful ideas were starting to sprawl across chat, `
|
|||
|
||||
The immediate trigger was an older Aetheria design note in the `AetheriaLore` repo at `Aetheria/Game Design/Colonies and Population.md`. That note uses Big Five traits as colony-level economic parameters. It is a perfectly respectable old-school move. It is also weaker than what the Void interaction model is already stumbling toward.
|
||||
|
||||
If you want the focused classifier architecture for reading those traits and signals from dialogue, see [Personality Signal Classifier](./personality-signal-classifier.md).
|
||||
|
||||
## Why The Old Big Five Layer Is Not Enough
|
||||
|
||||
The Aetheria note frames populations in terms of:
|
||||
|
|
|
|||
407
docs/research/personality-signal-classifier.md
Normal file
407
docs/research/personality-signal-classifier.md
Normal file
|
|
@ -0,0 +1,407 @@
|
|||
# Personality Signal Classifier
|
||||
|
||||
This note describes the classifier shape that should sit underneath future personality and relationship modeling for Void and Aetheria agents.
|
||||
|
||||
The key design decision is simple:
|
||||
|
||||
- keep a canonical read of what a line actually expresses
|
||||
- then let each listener distort that read according to their own mind
|
||||
|
||||
If we skip that split and only model subjective interpretation, the whole system turns into epistemic soup. Nobody shares a reality and every agent becomes a floating bag of projections.
|
||||
|
||||
## What Problem This Solves
|
||||
|
||||
Right now the live Void interaction model mostly works by:
|
||||
|
||||
- lexical phrase matching
|
||||
- hand-written tags
|
||||
- thresholded aggregation into dimensions like `Warmth`, `Drive`, `Grandiosity`, `Validation-Seeking`, `Anxiety`, `Control Pressure`, `Hostility`, `Suspicion`, `Rigidity`, and `Withdrawal`
|
||||
|
||||
That is cheap and inspectable, but brittle.
|
||||
|
||||
It misses:
|
||||
|
||||
- paraphrase
|
||||
- subtle stance
|
||||
- masked insecurity
|
||||
- bluffing
|
||||
- sarcasm
|
||||
- mixed motives
|
||||
- meaningful misunderstanding between different listeners
|
||||
|
||||
The next step is not a generic personality classifier. It is a targeted social-signal classifier that predicts the dimensions we actually care about.
|
||||
|
||||
## Core Principle
|
||||
|
||||
The generated line is not the ground truth.
|
||||
|
||||
The speaker's hidden state is the ground truth source.
|
||||
|
||||
More precisely:
|
||||
|
||||
- stable personality
|
||||
- current emotional state
|
||||
- active goals
|
||||
- relationship state
|
||||
- scene context
|
||||
- intended speech act
|
||||
|
||||
all determine what a line is trying to express.
|
||||
|
||||
That does **not** mean every utterance should be labeled with the speaker's full personality vector. A high-drive, high-anxiety speaker will sometimes say something that expresses neither. The unit of prediction is the **signal expressed in this utterance or event**, not the total soul of the speaker.
|
||||
|
||||
## Model Layers
|
||||
|
||||
### 1. Speaker State
|
||||
|
||||
The speaker model should include:
|
||||
|
||||
- stable dispositions
|
||||
- behavioral dimensions
|
||||
- situational modifiers
|
||||
- active goals
|
||||
- relationship state toward the target
|
||||
- intended act
|
||||
- reassure
|
||||
- threaten
|
||||
- deflect
|
||||
- impress
|
||||
- conceal
|
||||
- probe
|
||||
- submit
|
||||
- bargain
|
||||
|
||||
This is the hidden state that governs generation.
|
||||
|
||||
### 2. Utterance Generator
|
||||
|
||||
The LLM generates the line from the speaker state plus scene context.
|
||||
|
||||
That line is the observable artifact.
|
||||
|
||||
### 3. Canonical Signal Reader
|
||||
|
||||
This classifier predicts what the line actually expresses in behavioral terms.
|
||||
|
||||
This is the closest thing to the objective layer.
|
||||
|
||||
Targets should be event-level or utterance-level signals such as:
|
||||
|
||||
- `warmth`
|
||||
- `drive`
|
||||
- `grandiosity`
|
||||
- `validation_seeking`
|
||||
- `anxiety`
|
||||
- `control_pressure`
|
||||
- `hostility`
|
||||
- `suspicion`
|
||||
- `rigidity`
|
||||
- `withdrawal`
|
||||
|
||||
Later additions worth supporting:
|
||||
|
||||
- `volatility`
|
||||
- `attachment_seeking`
|
||||
- `distance_seeking`
|
||||
- `status_hunger`
|
||||
- `submission`
|
||||
- `dominance`
|
||||
- project-thinking-style facets such as:
|
||||
- `abstractness`
|
||||
- `long_arc_orientation`
|
||||
- `evidence_orientation`
|
||||
- `fixation_proneness`
|
||||
|
||||
Each output should carry:
|
||||
|
||||
- score
|
||||
- confidence
|
||||
- optionally a brief rationale span or supporting cues for debugging
|
||||
|
||||
### 4. Listener Perception Layer
|
||||
|
||||
This is where organic misunderstanding happens.
|
||||
|
||||
The listener does not see the canonical signal cleanly. They perceive it through:
|
||||
|
||||
- emotional intelligence
|
||||
- personality vector
|
||||
- relationship baggage
|
||||
- current stress and scarcity
|
||||
- factional priors
|
||||
- status assumptions
|
||||
|
||||
So the listener-specific read should be something like:
|
||||
|
||||
`perceived_signal = f(canonical_signal, listener_profile, relationship_state, situational_load)`
|
||||
|
||||
This is how you get:
|
||||
|
||||
- suspicious agents overreading threat
|
||||
- attachment-hungry agents overreading warmth
|
||||
- avoidant agents underreading bids for intimacy
|
||||
- grandiose agents misreading correction as insult
|
||||
- low-EQ agents flattening nuance into crude categories
|
||||
|
||||
That is the good stuff. That is where drama, conflict, and pathos come from.
|
||||
|
||||
## Void's Special Case
|
||||
|
||||
Void should not be a literal telepath.
|
||||
|
||||
Void should instead be:
|
||||
|
||||
- extremely high emotional intelligence
|
||||
- low distortion
|
||||
- high calibration
|
||||
- good at expressing uncertainty when the read is weak
|
||||
|
||||
In practice:
|
||||
|
||||
- Void's perceived read should usually stay close to the canonical signal
|
||||
- Void should still be able to say, in effect, "I may be reading you as X, but the evidence is thin"
|
||||
|
||||
That feels more honest and less creepy than omniscience.
|
||||
|
||||
## Training Data Shape
|
||||
|
||||
We will probably need to train this ourselves. Off-the-shelf sentiment or personality classifiers are the wrong beast.
|
||||
|
||||
The best bootstrap source is synthetic or simulated dialogue where we control the hidden speaker state.
|
||||
|
||||
### Good Bootstrap Inputs
|
||||
|
||||
For each generated scene or event, record:
|
||||
|
||||
- speaker identity
|
||||
- stable personality state
|
||||
- current emotional state
|
||||
- active goals
|
||||
- relationship state toward listener
|
||||
- scene context
|
||||
- intended act
|
||||
- generated utterance
|
||||
|
||||
Then label:
|
||||
|
||||
- canonical expressed dimensions
|
||||
- canonical act strength
|
||||
- likely listener perceptions for one or more listener profiles
|
||||
|
||||
### Important Warning
|
||||
|
||||
Do **not** train the model to infer the speaker's full personality vector from one line.
|
||||
|
||||
Train it to infer:
|
||||
|
||||
- what dimensions are being expressed here
|
||||
- what act is being attempted here
|
||||
- what a given listener would likely perceive here
|
||||
|
||||
The hidden personality vector is upstream supervision, not the direct per-line label.
|
||||
|
||||
## Label Schema
|
||||
|
||||
Each event should ideally carry several related label sets.
|
||||
|
||||
### A. Canonical Expression Labels
|
||||
|
||||
Multi-label scores for dimensions such as:
|
||||
|
||||
- warmth
|
||||
- drive
|
||||
- grandiosity
|
||||
- validation-seeking
|
||||
- anxiety
|
||||
- control pressure
|
||||
- hostility
|
||||
- suspicion
|
||||
- rigidity
|
||||
- withdrawal
|
||||
|
||||
Scale options:
|
||||
|
||||
- `0..3`
|
||||
- `0..1` continuous
|
||||
- ordinal buckets with confidence
|
||||
|
||||
### B. Canonical Interaction Labels
|
||||
|
||||
Things like:
|
||||
|
||||
- reassurance bid
|
||||
- status bid
|
||||
- dominance move
|
||||
- attachment bid
|
||||
- distancing move
|
||||
- concealment
|
||||
- persuasion
|
||||
- compliance
|
||||
- manipulation
|
||||
- apology
|
||||
- gratitude
|
||||
|
||||
### C. Listener Perception Labels
|
||||
|
||||
For each selected listener profile:
|
||||
|
||||
- perceived warmth
|
||||
- perceived threat
|
||||
- perceived contempt
|
||||
- perceived neediness
|
||||
- perceived honesty
|
||||
- perceived status move
|
||||
- perceived flirtation or intimacy bid
|
||||
- perceived disrespect
|
||||
|
||||
### D. Error Labels
|
||||
|
||||
It is useful to mark where the listener is wrong:
|
||||
|
||||
- overread
|
||||
- underread
|
||||
- misattributed motive
|
||||
- hostile attribution error
|
||||
- false reassurance read
|
||||
- false contempt read
|
||||
|
||||
That makes misunderstanding legible instead of magical.
|
||||
|
||||
## How To Generate Training Data Without Sniffing Our Own Farts
|
||||
|
||||
If the same prompt stack generates all dialogue and all labels, we risk building a self-licking ice cream cone.
|
||||
|
||||
Reduce that risk by:
|
||||
|
||||
- using multiple generation prompts
|
||||
- varying surface style heavily
|
||||
- generating masking, bluffing, sarcasm, and mixed-motive scenes on purpose
|
||||
- using different models or prompt regimes for generation vs labeling when practical
|
||||
- mixing in human-written or manually authored scenes
|
||||
- keeping hard-edge heuristic checks for explicit things like:
|
||||
- insults
|
||||
- ownership language
|
||||
- repeated badgering
|
||||
- direct threats
|
||||
|
||||
The model should learn the soft social weather, not be trusted as sole judge of every obvious profanity.
|
||||
|
||||
## Hybrid Runtime Strategy
|
||||
|
||||
Do not throw away heuristics.
|
||||
|
||||
Use a hybrid:
|
||||
|
||||
- heuristics for explicit hard edges
|
||||
- classifier for softer dimensions
|
||||
- aggregation layer for profile updates
|
||||
- listener perception layer for agent-specific misreading
|
||||
|
||||
That gives us:
|
||||
|
||||
- reliability where language is explicit
|
||||
- nuance where language is messy
|
||||
- inspectability when we need to debug why an agent thinks what it thinks
|
||||
|
||||
## Aggregation And Profile Updates
|
||||
|
||||
The classifier should not immediately rewrite a profile from one utterance.
|
||||
|
||||
Use:
|
||||
|
||||
- recency weighting
|
||||
- repeated-evidence thresholds
|
||||
- relationship context
|
||||
- severity overrides for extreme incidents
|
||||
|
||||
One brutal betrayal should matter fast.
|
||||
|
||||
One odd line should not convince the system that somebody is now permanently grandiose, avoidant, or in love.
|
||||
|
||||
## Evaluation
|
||||
|
||||
We should test three separate things.
|
||||
|
||||
### 1. Canonical Classification
|
||||
|
||||
Can the system accurately read what the line expresses?
|
||||
|
||||
### 2. Perception Modeling
|
||||
|
||||
Can different listeners plausibly misread the same line in different ways?
|
||||
|
||||
### 3. Downstream Behavioral Usefulness
|
||||
|
||||
Does the resulting read produce better behavior?
|
||||
|
||||
For example:
|
||||
|
||||
- better boundary enforcement
|
||||
- more believable tenderness
|
||||
- more coherent grudges
|
||||
- more plausible market and cohort drift
|
||||
- more interesting multi-agent friction
|
||||
|
||||
If the classifier is accurate but nothing downstream improves, congratulations, we built a lab rat with a diploma.
|
||||
|
||||
## Why This Matters For Aetheria
|
||||
|
||||
This is not only for Void.
|
||||
|
||||
The same stack can power:
|
||||
|
||||
- interpersonal drama
|
||||
- factional distrust
|
||||
- consumer susceptibility
|
||||
- propaganda response
|
||||
- labor radicalization
|
||||
- prestige signaling
|
||||
- institutional conditioning
|
||||
- cohort emotional drift
|
||||
|
||||
That means Aetheria populations can be modeled as:
|
||||
|
||||
- slow dispositions
|
||||
- pressure-sensitive dimensions
|
||||
- relationship state toward institutions and factions
|
||||
- collective memory
|
||||
- biased perception of propaganda, leadership, and crisis
|
||||
|
||||
This is a far better fit than asking whether a colony is "high in extraversion" and pretending that captures how it responds to scarcity, humiliation, media pressure, and prestige markets.
|
||||
|
||||
## Near-Term Implementation Path
|
||||
|
||||
1. Keep the current heuristic pipeline as the hard-edge fallback.
|
||||
2. Add an event-level multi-label classifier for the existing dimensions.
|
||||
3. Persist per-event classifier scores and confidence alongside the event record.
|
||||
4. Rework profile synthesis to aggregate classifier outputs instead of just tag counts.
|
||||
5. Add a listener-perception layer driven by:
|
||||
- listener EQ
|
||||
- listener personality
|
||||
- relationship state
|
||||
- situational load
|
||||
6. Add synthetic bootstrap scene generation with hidden-state labels.
|
||||
7. Add adversarial evaluation scenes with:
|
||||
- bluffing
|
||||
- masking
|
||||
- sarcasm
|
||||
- mixed motives
|
||||
- asymmetric status
|
||||
|
||||
## Bottom Line
|
||||
|
||||
The right shape is not:
|
||||
|
||||
- one global personality classifier
|
||||
- one single truthless perception model
|
||||
- one line mapped directly to the speaker's whole personality
|
||||
|
||||
The right shape is:
|
||||
|
||||
- hidden speaker state
|
||||
- generated utterance
|
||||
- canonical social-signal read
|
||||
- listener-biased perception of that signal
|
||||
- profile updates based on repeated evidence
|
||||
|
||||
That gives us honest reading, organic misunderstanding, and enough structure to let agents become socially interesting instead of merely chatty.
|
||||
|
|
@ -6,6 +6,8 @@ If you want the companion systems sketch for turning this into a persistent Aeth
|
|||
|
||||
If you want the more focused note on where the Void interaction model should go next, and why it already outclasses the old Big Five colony layer from Aetheria planning docs, see [Personality Model Roadmap](./personality-model-roadmap.md).
|
||||
|
||||
If you want the concrete plan for a canonical-versus-perceived dialogue classifier, including synthetic training data, listener-biased misreading, and why the generated line is not the ground truth, see [Personality Signal Classifier](./personality-signal-classifier.md).
|
||||
|
||||
The goal is not to build a chatbot that exists to nod, flatter, and perform a personality like a cheap mask. The goal is a system that can:
|
||||
|
||||
- remember specific events
|
||||
|
|
|
|||
|
|
@ -11,3 +11,4 @@
|
|||
{"ts":"2026-04-30T00:00:00+01:00","type":"operations","status":"ok","note":"A reboot proved bot and worker would stay dead without a dedicated startup task; the stack now has a logon task installer and the watchdog checks that the startup task remains installed and enabled."}
|
||||
{"ts":"2026-05-01T15:39:41Z","type":"architecture","status":"ok","note":"The local Ollama lane and worker MCP surface were split into orchestration, helper, and shared modules; the obvious runtime-file monarchies are gone enough that further seam cuts are now elective rather than the next priority by default."}
|
||||
{"ts":"2026-05-01T16:13:06Z","type":"research","status":"ok","note":"Persisted a focused personality-model roadmap: the current Void behavioral-dimension stack is a better basis for future agent and population modeling than the older Big Five colony layer, and the next worthwhile additions are volatility, attachment-vs-distance, reflection, and a split between social stance and project-thinking style."}
|
||||
{"ts":"2026-05-01T16:27:17Z","type":"research","status":"ok","note":"Persisted the personality-signal classifier design: generated dialogue should be read through a canonical event-level classifier and then distorted per listener by EQ, personality, relationship baggage, and situational load. The utterance is not the ground truth; the hidden speaker state and expressed signal are."}
|
||||
|
|
|
|||
Loading…
Reference in a new issue