
Orma Memory
io.github.wizardwithcodehazard由 GitHub 账号 wizardwithcodehazard 发布v0.1.13更新于 Nov 1, 2026
Episode-first, zero-latency long-term memory for local LLMs and AI coding assistants.
发布方自己的服务:Memory.fit
概览
Orma Memory 通过 stdio 为编程助手提供本地 SQLite 长期记忆,让事实、决策和禁用规则跨会话保留。
- 可以做什么
- 按查询召回受 token 预算限制的当前事实、过往决策与禁用规则
- 记录项目决策、架构规则和用户约束,包括反模式
- 登记硬性禁止项,并将其提升到注入记忆块的顶部
- 查看全部当前有效事实,可选择包含已过时历史
- 按状态 ID 关闭已过时或被取代的约束
- 按用户或会话隔离不同的记忆空间
- 适用场景
- 适合编程助手在会话之间反复丢失上下文,需要快速召回项目决策、用户约束和“绝不要这样做”规则,且不希望依赖云服务的场景。面向笔记本上的本地开源模型。
- 运行要求
- 以本地进程方式通过 stdio 运行,从 orma-ai 的 PyPI 包安装(Python)。后台整合需要本地模型端点,例如 Ollama 或 llama.cpp。记忆保存在本地 SQLite 文件中。未声明任何 API 密钥或环境变量。
安装
在 SourceWeft 中
- 打开 控制台中的 Orma Memory,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Orma (ഓർമ്മ)
Orma (Dravidian / Malayalam for "memory" or "recollection") is an episode-first, zero-latency long-term memory layer built specifically for local, open-weight LLMs (3B–8B models on consumer 8–16 GB laptops).
[PyPI Version] [License] [Python 3.10+] [Tests]
Orma can be used in two ways:
- As a native Python SDK (
from orma import Memory) for direct integration into your agents, chatbots, and apps (like Mem0 and Cognee). - As an OpenAI-compatible proxy (
orma proxyororma up) that transparently adds long-term memory to any LLM tool, client, or framework with zero code changes.
Everything runs locally in SQLite with sqlite-vec and fast on-device embeddings—no external servers, no cloud API keys, and zero data loss.
Quick Navigation
- Why Orma? (Comparison with Mem0 & Cognee)
- Empirical Benchmarks: Tokens & Latency
- Architecture & Data Flow
- Installation & Quickstart
- Usage Options
- Inhibitory Control & Anti-Pattern Prevention (Negative Memory)
- Multi-User & Multi-Tenant Isolation
- CLI Reference
- Cognitive & Mathematical Architecture
- Configuration Switches
Why Orma vs. Mem0 & Cognee?
Most agent memory frameworks (like Mem0 or Cognee) were designed for massive cloud models (GPT-4o, Claude 3.5 Sonnet) and enterprise graph databases:
- They freeze chat turns: Calling an LLM synchronously on every
add()causes 5–15 second freezes on local machines. - They hallucinate graphs: 3B models struggle with complex entity-relation extraction and emit malformed JSON or inverted relations.
- They permanently corrupt facts: Prompting small models with destructive
DELETE / UPDATEinstructions leads to accidental data loss.
The Orma Approach
- Episodes are the memory: Every conversation turn, document, or tool log is kept in full in an append-only log and indexed into sentences immediately.
- Zero LLM calls on recall: Recall runs in
< 25msusing hybrid vector search (sqlite-vec) + BM25 full-text search (FTS5) with bounded recency boosting (ACT-R). - Sleep consolidates state asynchronously: While the machine is idle, a background worker uses the local model to extract single-valued current states (
now true) and dated events citing exact line numbers. - Deterministic code guards: Time resolution, pronoun carry-over (anuvṛtti), and contradiction resolution are handled in verified Python code, not by trusting small model arithmetic.
Empirical Benchmarks: Tokens & Latency
Orma is benchmarked on consumer laptop hardware (Apple Silicon M2 16GB / AMD Ryzen 7) against standard episodic and graph-based memory frameworks.
1. Context Token Overhead (10 Active Memories in Prompt)
Small local LLMs (3B–8B) have limited effective attention windows and generate significantly slower as prompt size increases. Orma's Sutra Dense Packing saves 35% to 45% tokens over standard bulleted memory blocks and up to 68% over verbose narrative prose:
2. Recall & Add Latency (2,000 Episodic Records in SQLite)
Tested using scripts/latency_smoke.py over 2,000 realistic conversational turns and notes:
3. Negative Memory / Anti-Pattern Compliance Rate
Tested on local Qwen 2.5 3B Instruct across developer anti-patterns (e.g., PowerShell semicolon chaining) and strict lifestyle constraints (severe food allergies):
Architecture & Data Flow
1. Online Recall & Cognitive Retrieval Pipeline (< 25ms, Zero LLM Calls)
2. Background Sleep Consolidation & Defeasible Epistemic Logic
Installation
Or install from source for development:
Usage Option 1: Python SDK (Direct In-Code Integration)
Use the Python SDK to embed Orma directly into your agents, pipelines, or web applications:
Usage Option 2: Zero-Code Proxy (OpenAI SDK, LangChain, Cursor, Open WebUI)
Start Orma as a local proxy:
Then point any client to http://localhost:8080/v1:
With the Official OpenAI Python Client:
With LangChain:
With Open WebUI, AnythingLLM, or Cursor:
- Set OpenAI Base URL to:
http://localhost:8080/v1 - Set API Key to:
none
Usage Option 3: One-Command Web UI (orma up)
If you are using llama.cpp or Ollama with a browser web UI, run:
This immediately:
- Starts the Orma memory proxy on port 8080.
- Automatically opens your default web browser to
http://127.0.0.1:8080/#/. - Passes through the web UI frontend while transparently routing all chat completions through Orma's memory layer.
Usage Option 4: Model Context Protocol (MCP) Server for Coding Assistants
Orma natively speaks the Model Context Protocol (MCP) over standard stdio. This gives coding agents (Claude Code, Cursor, Antigravity IDE, Windsurf, Roo Code, Hermes) persistent, zero-latency memory across editing sessions without session amnesia.
In Claude Code:
In Cursor (.cursor/mcp.json or Settings > MCP):
In Windsurf / Antigravity IDE / Roo Code (mcp.json):
One-Click Install via Smithery.ai:
Tools Exposed to Agents:
orma_recall(query, space): Returns token-budgeted, Sutra-packed active facts, anti-patterns, and past decisions (< 20ms).orma_remember(text, kind, role, space): Permanently records a project decision, architecture rule, or user constraint. Setkind="anti_pattern"to mark a forbidden mistake to avoid.orma_forbid(rule, space): Directly registers a hard anti-pattern or prohibited behavior (e.g., "Never chain PowerShell commands with semicolons").orma_facts(space, include_history): Inspects all active canonical truths without running a search.orma_forget(state_id, space): Closes an obsolete or superseded constraint.
Inhibitory Control & Anti-Pattern Prevention (Negative Memory)
A pervasive failure mode in AI coding assistants and small LLMs is forbidden mistake recurrence: when a user says "Stop using semicolons to chain terminal commands in PowerShell", standard autoregressive models place high attention weight on the word semicolon and continue repeating the exact same error.
Orma introduces Inhibitory Control:
- Schema-Level Attribution: Negative rules are identified during sleep extraction with
prohibited: trueor directly registered viaorma_forbid(rule). - Sutra Inhibitory Hoisting: Prohibited states are rendered as
[FORBIDDEN: <rule>]and hoisted to the very top of the system prompt (above all positive facts and conversation history). - Dynamic Negative Framing: Orma dynamically injects explicit negative constraint semantics into the system prompt whenever anti-patterns are present:
- Universal Applicability: Works identically for developer pain points (terminal syntax, forbidden dependencies, deprecated API calls) and personal constraints (severe allergies, tone boundaries, forbidden buzzwords).
Multi-User & Multi-Tenant Isolation
Orma supports isolated memory spaces out of the box so multiple users or agent sessions don't contaminate each other's memories:
- In Python SDK:
- In HTTP Requests / Proxies:
Pass the
x-orma-spaceheader or"user"field:
CLI Reference
Orma provides a command-line tool for managing your memory:
Memory Prompt Output Format (Sutra Dense Packing)
When Orma recalls memories, it packs them into an unambiguous, high-density symbolic bracket representation (saving 35–45% context tokens over conversational prose):
(Note: Can be toggled back to classic natural language section blocks via enable_sutra_packing = False)
Cognitive & Mathematical Architecture
Orma integrates established principles from cognitive science, stochastic point processes, and non-monotonic logic directly into its zero-latency retrieval engine:
1. Hawkes Self-Exciting Temporal Process (enable_hawkes)
Cognitive Rationale: Human dialogues exhibit natural clustering and temporal burstiness (Hawkes 1971, Kleinberg 2002). When a user brings up a topic (e.g., an ongoing project or medical symptom), subsequent exchanges revolve around that cluster. Standard recency decay either forgets past topics too fast or keeps them active too long.
Mathematical Formulation:
- Burst Amplitude (
alpha = 0.4): Boosts items accessed in active conversational bursts. - Decay Constant (
beta = ln(2) / 1800): A 30-minute half-life ensures topics discussed earlier in a session maintain strong conversational momentum without lingering indefinitely into future days. - Bounded Ranking: Implemented in orma/recall/rank.py as a bounded additive boost so temporal bursts never override exact factual matches.
2. Ebbinghaus Spaced Repetition Stability (enable_ebbinghaus)
Cognitive Rationale: The human forgetting curve (Ebbinghaus 1885, Cepeda et al. 2008) demonstrates that memory retention decays exponentially, but each spaced retrieval increases the memory's underlying stability (half-life). A fact stated once in passing should gracefully fade, whereas a fact confirmed across 4 different days should remain permanently accessible.
Mathematical Formulation:
- Baseline Stability (
S0 = 2.0days): Initial stability for a single mention. - Rehearsal Gain (
gain = 0.5): For every subsequent citation or spaced rehearsaln, memory stability expands linearly, lengthening the half-life before decay. - Dual Protection: Single-pass noise drops out of recall candidate pools, while repeated preferences resist decay for months.
3. ACT-R Spreading Activation & Anderson's Fan Effect (enable_spreading_activation)
Cognitive Rationale: Human memory recalls information associatively (Anderson 1983). When asked "Where should I go for my toothache?", the query may not contain the doctor's name, but the concept of toothache is associatively linked to dentist and Dr. Rao. Traditional graph databases (e.g. Neo4j) add 50–150ms of network overhead. Orma executes associative graph traversal directly within SQLite using indexed adjacency tables.
Mathematical Formulation:
- Source Seed Extraction: Seed entities are identified from hybrid text matches and active states.
- The Fan Effect: John R. Anderson's Fan Effect proves that associative activation spreading from a concept is inversely proportional to the number of facts associated with it:
- A specific entity (e.g.,
"Dr. Rao"withFan = 2) channels 50% of its associative energy directly to the target clinic state. - A general hub (e.g.,
"Pune"withFan = 60) dissipates its energy across dozens of states, preventing generic concepts from hijacking the recall budget.
- A specific entity (e.g.,
4. Defeasible Epistemic Logic (enable_defeasible_logic)
Cognitive Rationale: Real-world beliefs are non-monotonic. When a user states:
"I drink black coffee every morning." followed later by: "When I have a sore throat, I drink ginger tea with honey."
Naive memory systems (like Mem0 or basic graph extraction) detect a contradiction on the entity-attribute (user, drink) and destructively overwrite the baseline habit.
Epistemic Rule Engine:
- Orma inspects assertions via schema attribution (
item.conditionextracted by the model during sleep) rather than brittle keyword matching. - Categorical Assertions (
condition: ""e.g.,"I moved to Bangalore"): Trigger state supersession (active = 0, superseded_by_id = new_state_id). - Defeasible Overrides (
condition: "sore throat"e.g.,"When sick, drink tea"): Registered as conditional exceptions without closing or corrupting the baseline categorical truth. Both facts are preserved in context.
5. Adaptive Noise Floor Calibration & Reciprocal Rank Fusion
Algorithmic Rationale: Small embedding models (e.g., 384-dimensional bge-small-en-v1.5) suffer from geometric concentration on high-dimensional unit hyperspheres—unrelated sentences frequently score 0.45–0.55 cosine similarity by pure random chance.
- Noise Floor Estimation: Orma dynamically samples pairwise distances to compute the 50th-percentile noise floor of the embedding space.
- Similarity Floor Truncation: Scores below the space noise floor carry zero evidential weight.
- Reciprocal Rank Fusion (RRF): Fuses exact keyword recall (FTS5 BM25) with semantic vector search (sqlite-vec) with zero hyperparameter tuning.
6. Sutra Context Encoding (enable_sutra_packing)
Cognitive & LLM Rationale: Small 3B models are heavily trained on code and structured JSON. Natural language narrative memory blocks ("Now true:", "Things said before:") waste precious context budget on formatting boilerplate and can cause models to ask redundant clarifying questions.
- Dense Declarative Syntax: Packs states, conditions, events, and outdated lineages into atomic bracketed forms (
[user.attribute: value (metadata)]). - Token Savings: Reduces prompt memory overhead by 35% to 45%, providing faster generation speeds and more room for user instructions.
- Zero Syntax Bleed: Formatted to ensure instruction-tuned models absorb the knowledge as background system facts without outputting brackets to the user.
7. Inhibitory Control & Attention Hoisting
Cognitive & Neuro-Symbolic Rationale: In human cognitive neuroscience, executive inhibitory control (prefrontal cortex) suppresses prepotent motor or verbal impulses. In autoregressive Transformers, negative phrasing ("do not use X") paradoxically increases the probability of generating X because token attention activates on the semantic representations of the mentioned words.
- Hoisting Precedence: Rather than interweaving negative rules inside narrative facts, Orma isolates negative boundaries into
[FORBIDDEN: <rule>]tokens and places them at the very beginning of the system prompt. - Instruction-Tuning Alignment: Modern instruction-tuned models (e.g. Qwen 2.5, Llama 3.2, Claude 3.5) treat top-level boundaries as hard system constraints when defined prior to task context.
- Dual Channel Registration:
- Declarative Extraction: Asynchronous sleep maps "never use semicolon in terminal" to
prohibited = Trueand namespaced attributeforbidden_<name>. - Immediate MCP Tool: Coding assistants directly call
orma_forbid(rule)to establish an instant guardrail without waiting for background consolidation.
- Declarative Extraction: Asynchronous sleep maps "never use semicolon in terminal" to
Storage & Data Durability (100% Local & Persistent)
- Single File SQLite Storage: All memories reside in
~/.orma/memory.dbwith Write-Ahead Logging (WAL) enabled. - Survives Restarts & Power Cycles: You can shut down
orma up, restart your machine, or close your terminal at any time; your complete memory state, episodic history, and consolidated facts remain permanently stored. - Lossless Append-Only: Episodes are never destructively overwritten or pruned by hallucinating models. You can inspect or re-consolidate your history anytime with
orma facts --history.
Configuration & Ablation Switches
Every mechanism in Orma can be independently configured or ablated in orma/config.py or passed via OrmaConfig:
License
Distributed under the Apache-2.0 License. See LICENSE for more information.
来源:README.md,提交 1583d04
工具
0版本历史
1- v0.1.13最新Nov 1, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
其他 Memory 集成

Memory.fit
fit.memory官方发布者
托管式 Memory.fit 服务器,让 AI 读取你的训练、睡眠、恢复与饮食数据,并写回每周计划、每日目标和饮食计划。
pg.ddx.io: the PostgreSQL community's memory
io.ddx.pg官方发布者
pg.ddx.io: the PostgreSQL community's memory 的托管 MCP 服务,由 pg.ddx.io 发布;无需登录;Streamable HTTP;29 个工具。
var.gg Naming Memory
gg.var官方发布者
远程 MCP 服务器,可根据领域概念推荐并检索韩、日、中、越、英多语言的代码标识符名称,并提供 ERD 结构查询。

Counterparts
ai.counterparts
面向 Claude Code 与 Claude Desktop 的本地优先长期记忆:助手自行写下关于你和项目的笔记,并在之后的会话中回忆起来。

LAHZE - Persian AI Memory Platform
由 GitHub 账号 pedramgholizadeh 发布
以波斯语为先的地理记忆平台:发现地点,起草并发布仅限波斯语的记忆。AI 翻译