Repository is archived
No release in over 3 years
Real-time monitoring of cognitive processes: feeling of knowing, judgment of learning, confidence calibration, error detection, and effort tracking for brain-modeled agentic AI
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-metacognitive-monitoring

Metacognitive judgment tracking and calibration for LegionIO agents. Part of the LegionIO cognitive architecture extension ecosystem (LEX).

What It Does

lex-metacognitive-monitoring tracks how well an agent knows what it knows. It records five types of metacognitive judgments (feeling of knowing, judgment of learning, confidence rating, effort estimate, error detection), resolves them against actual outcomes, and builds a calibration model showing how well the agent's confidence estimates track reality. Detects overconfidence and underconfidence patterns.

Key capabilities:

  • Five judgment types: feeling_of_knowing, judgment_of_learning, confidence_rating, effort_estimate, error_detection
  • Calibration tracking: confidence vs accuracy correlation
  • Overconfidence/underconfidence detection: flags when confidence significantly mismatches accuracy
  • Calibration curve: histogram of confidence bins vs actual accuracy rates
  • Calibration labels: well_calibrated / moderately_calibrated / poorly_calibrated / uncalibrated

Installation

Add to your Gemfile:

gem 'lex-metacognitive-monitoring'

Or install directly:

gem install lex-metacognitive-monitoring

Usage

require 'legion/extensions/metacognitive_monitoring'

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

# Record a feeling of knowing
judgment = client.feeling_of_knowing(domain: :networking)
# => { id: "...", type: :feeling_of_knowing, confidence: 0.5 }

# Record with specific confidence
judgment = client.record_judgment(
  type: :confidence_rating, domain: :ruby, confidence: 0.85, effort: 0.3
)

# Resolve against actual outcome
client.resolve_judgment(id: judgment[:judgment][:id], accurate: true)

# Check calibration
report = client.calibration_report
# => { score: 0.72, label: :moderately_calibrated, overconfidence_bias: 0.08 }

# Detect overconfidence
client.detect_overconfidence
# => [{ judgment_id: "...", domain: :ruby, confidence_excess: 0.25 }]

# View calibration curve
client.calibration_curve(bins: 5)

Runner Methods

Method Description
record_judgment Record a metacognitive judgment with type, domain, confidence, effort
resolve_judgment Resolve a judgment with the actual outcome
feeling_of_knowing Shortcut: record a feeling-of-knowing judgment
judgment_of_learning Shortcut: record a judgment-of-learning
detect_overconfidence Return judgments where confidence significantly exceeds accuracy
detect_underconfidence Return patterns where accuracy exceeds confidence
calibration_report Full calibration: score, label, bias, curve
monitoring_report Judgment counts, resolved ratio, avg confidence and effort
average_effort Mean effort estimate for a domain
calibration_curve Confidence vs accuracy histogram

Development

bundle install
bundle exec rspec
bundle exec rubocop

License

MIT