Learning Machines

Agents that learn and improve with every interaction.

Kern turns agents into learning machines by combining them with Learning Stores. Learning Stores are persistent backends that capture user profiles, memories, and knowledge over time.

1from kern.agent import Agent
2from kern.db.sqlite import SqliteDb
3from kern.models.openai import OpenAIResponses
4
5agent = Agent(
6 model=OpenAIResponses(id="gpt-5.2"),
7 db=SqliteDb(db_file="tmp/agents.db"),
8 learning=True,
9)

One line. Your agent now remembers users and improves over time.

Learning Stores

Each store captures a different type of knowledge:

StoreWhat it capturesScope
User ProfileStructured facts (name, role, preferences)Per user
User MemoryUnstructured observations from conversationsPer user
Session ContextGoals, plans, and progress for the current sessionPer session
Entity MemoryFacts about external things (companies, projects, people)Configurable
Learned KnowledgeInsights that transfer across usersConfigurable
Decision LogDecisions with reasoning for auditing and learningPer agent

Stores can be enabled individually or combined. Each implements the same protocol: recall, process, build_context, get_tools.

Learning Modes

Control how and when the agent learns:

ModeHow it works
AlwaysExtraction runs automatically after each response
AgenticAgent receives tools and decides what to save
ProposeAgent proposes learnings, you approve before saving

Namespaces

Some stores support configurable sharing scope via namespace:

NamespaceWho can access
"user"Only the current user
"global"Everyone (default)
CustomExplicit grouping (e.g., "engineering", "sales_west")

Maintenance

The Curator keeps memories healthy:

1lm = agent.get_learning_machine()
2
3# Remove memories older than 90 days
4lm.curator.prune(user_id="alice", max_age_days=90)
5
6# Remove duplicates
7lm.curator.deduplicate(user_id="alice")

Guides

Resources