AIの知性を飛躍させる「MemoriLabs/Memori」入門:記憶の保存と検索のアーキテクチャ


AIの知性を飛躍させる「MemoriLabs/Memori」入門:記憶の保存と検索のアーキテクチャ

MemoriLabs/Memori

2025-12-03

ご提示いただいたオープンソースの記憶エンジン「MemoriLabs/Memori」について、ソフトウェアエンジニアの視点から、その有用性、導入方法、そしてサンプルコードの例を、コントのお化け屋敷のように面白おかしく、しかし技術的に分かりやすく解説しますね!

「MemoriLabs/Memori」は、LLM(大規模言語モデル)やAIエージェントに、まるで人間のような「記憶」を与えるためのオープンソースのエンジンです。

普通のLLMは、セッションが終わるとすぐに会話の内容を忘れてしまう、まるで「1分前のことも忘れる幽霊」のようなものです。この「記憶喪失」を克服し、過去の経験や知識を学習・活用できるようにするのがMemoriの役割です。

これはまさに、私たちが作るAIアプリケーションの「ユーザー体験(UX)」と「知性」を劇的に向上させるための、強力なツールです。

メモリの機能 お化け屋敷コントでの状況 技術的なメリット(エンジニア視点)
長期記憶 (Long-Term Memory)ユーザー
「前にカボチャのランプが好きって言ったよな?」
幽霊
「...え?誰だっけ?」
Memori
「お客様は前回、オレンジと黒のジャック・オ・ランタンを熱望されていました!」
文脈維持とパーソナライズ: 以前の対話や行動履歴に基づいて、関連性の高い情報や好み(ユーザーの好きな色、プロジェクト名など)を次の対話に自動で組み込める。
短期記憶 (Short-Term Memory)幽霊
「あれ?さっきどこまで脅かす話したっけ?」
Memori
「今、3番目の『うらめしや』を言いかけたところです!」
連続したタスク処理: 複雑な一連の指示(例:データベース検索 → 結果を加工 → レポート作成)の中間ステップを忘れずに保持し、エージェントの処理能力を向上させる。
反省・学習 (Reflection & Learning)幽霊
「どうやったらもっと怖がってくれるかな?」
Memori
「前回の大きな音よりも、囁き声の方が効果的でしたよ。」
エージェントの自己改善: 過去の対話やタスクの結果を分析し、**「メタ記憶」**として知識を抽象化・構造化することで、次の行動の品質を向上させる。

MemoriはPythonベースで、非常にシンプルに導入できます。まるでアプリに記憶の魂を吹き込むようなものです。

まずは、Pythonの環境にMemoriライブラリをインストールします。

# pipで図書館から記憶の巻物を手に入れる
pip install Memori

Memoriの核となるのは、情報を保持し、検索し、LLM(あなたのAI)に提供するサイクルです。

記憶の格納 (Store) エージェントが何かを経験したり、ユーザーから情報を聞いたりしたら、それをMemoriに「思い出」として保存します。

記憶の検索 (Retrieve) ユーザーからの新しい質問が来たら、Memoriに保存されている「思い出」の中から、その質問に関連性の高いものを検索します。

LLMへの提供 (Context Injection) 検索した関連情報(コンテキスト)を、新しいユーザーの入力と一緒にLLMに渡します。

賢い応答 (Intelligent Response)
LLMは渡されたコンテキストを使って、過去を踏まえた賢い返答を生成します。

ここでは、Memoriを使って、以前の会話を覚えているシンプルなチャットボットを作成する例を示します。

# おまじないのようにライブラリをインポート
from Memori import Memori

# 1. 記憶エンジンの初期化
# 仮のデータストアとしてインメモリを使用(実際のプロジェクトではDBを使う)
memori_agent = Memori(
    agent_id="ghost_assistant_001",
    llm_model_name="openai/gpt-3.5-turbo", # 使うLLMモデルを指定
    llm_api_key="YOUR_API_KEY", # APIキー
)

# 2. 最初の対話と記憶の格納
def first_interaction():
    print("--- 最初の日の会話 ---")
    
    # ユーザーからのインプット
    user_input = "私の名前はアキラです。週末はいつもホラー映画を見ています。"
    # LLMが応答を生成
    llm_response = f"アキラさん、ホラー映画がお好きなんですね!それは素晴らしいです。"
    
    #  記憶をMemoriに保存
    memori_agent.store(
        input=user_input, 
        output=llm_response, 
        tags={"topic": "introduction"}
    )
    print(f" Memoriに記憶を保存しました: {user_input}")

# 3. 日を置いての対話と記憶の活用
def second_interaction():
    print("\n--- 翌日の会話(記憶の呼び出し) ---")
    
    # ユーザーからの質問
    user_query = "私が好きな映画のジャンルは何だったっけ?"
    
    #  Memoriが過去の関連情報を検索(これが「記憶」の正体)
    # 検索結果がLLMに渡すコンテキストとなる
    context = memori_agent.retrieve(user_query)
    
    print(f" Memoriが呼び出した過去の記憶:\n{context}")
    
    # LLMへのプロンプト構成
    # 検索されたコンテキストをプロンプトに組み込むのが鍵!
    prompt = f"以下の過去の会話(コンテキスト)に基づき、ユーザーの質問に答えてください。\n\nコンテキスト:\n{context}\n\nユーザーの質問: {user_query}"
    
    # 応答生成 (※ここではLLMのAPI呼び出しを省略し、手動で賢い応答をシミュレート)
    final_response = "あなたの過去の会話から、**ホラー映画**がお好きだと記憶しています。週末が楽しみですね!"
    
    print(f"\n エージェントの返答:\n{final_response}")


