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


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

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


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

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


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

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


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

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


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

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


ディフュージョンモデルGUI「ComfyUI」:魔法の呪文で画像を創る!

ComfyUIは、まるで魔法少女が魔法のアイテムを使って呪文を唱えるように、画像を生成するAIモデル「Diffusion Model」を直感的に操作できるグラフィカルユーザーインターフェース(GUI)です。通常の画像生成AIは、呪文(プロンプト)を入力するだけでもすごいのですが、ComfyUIを使うと、まるで魔法の回路図を描くように、様々な処理を組み合わせてもっと複雑で美しい画像を、まるで自分の手で描いたかのように作れてしまうんです!


【攻略本】RAG_Techniques:エンジニアのためのAI検索コンボ技・完全マスターガイド

NirDiamant/RAG_Techniques は、AI開発の世界における「最新アーケードゲームの攻略ガイド」のようなリポジトリです。普通のRAG(検索拡張生成)が「パンチマシン」だとしたら、ここは「コンボ技」や「隠しコマンド」が満載の格闘ゲーム会場といったところでしょうか。


CursorやLangChainを使いこなせ!エンジニアの価値を最大化するAI活用ロードマップ

今日は、中国のスーパーエンジニア「魚皮(Yupi)」さんが公開している最強のAIリソース集 「liyupi/ai-guide」 について解説しちゃうわね。「AIが多すぎて何から手をつければいいの!?」ってパニックになってるそこの君、落ち着いて。このリソースは、エンジニアにとっての「宝の地図」みたいなものなんだから!


Qlibで始めるAI投資:Gメン流データ分析と戦略構築の極意

「さて、今日の獲物…じゃなかった、今日ご紹介するツールは、巷で話題のMicrosoft Qlibだ!」(Gメン風に鋭い目つきで)「このQlib、ただのツールじゃないぜ。AIを使った投資プラットフォームで、俺たちソフトウェアエンジニアにとっても、まるで万引き犯を見つけるGメンのように、市場の怪しい動きをいち早く察知して、利益につなげるための強力な武器になるんだ!」