Skip to main content

Learned Knowledge

In plain terms

Learnings are reusable insights that apply across many conversations — “Vendor X invoices always have line-item drift,” “customs holds explain 80% of ‘lost’ international shipments.” They’re recalled by meaning (semantic search), so the right insight surfaces even when the wording differs.
The analogy: the team wiki of hard-won lessons. One person figures something out once; everyone benefits forever.
Unlike User Facts (about a person) or Entities (about things), learnings are about how to do the work well.

When to use it

  • Domain knowledge that accrues over time — support playbooks, troubleshooting patterns, gotchas.
  • Team-shared know-how — promote an insight to agent or tenant scope so the whole team sees it (see Scope Hierarchy).
  • Anything you want recalled by similarity, not exact match.

When NOT to use it

  • Facts about the userUser Facts.
  • Exact-match lookups (an order by ID) → that’s a tool call, not memory.
  • Static reference docs → use a Knowledge Base / RAG for large document corpora; Learnings is for short, agent-discovered insights.

Configuration

PropertyTypeRequiredDefaultWhat it controls
vectorStoreVectorStoreYesWhere learnings are indexed for semantic search
collectionstringNo"agentium_learnings"The named bucket inside the vector store
topKnumberNo3How many of the most relevant learnings to inject per run
minScorenumberNononeRelevance floor (0–1) — matches below this similarity are never injected. Recommended 0.3–0.5; weak matches in context are a hallucination generator
Understanding the options:
  • vectorStore is required because learnings are recalled by meaning, which needs a vector index (Qdrant, Pinecone, in-memory, etc.). This is why learnings takes an object, not just true — there’s no default backend.
  • collection — change only if multiple agents should keep separate learning sets inside one vector database.
  • topK — higher means the agent considers more accumulated knowledge but spends more tokens and risks losing focus. 3 is a solid default; 5–8 for knowledge-heavy agents, 1–2 for tight budgets.

Scope and sharing

Learnings support a four-level scope so insights aren’t trapped in one user’s silo:
The save_learning tool exposes a scope parameter; reads union every scope the caller belongs to. Auto-extracted learnings always save as user scope — the framework never auto-promotes to a shared scope. See Multi-User Isolation for the full contract.

Provenance & trust tiers (v2.5+)

Every learning carries a source so the agent knows how much to trust it:
SourceTrustSet by
"human-correction"verifiedLearnings derived from explicit human corrections
"manual"verifiedmemory.remember() and programmatic saveLearning() calls
"llm-extracted"unverifiedAuto-extraction and the save_learning tool
Context injection annotates each line — [verified] / [unverified] — and appends a caveat whenever unverified items are present: “Items marked [unverified] are AI-extracted hypotheses — treat them as hints to verify, not established facts.” This stops the model from asserting AI-extracted guesses as truth.

Grounded extraction (v2.5+)

Auto-extraction is the main path for hallucinations to become permanent “knowledge.” Every extracted learning must now include an evidence field containing a verbatim quote from the conversation; extractions whose evidence doesn’t appear in the conversation text are rejected before they’re saved. The quote is stored on the record for audit.

Invalidation & self-correction (v2.5+)

Learnings can be retired without losing the audit trail:
invalidateContradicted only ever retires llm-extracted learnings — human-authored knowledge is never auto-invalidated. Recording a correction triggers this automatically. Invalidations emit memory.learning.invalidated events.

Pruning (v2.6+)

As volume grows, stale unverified learnings dilute retrieval. Prune them on a schedule:
Conservative by default: human-authored knowledge (manual, human-correction) is never age-pruned unless explicitly listed in sources. Curator.prune({ maxAgeDays, agentName }) now sweeps learnings alongside facts and decisions — see Curator.

Tools

ToolWhat it does
save_learningSave an insight (with optional scope)
search_learningsSemantic search across every scope the caller can see

Cross-references