# 実行!
first_interaction()
second_interaction()
--- 最初の日の会話 ---
 Memoriに記憶を保存しました: 私の名前はアキラです。週末はいつもホラー映画を見ています。

--- 翌日の会話(記憶の呼び出し) ---
 Memoriが呼び出した過去の記憶:
[...以前の対話や、その対話から抽出された重要な事実がリストアップされる...]
- ユーザーの名前はアキラ
- ユーザーは週末にホラー映画を見るのが好き
- タグ: introduction

 エージェントの返答:
あなたの過去の会話から、**ホラー映画**がお好きだと記憶しています。週末が楽しみですね!

Memoriを使うことで、あなたのAIエージェントは、単なる「コントの幽霊」から、「過去の縁を覚えている、賢い執事のような幽霊」へと進化を遂げるでしょう!


MemoriLabs/Memori




【ガンダムコントで解説】AIエージェントに「長期記憶」を持たせる!GibsonAI/Memori 導入と活用法

Memoriは、LLM(大規模言語モデル)やAIエージェントに、人間のように「記憶」を持たせ、文脈(コンテキスト)を理解させるためのオープンソースのメモリーエンジンです。これはまるで、ホワイトベース隊が「ザビ家の陰謀」や「アムロのわがまま」といった過去の経験や人間関係を、戦闘のたびにいちいち思い出さなくても、自然に判断を下せるようになるのと同じです!


22世紀のチャット運用術:AstrBotによるマルチプラットフォーム抽象化とエージェント基盤

のび太「ドラえも〜ん!LINEとかDiscordとか、いろんなSNSで動く自分専用のAI秘書を作りたいんだけど、設定が難しすぎて頭がパンクしそうだよ〜!」ドラえもん「やれやれ、のび太くんは相変わらずだね。でも安心しなよ!そんなときのために……(四次元ポケットをガサゴソ)……『AstrBot(アストラ・ボット)』!!」


AIアプリケーション開発のためのレシピブック

今日は「Haystack」という、AIの世界で最近話題の新しいカクテルを紹介させてください。これ、ただのAIじゃなくて、色々なAIの材料を組み合わせて、お客様の好みにぴったりの一杯を作り出すためのツールなんです。ソフトウェアエンジニアの視点から言えば、Haystackは例えるなら「AIアプリケーション開発のためのシェイカーとレシピブック」です。


現場直結!Difyで始めるプロダクションレディなエージェントワークフロー入門

(現場は薄暗い取り調べ室。刑事役の私と、容疑者役のDifyが向かい合っています)私(刑事) さて、Difyくん。キミは一体何者なんだ?「Production-ready platform for agentic workflow development」… ソフトウェアエンジニアにとって、どういう意味があるのか、正直に話してもらおうか!


ソフトウェアエンジニアのためのAIエージェント入門:自律的なデバッグと実行のループを設計する

「本当のAIエージェント(Claude Codeのようなもの)」をどう作るのか、実際に手を動かした時のワクワク感を込めて解説します!これまで僕たちが使ってきたチャットAIは、言わば「アドバイスをくれる同僚」でした。でも、Claude CodeのようなAIエージェントは違います。彼は「実際にキーボードを叩いて、コマンドを実行し、バグを直して、テストを通す実務担当者」なんです。


PythonとNode.jsの力を解き放つ。ByteDanceのオープンソース「Deer-flow」でエージェント開発を加速させる

エンジニアの視点で見ると、これって「ただのチャットAI」とは全然別物。まるで、一歩先を読んで複雑な家事(仕事)を全部片付けてくれる、すごく有能な執筆・開発パートナーって感じかな。「どれが一番似合うかな?」って水着選びで迷うみたいに、Deer-flowの可能性を一緒に探っていこう!


新米エンジニアよ、AIの基礎を叩き込め!「ML-For-Beginners」で差をつけろ!

今日はな、テメーらみたいなピヨピヨの新入りでも、一丁前にAIとか機械学習とか言えるようになっちまう、とっておきのモンを紹介してやるぜ!それがこれだ、どーん!microsoft/ML-For-Beginners [python, education


AIウェアラブルデバイス「omi」と恋に落ちるエンジニアの恋愛相談

まず、omiは一言でいうと「音声認識AIをウェアラブルデバイスで実現するためのツールキット」です。まるで、あなたの言葉を誰よりも理解してくれる、優しい恋人のような存在。従来の音声認識システムは、スマホやPCに依存することが多かったですよね。でも、omiは違います。AIを小さなウェアラブルデバイスに組み込んで、身につけるだけで話した言葉をリアルタイムでテキスト化したり、AIが応答したりする未来を夢見ているんです。


【実録】LobeHub導入ガイド:MCP対応エージェントで開発体験を劇的に変える方法

正直なところ、LLM(大規模言語モデル)を仕事で使うとき、「ブラウザのチャット画面とエディタを行き来するのが面倒だな」とか「自分専用の最強アシスタントをサクッと作りたいな」と思ったことはありませんか?LobeChatは、まさにその「痒い所に手が届く」エンジニア垂涎のツールなんです。


「彼女の下着は何色?」という問いにAIが即答できる理由 — CocoIndexによる動的データ処理

「彼女の下着は何色?」という、一見すると AI が答えに窮しそうな(あるいはプライバシーや文脈に依存する)「特定の、移り変わる、あるいは非常に個人的なデータ」を扱う場面で、なぜこのツールが最強の味方になるのか、という切り口でお話しします。一言でいうと、「情報の更新(増分更新)に特化した、爆速の AI データ整理棚」です。