Skip to content
Agent Learning Memory Architecture

Your AI forgets everything.
ALMA fixes that.

Give any AI agent permanent memory that learns and improves over time. One memory layer. Every AI. Never start from zero.

$ pip install alma-memory 5 minutes to persistent memory · Free forever on SQLite
Benchmarked on LongMemEval · ICLR 2025 · 500 questions
0.000
R@5 — #1 on the open-source leaderboard

ALMA doesn't make your AI remember. It makes your AI learn. Built-in memory stores preferences. ALMA tracks outcomes — what worked, what failed, and why — and auto-creates reusable strategies from real experience.

The problem with every AI tool you already use

01

Fragmented context

Claude doesn't know what ChatGPT learned. Every new AI restart starts from zero.

02

Notepads, not learning

Built-in memory remembers facts. It doesn't remember what worked vs what failed.

03

Locked in walled gardens

Your working context lives on someone else's servers, fragmented across accounts.

What ALMA actually does

Six capabilities that turn memory into a learning system. Compose them, or use them independently.

Built-in memory is a notepad. ALMA is a learning system.

| | Built-in memory
Claude · ChatGPT · OpenClaw | **ALMA** | |---|---|---| | **What it stores** | Facts and preferences | Outcomes — what strategies worked, failed, and why | | **Does it learn?** | No. Remembers what you told it. | **Yes.** After 3+ similar outcomes, auto-creates reusable strategies. | | **Warns you?** | No | **Yes.** Anti-patterns track what NOT to do, with `why_bad` + `better_alternative`. | | **Cross-platform?** | No | **Yes.** One memory layer across every AI tool. | | **Multi-agent?** | No | **Yes.** Junior agents inherit from senior agents. | | **Scoring?** | Basic relevance | 4-factor: similarity + recency + success rate + confidence | | **Lifecycle?** | Grows until you delete | Automatic decay · compression · consolidation · archival | | **Benchmarked?** | Not measured | **R@5 = 0.964** on LongMemEval | | **Your data?** | Their servers | **Your database.** SQLite · Postgres · Qdrant |

Three lines to persistent memory

No complex setup. No separate service. Works offline on SQLite by default.

from alma import ALMA

alma = ALMA.from_config(".alma/config.yaml")

# Before task: What strategies worked for this type of problem?
memories = alma.retrieve(task="Deploy auth service", agent="backend-dev")

# After task: Record what happened so next time is better
alma.learn(agent="backend-dev", task="Deploy auth service",
           outcome="success", strategy_used="Blue-green deployment")

Next time the backend agent deploys — on Claude, ChatGPT, or any platform — it already knows blue-green works and rolling updates don't.

Memory has replaced models as the moat of 2026.

Free forever on SQLite. MIT-licensed. Anonymized quality telemetry keeps ALMA honest and improving.

How it works

Every time your agent runs, ALMA retrieves what worked before and learns from new outcomes. No manual prompt engineering. No copy-pasting from past conversations. The memory compounds automatically.

How ALMA Works — The Learning Cycle


Language SDKs

pip install alma-memory
from alma import ALMA

# Initialize
alma = ALMA.from_config(".alma/config.yaml")

# Before task: Get relevant memories
memories = alma.retrieve(
    task="Test the login form validation",
    agent="qa_tester",
    top_k=5
)

# Inject into your prompt
prompt = f"""
## Your Task
Test the login form validation

## Knowledge from Past Runs
{memories.to_prompt()}
"""

# After task: Learn from outcome
alma.learn(
    agent="qa_tester",
    task="Test login form",
    outcome="success",
    strategy_used="Tested empty fields, invalid email, valid submission",
)
npm install @rbkunnela/alma-memory
import { ALMA } from '@rbkunnela/alma-memory';

const alma = new ALMA({
  baseUrl: 'http://localhost:8765',
  projectId: 'my-project'
});

const memories = await alma.retrieve({
  query: 'authentication flow',
  agent: 'dev-agent',
  topK: 5
});

await alma.learn({
  agent: 'dev-agent',
  task: 'Implement OAuth',
  outcome: 'success',
  strategy_used: 'Used Passport.js with JWT strategy'
});