EverMind が公開したオープンソースの Markdown フォーカス型エージェントメモリランタイム「EverOS」を紹介
EverMind が公開したオープンソースの「EverOS」は、LLM の状態非対称性を解消するため、Markdown ファイルを記憶源として活用し、BM25 とベクトル検索を融合させたハイブリッド型エージェントメモリランタイムを提供する。
キーポイント
Markdown ベースの永続的メモリ構造
ベクトルデータベースへの依存を避け、編集可能な Markdown ファイルを真実源(Source of Truth)とし、Git バージョン管理や外部エディタでの閲覧を可能にする。
ハイブリッド検索エンジン mRAG
SQLite と LanceDB を活用し、BM25 によるキーワード検索、ベクトル検索、スカラーフィルタリングを単一クエリで統合した「mRAG」を実現する。
自己進化するスキルとプロシージャルメモリ
ユーザー側とエージェント側のメモリを分離し、ケースを再利用可能な「スキル」として抽出することで、エージェントが経験から学習・進化できる仕組みを提供する。
軽量なアーキテクチャとローカルファースト
MongoDB や Elasticsearch などの重厚なインフラを不要とし、単一の Python ライブラリで完結させることで、開発コストと運用負荷を大幅に削減する。
自己進化型手続き記憶とスキル共有
完了したタスクを「ケース」として記録し、反復される成功パターンをオフラインで抽出して再利用可能な「スキル」に変換する仕組みにより、エージェントが使用を通じて改善され、手動カキュレーション不要でチーム全体でスキルを共有できます。
ハイブリッド検索と厳密なデータスコーピング
BM25 とベクトル検索を組み合わせたハイブリッド方式に加え、user_id や agent_id などの識別子による検索スコープ機能により、マルチエージェント環境でのデータ分離を確実に担保しています。
シンプルで堅牢なアーキテクチャとベンチマーク
Markdown ファイル、SQLite、LanceDB を組み合わせたローカルスタックを採用し、LoCoMo で 93.05% の精度を達成するとともに、p95 レトリバルレイテンシを 500ms 未満に抑えています。
影響分析・編集コメントを表示
影響分析
このリリースは、AI エージェント開発における「コンテキストの喪失」という根本的な課題に対し、人間が扱いやすい Markdown ファイルを基盤とした解決策を提示しており、特に小規模チームや個人開発者にとって運用コストと複雑さを劇的に低下させる可能性があります。また、ベクトル検索とキーワード検索を統合するハイブリッド手法は、RAG システムの精度向上における標準的なベストプラクティスへと急速に定着しつつある技術動向を反映しています。
編集コメント
ベクトルデータベースのみに依存しない、人間が直接編集可能なメモリ形式への回帰は、エージェントの透明性と保守性を高める重要な転換点と言えます。特に小規模開発チームにとっては、複雑なインフラ管理なしで高機能な RAG を実装できる画期的なツールとなるでしょう。
EverMind は、AI エージェント向けのオープンソース・メモリランタイムである EverOS をリリースしました。これは Apache 2.0 ライセンスの下で提供されています。この製品が解決しようとしているのは、エージェント構築者が早期に直面する問題です。すなわち、大規模言語モデルはステートレス(状態を持たない)であり、会話が終了すると文脈も消えてしまうという課題です。
EverOS は異なる基盤を提案します。メモリをベクトルデータベース内に閉じ込めるのではなく、メモリをプレーンな Markdown ファイルとして書き出します。これらのファイルが、エージェントがセッションを超えて読み取り、編集し、検索する真実の源となります。
TL;DR(要約)
EverOS は、エージェントのメモリを編集可能な Markdown として保存し、SQLite と LanceDB でインデックス付けます。
ハイブリッド検索では、BM25、ベクトル検索、スカラーフィルタリングを単一のクエリで統合します。
ケースは再利用可能なスキルに凝縮され、エージェントに手続き的かつ自己進化型のメモリを提供します。
ベンチマークスコアは強力ですが、EverMind によって報告されたものであり、実際のワークロードでの検証が必要です。
Apache 2.0 のオープンソースライセンスの下で提供され、クラウド版とセルフホスト版の機能は同等です。
EverOS とは何か?
EverOS は Python ライブラリであり、ローカルファーストのメモリランタイムです。サーバーとして動作し、CLI(コマンドラインインターフェース)および FastAPI HTTP API を備えています。全体を通じて非同期処理を第一に設計されています。既存のエージェントループに組み込むものであり、スタックを再構築するものではありません。
この設計では、2 つのメモリトラックを分離しています。ユーザー側のメモリには、プロファイル(Profiles)、エピソード(Episodes)、事実(Facts)、予見(Foresights)が保持されます。一方、エージェント側のメモリには、ケース(Cases)とスキル(Skills)が保持されます。これらを分離することは珍しいアプローチであり、多くのライブラリはチャット履歴のみを中心に据えています。
すべての記録は .md ファイルとして保存されます。これらは開いて編集したり、grep で検索したり、Git でバージョン管理したり、Obsidian で閲覧することも可能です。EverAlgo は独立したステートレスライブラリであり、抽出アルゴリズムを担当します。EverOS は結果のオーケストレーションと永続化を担います。
エンドポイントスタックは OpenAI プロトコルに準拠しています。ベース URL を変更するだけで、OpenAI、OpenRouter、vLLM、Ollama、または DeepInfra に接続できます。これにより、統合は単一の設定変更で済むように保たれています。
ランタイムはデフォルトでローカルファーストです。データが環境外に出る必要はなく、すべてのレイヤーを検査可能です。自己ホストしたくないチーム向けの管理された EverOS Cloud オプションも存在します。両者は同じ SDK、検索エンジン、メモリ形式を共有しています。
アーキテクチャ — Markdown、SQLite、および LanceDB
EverOS は 3 つのストレージスタックを使用します。Markdown が真実の源です。SQLite は状態とキューを管理し、LanceDB はベクトル、BM25、スカラーフィルタを管理します。
これは典型的な本番環境でのメモリセットアップよりも意図的に軽量に設計されています。MongoDB、Elasticsearch、Milvus、Redis、または Kafka の使用は必須ではありません。個人開発者や小規模チームにとっては、運用コストが低下します。
検索はハイブリッドです。単一の LanceDB クエリで、BM25 キーワードマッチング、密集ベクトル検索、スカラーフィルタリングを組み合わせます。EverMind はこのマルチモーダル検索パスを mRAG として販売しています。
カスケードインデックス同期により、ファイルとインデックスが常に整合します。.md ファイルの編集はファイルウォッチャーをトリガーし、インデックスを再同期させます。メモリは古くなることなく、いつでも検査可能です。
検索機能は識別子間でも独立して動作します。user_id、agent_id、app_id、project_id、session_id によって検索範囲を限定できます。この限定機能は、データ分離が必要なマルチエージェント環境やマルチユーザー展開において極めて重要です。
メモリが自己進化する仕組み — ケースからスキルへ
特徴的な機能として手続き型メモリがあります。EverOS は完了した各エージェントタスクを「ケース」として記録します。繰り返し成功するパターンはオフラインで抽出され、再利用可能な「スキル」へと昇華されます。
これが「自己進化」という主張の核心です。スキルはエージェントチーム間で共有され、手動でのキュレーションもハードコーディングも不要です。目標は、セッションごとに再起動するのではなく、使用を通じて改善していくエージェントを実現することです。
バージョン 1.1.0 ではライフサイクル関連の機能がさらに強化されました。これにより、分類体系とトピック検索機能を備えたソース元に基づく Markdown ページ向けの Knowledge APIs が導入されました。また、Reflection というオフラインプロセスも追加され、セッション間でエピソードクラスタを統合し、プロファイルやスキルを洗練させます。
メモリモデルはシンプルです。事象記憶(Episodic memory)は「何が起きたか」に答え、プロファイル記憶(Profile memory)は「このユーザーは誰か」に答え、手続き型記憶(Procedural memory)は「このタスクをどう行うか」に答えます。
ベンチマーク
EverMind チームによると、LoCoMo で 93.05%、LongMemEval で 83.00%、HaluMem で 93.04% のスコアを達成しています。また、p95 レトリバルレイテンシが 500 ミリ秒未満であることも報告されています。LoCoMo と LongMemEval は長期的な会話記憶を測定するものであり、HaluMem はメモリの幻覚(hallucination)を対象としています。これらの数値は EverMind の投稿に基づくものです。
以下の表では、EverOS を具体的な設計次元において一般的な代替案と比較します:
DimensionEverOSNaive RAGFull context windowOther memory libraries
Source of truthPlain Markdown .md filesVector DB recordsPrompt onlyAPI or database state
Local stackMarkdown + SQLite + LanceDBVector DB + app codeNoneOften managed services
RetrievalHybrid BM25 + vector + scalarDense vector onlyNone (no retrieval)Varies
Procedural memoryCases distilled into SkillsNoneNoneRare
Multimodal ingestPDF, image, Office, URL in one callManual pipelineVia context onlyPartial
LoCoMo accuracy93.05% (EverMind-reported)—N/A (context limit)Varies
LicenseApache 2.0VariesN/AVaries / proprietary
Use Cases, With Real Examples
The library links to working integrations. They show what persistent memory enables in real products.
Hive Orchestrator is a browser-native hive-mind for CLI coding agents. Claude Code, Codex, Gemini, and OpenCode collaborate as real PTY processes through a shared team protocol.
Reunite uses semantic memory for public-value search. Parents describe what they remember, children describe what they recall, and the system surfaces connections.
Other examples span healthcare and hardware. They include an Alzheimer's memory assistant and an AI wearable. The wearable listens to everyday life and converts it into memory. A study buddy with self-evolving memory is also among the examples. The wider ecosystem adds a Claude Code plugin and an MCP-based memory layer for coding assistants.
A Five-Minute Code Walkthrough
インストールには標準的な Python ツールを使用します。EverOS には Python 3.12 以降が必要です。ローカルデモでは API キーは不要です。
コピー コードをコピーしました別のブラウザを使用してください
Python 3.12+ が必要
uv pip install everos # または:pip install everos
everos demo # ローカルの教育用ビジュアライザー、キー不要
everos init .env に OpenRouter と DeepInfra のキーを貼り付けます
everos server start FastAPI サーバーを開始します
curl http://127.0.0.1:8000/health # -> {"status":"ok"}
メモリの追加と検索は、単純な HTTP コールです。以下の例では事実を保存し、抽出を強制してからそれを取得します。
コピー コードをコピーしました別のブラウザを使用してください
1) 短い会話を追加する
curl -X POST http://127.0.0.1:8000/api/v1/memory/add \
-H 'Content-Type: application/json' \
-d '{"session_id":"demo-001","app_id":"default","project_id":"default",
"messages":[{"sender_id":"alice","role":"user","timestamp":1750000000000,
"content":"I love climbing in Yosemite every spring."}]}'
2) 抽出を強制するためにフラッシュする(ローカルデモ)
curl -X POST http://127.0.0.1:8000/api/v1/memory/flush \
-H 'Content-Type: application/json' \
-d '{"session_id":"demo-001","app_id":"default","project_id":"default"}'
3) 検索して取得する
curl -X POST http://127.0.0.1:8000/api/v1/memory/search \
-H 'Content-Type: application/json' \
-d '{"user_id":"alice","app_id":"default","project_id":"default",
"query":"Where do I like to climb?","top_k":5}'
必ず JSON 形式で返してください。translation フィールドのみ。他のフィールド (technical_terms など) は一切追加しないこと — 余計なフィールドを書こうとして本文翻訳がトークン上限で打ち切られる事故を防ぐため:
{"translation": "インストールには標準的な Python ツールを使用します。EverOS には Python 3.12 以降が必要です。ローカルデモでは API キーは不要です。\n\nコピー コードをコピーしました別のブラウザを使用してください\n\n# Python 3.12+ が必要\nuv pip install everos # または:pip install everos\neveros demo # ローカルの教育用ビジュアライザー、キー不要\neveros init .env に OpenRouter と DeepInfra のキーを貼り付けます\neveros server start FastAPI サーバーを開始します\ncurl http://127.0.0.1:8000/health # -> {\"status\":\"ok\"}\n\nメモリの追加と検索は、単純な HTTP コールです。以下の例では事実を保存し、抽出を強制してからそれを取得します。\n\nコピー コードをコピーしました別のブラウザを使用してください\n\n# 1) 短い会話を追加する\ncurl -X POST http://127.0.0.1:8000/api/v1/memory/add \\\n -H 'Content-Type: application/json' \\\n -d '{\"session_id\":\"demo-001\",\"app_id\":\"default\",\"project_id\":\"default\",\n \"messages\":[{\"sender_id\":\"alice\",\"role\":\"user\",\"timestamp\":1750000000000,\n \"content\":\"I love climbing in Yosemite every spring.\"}]}'\n\n# 2) 抽出を強制するためにフラッシュする(ローカルデモ)\ncurl -X POST http://127.0.0.1:8000/api/v1/memory/flush \\\n -H 'Content-Type: application/json' \\\n -d '{\"session_id\":\"demo-001\",\"app_id\":\"default\",\"project_id\":\"default\"}'\n\n# 3) 検索して取得する\ncurl -X POST http://127.0.0.1:8000/api/v1/memory/search \\\n -H 'Content-Type: application/json' \\\n -d '{\"user_id\":\"alice\",\"app_id\":\"default\",\"project_id\":\"default\",\n \"query\":\"Where do I like to climb?\",\"top_k\":5}'"}
マルチモーダル取り込みはオプションの拡張機能です。everos[multimodal] をインストールすると、画像、PDF、オーディオの解析が可能になります。Office 文書の処理には追加で LibreOffice が必要であり、これは解析前にファイルを PDF に変換します。
試してみる:インタラクティブなメモリデモ
以下の埋め込みデモは、ブラウザ上で EverOS のループをシミュレートします。スニペットを追加すると、それが抽出されてタグ付けされ、ハイブリッド検索を通じて再び検索される様子を確認できます。これは説明用のデモであり、ライブサーバーには接続されていません。
(function(){
var f=document.getElementById('everos-demo-frame');
window.addEventListener('message',function(e){
if(e&&e.data&&typeof e.data.everosDemoHeight==='number'){
f.style.height=Math.max(420,e.data.everosDemoHeight)+'px';
}
});
})();
リポジトリと技術詳細をご覧ください。また、Twitter でフォローすることもできますし、15 万人以上の ML サブレッドに参加したり、ニュースレターを購読することを忘れないでください。待ってください!Telegram を使っていますか?今なら Telegram でも私たちに参加できます。
GitHub リポジトリや Hugging Face ページ、製品リリース、ウェビナーなどのプロモーションのためにパートナーシップをご希望ですか?私たちに連絡してください。
「Meet EverOS: An Open Source Markdown-First Agent Memory Runtime With Hybrid BM25 + Vector Retrieval and Self-Evolving Skills (続き 6/6)」という記事は、MarkTechPost で最初に公開されました。
原文を表示
EverMind has released EverOS, an open-source memory runtime for AI agents. It ships under an Apache 2.0 license. It targets a problem agent builders hit early: large language models are stateless. The conversation ends, and the context is gone.
EverOS proposes a different substrate. Instead of locking memory inside a vector database, it writes memory as plain Markdown files. Those files become the source of truth that agents read, edit, and search across sessions.
TL;DR
EverOS stores agent memory as editable Markdown, indexed by SQLite and LanceDB.
Hybrid retrieval blends BM25, vector search, and scalar filtering in one query.
Cases distill into reusable Skills, giving agents procedural, self-evolving memory.
Benchmark scores are strong but EverMind-reported; verify on your own workload.
It is open source under Apache 2.0, with cloud and self-hosted parity.
What is EverOS?
EverOS is a Python library and a local-first memory runtime. It runs as a server with a CLI and a FastAPI HTTP API, async-first throughout. You drop it into an existing agent loop rather than rebuilding your stack.
The design separates two memory tracks. User-side memory holds Profiles, Episodes, Facts, and Foresights. Agent-side memory holds Cases and Skills. Keeping them separate is unusual; most libraries center on chat history alone.
Every record lands as a .md file. You can open, edit, grep, and Git-version it, or view it in Obsidian. EverAlgo, a separate stateless library, handles the extraction algorithms. EverOS orchestrates and persists the results.
The endpoint stack is OpenAI-protocol compatible. It connects to OpenAI, OpenRouter, vLLM, Ollama, or DeepInfra by changing a base URL. That keeps integration close to a single configuration change.
The runtime is local-first by default. Data never has to leave your environment, and every layer is inspectable. A managed EverOS Cloud option exists for teams that prefer not to self-host. Both share the same SDK, retrieval engine, and memory format.
The Architecture — Markdown, SQLite, and LanceDB
EverOS uses a three-piece storage stack. Markdown is the source of truth. SQLite manages state and queues. LanceDB manages vectors, BM25, and scalar filters.
This is deliberately lighter than a typical production memory setup. There is no required MongoDB, Elasticsearch, Milvus, Redis, or Kafka. For solo developers and small teams, that lowers operational cost.
Retrieval is hybrid. A single LanceDB query combines BM25 keyword matching, dense vector search, and scalar filtering. EverMind markets this multimodal retrieval path as mRAG.
A cascade index sync keeps files and indexes aligned. Editing a .md file triggers a file-watcher that re-syncs the index. Memory stays inspectable without going stale.
Retrieval is also orthogonal across identifiers. You can scope a search by user_id, agent_id, app_id, project_id, and session_id. That scoping is important in multi-agent and multi-user deployments where data isolation is required.
How Memory Self-Evolves — Cases Become Skills
A distinctive feature is procedural memory. EverOS records each completed agent task as a Case. Repeated successful patterns are distilled offline into reusable Skills.
This is the ‘self-evolving’ claim, stated plainly. Skills are shared across an agent team, with no manual curation and no hardcoding. The goal is agents that improve with use instead of restarting each session.
Version 1.1.0 added more lifecycle machinery. It introduced Knowledge APIs for source-backed Markdown pages with taxonomy and topic search. It also added Reflection, an offline process that merges episode clusters and refines profiles and skills between sessions.
The memory model is simple. Episodic memory answers ‘what happened.’ Profile memory answers ‘who is this user.’ Procedural memory answers ‘how is this task done.’
Benchmark
EverMind team reports 93.05% on LoCoMo, 83.00% on LongMemEval, and 93.04% on HaluMem. It also cites sub-500ms p95 retrieval latency. LoCoMo and LongMemEval measure long-term conversational memory; HaluMem targets memory hallucination. These numbers come from EverMind posts.
The table below compares EverOS against common alternatives on concrete design dimensions:
DimensionEverOSNaive RAGFull context windowOther memory libraries
Source of truthPlain Markdown .md filesVector DB recordsPrompt onlyAPI or database state
Local stackMarkdown + SQLite + LanceDBVector DB + app codeNoneOften managed services
RetrievalHybrid BM25 + vector + scalarDense vector onlyNone (no retrieval)Varies
Procedural memoryCases distilled into SkillsNoneNoneRare
Multimodal ingestPDF, image, Office, URL in one callManual pipelineVia context onlyPartial
LoCoMo accuracy93.05% (EverMind-reported)—N/A (context limit)Varies
LicenseApache 2.0VariesN/AVaries / proprietary
Use Cases, With Real Examples
The library links to working integrations. They show what persistent memory enables in real products.
Hive Orchestrator is a browser-native hive-mind for CLI coding agents. Claude Code, Codex, Gemini, and OpenCode collaborate as real PTY processes through a shared team protocol.
Reunite uses semantic memory for public-value search. Parents describe what they remember, children describe what they recall, and the system surfaces connections.
Other examples span healthcare and hardware. They include an Alzheimer’s memory assistant and an AI wearable. The wearable listens to everyday life and converts it into memory. A study buddy with self-evolving memory is also among the examples. The wider ecosystem adds a Claude Code plugin and an MCP-based memory layer for coding assistants.
A Five-Minute Code Walkthrough
Installation uses standard Python tooling. EverOS requires Python 3.12 or newer. The local demo needs no API keys.
Copy CodeCopiedUse a different Browser
Requires Python 3.12+
uv pip install everos # or: pip install everos
everos demo # local educational visualizer, no keys
everos init # paste OpenRouter + DeepInfra keys into .env
everos server start # starts the FastAPI server
curl http://127.0.0.1:8000/health # -> {"status":"ok"}
Adding and searching memory are plain HTTP calls. The example below stores a fact, forces extraction, then retrieves it.
Copy CodeCopiedUse a different Browser
1) Add a short conversation
curl -X POST http://127.0.0.1:8000/api/v1/memory/add \
-H 'Content-Type: application/json' \
-d '{"session_id":"demo-001","app_id":"default","project_id":"default",
"messages":[{"sender_id":"alice","role":"user","timestamp":1750000000000,
"content":"I love climbing in Yosemite every spring."}]}'
2) Flush to force extraction (local demo)
curl -X POST http://127.0.0.1:8000/api/v1/memory/flush \
-H 'Content-Type: application/json' \
-d '{"session_id":"demo-001","app_id":"default","project_id":"default"}'
3) Search it back
curl -X POST http://127.0.0.1:8000/api/v1/memory/search \
-H 'Content-Type: application/json' \
-d '{"user_id":"alice","app_id":"default","project_id":"default",
"query":"Where do I like to climb?","top_k":5}'
Multimodal ingestion is an optional extra. Installing everos[multimodal] adds parsing for images, PDFs, and audio. Office documents additionally require LibreOffice, which converts files to PDF before parsing.
Try It: Interactive Memory Demo
The embedded demo below simulates the EverOS loop in your browser. Add a snippet, watch it get extracted and tagged, then search it back through hybrid retrieval. It is illustrative and does not connect to a live server.
(function(){
var f=document.getElementById('everos-demo-frame');
window.addEventListener('message',function(e){
if(e&&e.data&&typeof e.data.everosDemoHeight==='number'){
f.style.height=Math.max(420,e.data.everosDemoHeight)+'px';
}
});
})();
Check out the Repo and Technical details. Also, feel free to follow us on Twitter and don’t forget to join our 150k+ML SubReddit and Subscribe to our Newsletter. Wait! are you on telegram? now you can join us on telegram as well.
Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? Connect with us
The post Meet EverOS: An Open Source Markdown-First Agent Memory Runtime With Hybrid BM25 + Vector Retrieval and Self-Evolving Skills appeared first on MarkTechPost.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み