0.0
Repository is archived
No release in over 3 years
Models prefrontal cortex inhibitory control: suppresses impulsive responses, delays gratification, and maintains self-regulation
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-inhibition

Cognitive impulse inhibition and self-control for LegionIO agents. Part of the LegionIO cognitive architecture extension ecosystem (LEX).

What It Does

lex-inhibition models the prefrontal cortex's role in suppressing inappropriate impulses. It tracks agent willpower as a depletable resource, evaluates incoming impulses against current willpower, applies inhibition strategies (distraction, reframing, delay, suppression, replacement), and auto-detects impulses from tick results. Includes temporal discounting (delay of gratification) and Stroop-like conflict detection.

Key capabilities:

  • Willpower resource: depletable float (0..1), costs 0.05 per successful inhibition, recoverable
  • Five strategies: distraction, reframing, delay, suppression, replacement
  • Auto-detection: emotional (high arousal), competitive (low prediction confidence), reactive (high gut instinct) impulses auto-created from tick results
  • Temporal discounting: exponential discount for delay-of-gratification calculations
  • Stroop conflict detection: identifies competing cognitive responses

Installation

Add to your Gemfile:

gem 'lex-inhibition'

Or install directly:

gem install lex-inhibition

Usage

require 'legion/extensions/inhibition'

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

# Auto-detect impulses from a tick cycle
client.update_inhibition(tick_results: tick_phase_results)

# Evaluate a specific impulse with a strategy
result = client.evaluate_impulse(id: impulse_id, strategy: :reframing)
# => { outcome: :suppressed, willpower_remaining: 0.75, cost: 0.05 }

# Delay of gratification
discounted = client.delay_gratification(value: 0.9, steps: 3)
# => { discounted_value: 0.657, discount_steps: 3 }

# Check for cognitive conflict
client.check_stroop(response_a: { content: 'proceed' }, response_b: { content: 'abort' })

# Willpower status
client.willpower_status

# Stats
client.inhibition_stats

Runner Methods

Method Description
update_inhibition Auto-detect impulses from tick results
evaluate_impulse Evaluate a specific impulse with a chosen strategy
delay_gratification Apply temporal discount to a value over N steps
check_stroop Detect Stroop-like cognitive conflict between two responses
willpower_status Current willpower level and fatigue state
inhibition_history Recent impulse events with outcomes
inhibition_stats Counts by type/status, avg strength, willpower level

Development

bundle install
bundle exec rspec
bundle exec rubocop

License

MIT