SmartMemory について
SmartMemoryは、LLMによる抽出と監査可能なRDFナレッジグラフ、明示的なルールを組み合わせた実験的なMCPサーバーです。追跡可能な記憶と推論を試す研究・学習向けで、製品環境での利用を想定していません。
主な機能
- 01出典情報付きの事実をRDFグラフに保存
- 02SPARQLとOWLのルールで結論を導出
- 03曖昧な事実を人が確認するフロー
- 04自然言語やPDFから事実を抽出
- 05グラフを確認するダッシュボード
活用シーン
- 01MCP対応アシスタントに追跡可能な長期記憶を付与
- 02ポリシーPDFから抽出したルールを確認・承認
- 03試作環境でニューロシンボリック推論を検証
MCP 対応
会話モードではMCPクライアントに設定するMCPサーバーとして動作し、アシスタントに記憶と論理的推論を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🧠 SmartMemory
LLM に構造化された検証可能な記憶を与えます — 会話を、AI が推論できるナレッジグラフに変換します。
自然な対話を通じて AI アシスタントにビジネスルールを教える MCP サーバーです。
注意
概念実証です。 SmartMemory は、LLM がナレッジグラフとどのように連携してルールを学習・適用できるかを探るために構築された、ニューロシンボリックアーキテクチャの実験的な実装です。本番環境での使用を意図していません — 研究や学習のための場としてご利用ください。
SmartMemory を使う理由
LLM は非常に流暢に話しますが、本当の記憶はありません。会話が続くうちに忘れてしまい、何かを結論づけた理由を説明できず、検証されていないことも平気で述べてしまいます。
SmartMemory は、欠けている要素であるシンボリックな脳を補います。
- 伝えた事実は、出典情報とともに監査可能なナレッジグラフ(RDF)に保存されます。
- ロジックは、重みの中に隠すのではなく、明示的で検査可能なルール(SPARQL/OWL)として記録されます。
- 新たな結論は導出され、追跡可能で、取り消し可能です。また、曖昧な結論は検証のためにあなたに差し戻されます。
その結果、ただ正しそうに聞こえるだけでなく、推論過程を示せるアシスタントが実現します。
できること
SmartMemory は AI アシスタントを、次の機能を備えたドメインエキスパートに変えます。
- 非同期推論 — 会話を遅らせることなく、バックグラウンドで推論を実行します(
InferenceManager)。 - 不確実性への対応 — 曖昧な事実があると、人間参加型の検証ワークフローが開始されます。
- 高度な NLP 抽出 — 複雑な文、照応関係、Turtle 形式の直接入力に対応します。
- 出典情報と監査 — 保存されるすべての事実に、その出所(UUID、ソース、タイムスタンプ)が保持されます。
- 動的なルールエンジン — 新しい SPARQL ルールをその場で学習し、適用します。
仕組み
flowchart LR
A["Natural-language<br/>conversation"] -->|LLM extraction| B["Facts"]
B --> C[("Knowledge Graph<br/>RDF / Turtle")]
C -->|SPARQL / OWL rules| D["Inference engine"]
D -->|new deductions| C
D -->|ambiguous?| E["Human-in-the-loop<br/>validation"]
E -->|approve rule / fact| C
C -->|provenance + audit| F["Verifiable answers"]
LLM は言語皮質(理解と抽出)として機能し、ナレッジグラフとルールエンジンはシンボリックメモリ(保存、ロジック、証明)として機能します。どちらか一方だけでは不十分ですが、組み合わせることでニューロシンボリックになります。
2 つの利用方法
| 💬 対話モード — 「脳」 | 🏗️ 監督モード — 「工場」 | |
|---|---|---|
| 対象 | LLM クライアント(Claude Desktop など)を使う個人 | チーム、開発者、ヘビーユーザー |
| 目的 | 会話しながら、アシスタントに事実を記憶させ、ロジックを学習させる | 文書(PDF)から数千ものルールを抽出し、グラフを可視化する |
| 方法 | MCP サーバーとして設定する | Docker でダッシュボード一式をデプロイする |
| セットアップ | セットアップへ移動 ↓ | セットアップへ移動 ↓ |
クイックスタート
| やりたいこと… | 移動先 |
|---|---|
| 5 分で起動する | クイックスタートガイド |
| 高度なデモを試す | デモ手順 |
| 内部の仕組みを理解する | アーキテクチャ · ニューロシンボリックの原則 |
| プロバイダーを設定する | 設定リファレンス |
| 問題を解決する | トラブルシューティング |
| ドキュメントをすべて見る | ドキュメント一覧 |
モード 1 — 対話モードのセットアップ(MCP)
LLM に長期記憶と論理的な推論能力を与えます。
オプション A — Docker(推奨)🐳
Python は不要です。イメージは GitHub Container Registry で公開されています。
Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json を編集します。
{
"mcpServers": {
"smart-memory": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/mauriceisrael/smart-memory:latest"]
}
}
}
同じブロックは、どの MCP クライアントでも使えます(例:Cline)。クライアントの mcp_settings.json を指定するだけです。クライアントを再起動すれば完了です。✅
オプション B — ローカルサーバー(ソースから)🔒
開発者やプライバシーを重視するユーザーに最適です。
git clone https://github.com/MauriceIsrael/SmartMemory
cd SmartMemory
python3 -m venv venv
source venv/bin/activate
pip install -e .
次に、Claude Desktop からローカルインストールを指定します。
{
"mcpServers": {
"smartmemory": {
"command": "/absolute/path/to/SmartMemory/venv/bin/python",
"args": ["-m", "smart_memory.server"]
}
}
}
Claude を再起動して、次のように試してください:「ボブを知っています。彼は車で通勤します。投票できますか?」 — 以下のデモをご覧ください。
モード 2 — 監督セットアップ(Docker)
ウェブダッシュボードとAPI サーバーを実行します。ナレッジグラフの可視化、PDF からのルール抽出、チームで共有するメモリーのホスティングに最適です。
# Dashboard mode — example with Mistral
docker run -p 8080:8080 \
-e LLM_PROVIDER=mistral \
-e LLM_MODEL=mistral-large-latest \
-e LLM_API_KEY=your-api-key \
-v $(pwd)/brain:/app/data \
ghcr.io/mauriceisrael/smart-memory:latest dashboard
# Dashboard mode — example with a local model (Ollama)
docker run -p 8080:8080 \
-e LLM_PROVIDER=ollama \
-e LLM_MODEL=llama3 \
-e LLM_BASE_URL=http://172.17.0.1:11434 \
-v $(pwd)/brain:/app/data \
ghcr.io/mauriceisrael/smart-memory:latest dashboard
ウェブサーバーを起動するには
dashboardを追加してください。指定しない場合、コンテナは MCP モードで起動します。-vボリュームには、ナレッジグラフとルールが保持されます。ダッシュボードはhttp://localhost:8080で開きます。
LLM の設定
SmartMemory は、自然言語やドキュメントから事実やルールを抽出するために LLM を使用します。ダッシュボードの管理ページまたは環境変数(-e LLM_PROVIDER=…)で設定してください。
| プロバイダー | モデルの例 | 備考 |
|---|---|---|
| Mistral | mistral-large-latest、mistral-small-latest | ヨーロッパのプロバイダー、La Plateforme API |
| Ollama(ローカル、無料) | llama3、qwen2.5-coder、mistral | オフラインで動作 |
| OpenAI | gpt-4、gpt-3.5-turbo | |
| Anthropic | claude-3-5-sonnet | |
gemini-1.5-pro |
→ 設定ガイド全文
ドキュメントからルールを抽出する
- PDF をアップロードします(例:
Company_Policy.pdf)。 - プロバイダーを選択します。ドキュメントを読み取るには、サーバーに API キー(またはローカルの Ollama)が必要です。
- 確認して承認します。システムがルールを提案するので、ダッシュボードからまとめて承認します。
インタラクティブデモ — 事実からルールへ
会話モードでの動作:
> I know Bob
LLM: ✦ I've recorded the fact: I know Bob.
> He goes to work by car
LLM: ✦ Noted: Bob goes to work by car.
> Can Bob vote?
LLM: ✦ I can't conclude yet — but since he drives, he is likely an adult.
May I add the rule "Drivers are adults"?
> yes
LLM: ✨ Rule 'drivers_are_adults' added.
May I also add "Adults can vote"?
> yes
LLM: ✨ Rule 'adults_can_vote' added.
✦ Therefore, yes — Bob can vote. (derived from 2 rules)
すべてのステップが保存され、出所が記録され、再生できます。それが重要なのです。
技術スタック
- バックエンド: Python 3.11+、RDFLib、FastAPI
- フロントエンド: SvelteKit、TypeScript、TailwindCSS
- 推論: ニューロシンボリック(LLM + SPARQL / OWL)
- プロトコル: Model Context Protocol(MCP)
- パッケージングとデプロイ: Docker、GitHub Container Registry、Google Cloud Run
ロードマップ
- ドキュメントの取り込み対象を拡大(DOCX、HTML、ウェブページ)
- グラフの可視化を強化し、ルールの競合を検出
- 最初のタグ付きリリース(
v0.1.0)
アイデアや貢献を歓迎します。CONTRIBUTING.mdをご覧ください。
ライセンス
MIT — LICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。