Skip to content

Continual Learning Hook

Your agent forgets everything between sessions. This hook fixes that.

Quick Start

cp -r hooks/continual-learning .github/hooks/

That's it. The hook auto-initializes on first session — no config, no setup, no manual steps.

What It Does

  • Session start — Loads learnings from previous sessions (global + this repo)
  • During session — Tracks tool outcomes silently
  • Session end — Reflects on patterns, stores insights, compacts old data

Two-Tier Memory

Scope Location What goes here
Global ~/.copilot/learnings.db Tool patterns, cross-project insights
Local .copilot-memory/learnings.db Repo conventions, project-specific mistakes

Global learnings follow you everywhere. Local learnings stay with the project.

Both auto-create on first run. Local memory only activates inside a git repo.

How It Compounds

Time Effect
Day 1 Agent starts fresh — hook begins observing
Week 2 Failure patterns detected, surfaced at session start
Month 2 Rich context loaded — agent avoids known pitfalls

Old low-value learnings decay automatically (60-day TTL, low hit count). High-value learnings persist and rank higher.

Adding Learnings Manually

The agent can also write learnings directly using its built-in store_memory tool or SQL:

-- Agent writes a repo-specific learning
INSERT INTO learnings (scope, category, content, source)
VALUES ('local', 'mistake', 'Use semantic_configuration_name= not semantic_configuration=', 'user_correction');

Architecture

learn.sh <event>          ← Single script handles all lifecycle events
    │
    ├── sessionStart      → Query both DBs, surface top learnings
    ├── postToolUse       → Log tool name + result (3ms overhead)
    └── sessionEnd        → Analyze patterns, persist insights, compact old data

Disable

export SKIP_CONTINUAL_LEARNING=true

Requirements

  • sqlite3 (pre-installed on macOS and most Linux)
  • jq (optional — gracefully degrades without it)