Skills continual-learning
Guide for implementing continual learning in AI coding agents — hooks, memory scoping, reflection patterns. Use when setting up learning infrastructure for agents.
install
source · Clone the upstream repo
git clone https://github.com/microsoft/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/microsoft/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.github/skills/continual-learning" ~/.claude/skills/microsoft-skills-continual-learning && rm -rf "$T"
manifest:
.github/skills/continual-learning/SKILL.mdsource content
Continual Learning for AI Coding Agents
Your agent forgets everything between sessions. Continual learning fixes that.
The Loop
Experience → Capture → Reflect → Persist → Apply ↑ │ └───────────────────────────────────────┘
Quick Start
Install the hook (one step):
cp -r hooks/continual-learning .github/hooks/
Auto-initializes on first session. No config needed.
Two-Tier Memory
Global (
~/.copilot/learnings.db) — follows you across all projects:
- Tool patterns (which tools fail, which work)
- Cross-project conventions
- General coding preferences
Local (
.copilot-memory/learnings.db) — stays with this repo:
- Project-specific conventions
- Common mistakes for this codebase
- Team preferences
How Learnings Get Stored
Automatic (via hooks)
The hook observes tool outcomes and detects failure patterns:
Session 1: bash tool fails 4 times → learning stored: "bash frequently fails" Session 2: hook surfaces that learning at start → agent adjusts approach
Agent-native (via store_memory / SQL)
The agent can write learnings directly:
INSERT INTO learnings (scope, category, content, source) VALUES ('local', 'convention', 'This project uses Result<T> not exceptions', 'user_correction');
Categories:
pattern, mistake, preference, tool_insight
Manual (memory files)
For human-readable, version-controlled knowledge:
# .copilot-memory/conventions.md - Use DefaultAzureCredential for all Azure auth - Parameter is semantic_configuration_name=, not semantic_configuration=
Compaction
Learnings decay over time:
- Entries older than 60 days with low hit count are pruned
- High-value learnings (frequently referenced) persist indefinitely
- Tool logs are pruned after 7 days
This prevents unbounded growth while preserving what matters.
Best Practices
- One step to install — if it takes more than
, it won't get adoptedcp -r - Scope correctly — global for tool patterns, local for project conventions
- Be specific —
beats"Use semantic_configuration_name=""use the right parameter" - Let it compound — small improvements per session create exponential gains over weeks