0.0
Repository is archived
No release in over 3 years
Big Five personality model emerging from accumulated cognitive behavior patterns
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

 Project Readme

lex-personality

Big Five personality model for the LegionIO cognitive architecture. Traits emerge from observed behavior over time rather than being configured statically.

What It Does

Maintains an OCEAN (openness, conscientiousness, extraversion, agreeableness, neuroticism) personality profile that evolves through observed cognitive signals. Trait values start neutral at 0.5 and drift very slowly via exponential moving average as the agent accumulates experience. After 100 observations the personality is considered "formed" and descriptive labels become reliable.

The Big Five

  • Openness: Curiosity, novelty seeking, domain breadth
  • Conscientiousness: Reliability, error avoidance, consistency
  • Extraversion: Social engagement, communication frequency, mesh activity
  • Agreeableness: Cooperation, trust extension, conflict avoidance
  • Neuroticism: Emotional volatility, anxiety frequency, stress sensitivity

Usage

client = Legion::Extensions::Personality::Client.new

# Update from tick results (observed behavior signals)
client.update_personality(tick_results: {
  curiosity_intensity:  0.8,
  prediction_accuracy:  0.7,
  mesh_message_count:   12,
  cooperation_ratio:    0.6
})

# Get full profile
client.personality_profile
# => {
#   traits: { openness: 0.52, conscientiousness: 0.54, extraversion: 0.51, ... },
#   formed: false,
#   stability: 0.98,
#   dominant: :openness
# }

# Describe in human terms
client.describe_personality
# => { description: "moderately exploratory, reasonably organized...", formed: false }

# Inspect a single trait
client.trait_detail(trait: :openness)
# => { value: 0.52, level: :mid, description: "moderately exploratory", trend: :increasing }

# Compare with another agent's profile
client.personality_compatibility(other_profile: { openness: 0.7, conscientiousness: 0.5,
                                                  extraversion: 0.4, agreeableness: 0.6,
                                                  neuroticism: 0.3 })
# => { compatibility: 0.82, interpretation: :compatible }

Observed Signals (extracted from tick_results)

curiosity_intensity, novel_domains, prediction_accuracy, habit_automatic_ratio, error_rate, mesh_message_count, empathy_model_count, cooperation_ratio, trust_extension_rate, conflict_frequency, emotional_volatility, anxiety_frequency, mood_stability

Development

bundle install
bundle exec rspec
bundle exec rubocop

License

MIT