Class: Llmemory::Maintenance::CognitivePass
- Inherits:
-
Object
- Object
- Llmemory::Maintenance::CognitivePass
- Defined in:
- lib/llmemory/maintenance/cognitive_pass.rb
Overview
The cognitive maintenance pass closes CoALA’s learning loop in one scheduled step. Independently, the gem exposes consolidation (short-term -> semantic), reflection (episodic -> insights), skill mining (episodic -> procedural) and TTL expiry. This pass orchestrates them so an agent learns from its experience and keeps its memory healthy without the consumer wiring each step by hand.
Designed to run as a maintenance task (cron / Rails Job), per user. Each step is isolated: a failure in one is captured in the returned report (‘:errors`) and never aborts the others.
Returns:
{
consolidated: true/false/nil, # nil when no `memory:` was supplied
insights: [insight_id, ...],
mined: [proposal_or_skill_id, ...],
expired: { episodic: N, procedural: M },
errors: { reflect: "...", mine: "...", ... } # only failed steps
}
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(user_id, memory: nil, episodic: nil, procedural: nil, semantic: nil, llm: nil, reflect: true, mine_skills: nil, expire: true, reflection_window: 10, mining_window: Llmemory::SkillMining::Miner::DEFAULT_WINDOW) ⇒ CognitivePass
constructor
A new instance of CognitivePass.
- #run! ⇒ Object
Constructor Details
#initialize(user_id, memory: nil, episodic: nil, procedural: nil, semantic: nil, llm: nil, reflect: true, mine_skills: nil, expire: true, reflection_window: 10, mining_window: Llmemory::SkillMining::Miner::DEFAULT_WINDOW) ⇒ CognitivePass
Returns a new instance of CognitivePass.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/llmemory/maintenance/cognitive_pass.rb', line 29 def initialize(user_id, memory: nil, episodic: nil, procedural: nil, semantic: nil, llm: nil, reflect: true, mine_skills: nil, expire: true, reflection_window: 10, mining_window: Llmemory::SkillMining::Miner::DEFAULT_WINDOW) @user_id = user_id @memory = memory @episodic = episodic @procedural = procedural @semantic = semantic @llm = llm @reflect = reflect @mine_skills = mine_skills.nil? ? Llmemory.configuration.skill_mining_enabled : mine_skills @expire = expire @reflection_window = reflection_window @mining_window = mining_window end |
Class Method Details
.run!(user_id, **kwargs) ⇒ Object
25 26 27 |
# File 'lib/llmemory/maintenance/cognitive_pass.rb', line 25 def self.run!(user_id, **kwargs) new(user_id, **kwargs).run! end |
Instance Method Details
#run! ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/llmemory/maintenance/cognitive_pass.rb', line 45 def run! report = { consolidated: nil, insights: [], mined: [], expired: { episodic: 0, procedural: 0 }, errors: {} } step(report, :consolidate) { report[:consolidated] = consolidate } if @memory step(report, :reflect) { report[:insights] = reflect } if @reflect step(report, :mine) { report[:mined] = mine } if @mine_skills step(report, :expire) { report[:expired] = expire } if @expire report end |