My AI agent's mood is three numbers and a 16-emotion table. Here's the math
Description and use
An AI agent mood system using PAD vectors and OCC appraisal that updates and decays emotions, affecting tone.
Problem
Design a lightweight, explainable mood system for an AI agent that updates its affective state based on events and decays over time.
Outcome
A functional, explainable mood model that modulates agent tone and can be extended to influence decision-making.
Workflow
- 1. Appraise event with OCC variables (desirability, praiseworthiness, agency).
- 2. Scale emotion intensities by reactivity and neuroticism factors.
- 3. Fold each emotion’s PAD signature into the mood vector, scaled by 0.5.
- 4. Decay mood toward baseline each turn by 15%.
- 5. Expose current mood and last emotion via /mood endpoint.
Evidence
PaulusAI has a persistent mood, and it's not a vibe prompt. It's a PAD vector (Pleasure, Arousal, Dominance), each in [-1, 1].
Events are appraised with the OCC model (Ortony, Clore & Collins), which turns an event into emotions like joy, pride, fear, or gratitude.
Each emotion adds its PAD signature to the mood, scaled by 0.5. For a task success, pleasure rises by roughly +0.2.
Each turn, mood moves 15% of the way back toward a personality baseline, here about +0.04 pleasure.
/mood shows the current vector and the last emotion felt, so you can see why the agent is in a given state.
- Record date: 2026-11-02T06:14:07.195Z