Personality
Personality defines a nara’s subjective experience. It is a set of deterministic traits derived from the nara’s soul that influences how it filters events, forms opinions, and interacts with others.
1. Purpose
Section titled “1. Purpose”- Create diverse and unique behaviors among autonomous agents.
- Enable subjective Hazy Memory by influencing what a nara chooses to remember or forget.
- Provide a basis for social mechanics.
2. Conceptual Model
Section titled “2. Conceptual Model”- The Big Three Traits:
- Agreeableness: Influences how much a nara likes others and how it reacts to teasing.
- Sociability: Influences how much a nara cares about social events and gossip.
- Chill: Influences how much a nara is bothered by network volatility (restarts, downtime).
- Aura: A visual representation (colors) of the personality and soul.
Invariants
Section titled “Invariants”- Deterministic: Given the same soul and name, the personality MUST always be identical.
- Immutable: A nara cannot change its personality after its soul is born.
- Range: Every trait is a value between 0 and 100.
3. External Behavior
Section titled “3. External Behavior”- naras with high Sociability will store more social events and gossip more frequently.
- naras with high Chill are less likely to report or be bothered by peer restarts.
- Agreeable naras are less likely to initiate teasing but may “defend” peers who are teased excessively.
- Personality traits are advertised in the
hey-therepresence announcement.
4. Interfaces
Section titled “4. Interfaces”NaraPersonality: The struct containing the three trait values.DerivePersonality(soul, name): The function that generates traits from the cryptographic bond.
5. Event Types & Schemas
Section titled “5. Event Types & Schemas”Personality is embedded in the NaraStatus which is carried by:
hey-thereevents.SyncResponsemetadata.
6. Algorithms
Section titled “6. Algorithms”Trait Derivation
Section titled “Trait Derivation”Traits are derived by taking specific bytes from the SHA256 hash of the Soul || Name bond and mapping them to the 0-100 range:
Agreeableness = Hash[0] % 101Sociability = Hash[1] % 101Chill = Hash[2] % 101
Personality Filtering
Section titled “Personality Filtering”- Discovery Radius:
Chattinessdetermines how many peers a nara attempts to sync with. - Social Weighting:
Weight = f(Sociability, Chill, EventAge)based on the sync protocol.
7. Failure Modes
Section titled “7. Failure Modes”- Trait Extremes: A nara with 0 Chill and 100 Sociability may become a “drama seeker,” saturating its ledger with every minor network change.
- Homogeneity: If a network is dominated by “Very Chill” naras, social history may be lost very quickly due to aggressive filtering.
8. Security / Trust Model
Section titled “8. Security / Trust Model”- Transparency: Because personality is deterministic and derived from public data (Soul/Name), anyone can verify a nara’s claimed personality.
9. Test Oracle
Section titled “9. Test Oracle”TestPersonality_Determinism: Ensures identical souls always produce identical traits.TestAura_VisualConsistency: Verifies that aura colors are correctly mapped from personality traits.TestPersonality_Filtering: Validates that high Chill naras correctly filter out normal-importance observations.
10. Open Questions / TODO
Section titled “10. Open Questions / TODO”- Add a “Neuroticism” trait to influence how naras react to their own downtime.
- Link personality traits to the selection of “Confidants” in the stash service.