Proma × Nowledge Mem
MCPツール、スレッドの自動キャプチャ、起動時コンテキスト、標準スキルを使用してPromaをNowledge Memに接続します。
エージェント向け
セットアップをエージェントに手伝わせたい場合は、この行をエージェントに渡してください:
Read https://mem.nowledge.co/SKILL.md and follow the instructions to install or update Nowledge Mem for Proma. Verify with nmem status, startup context, and a saved Proma thread, then summarize what changed.PromaはNowledge Memを3つの方法で利用できます:
- MCPツール により、Promaはタスクに応じてメモリを検索し、永続的な知識を保存し、Memを閲覧できます。
- ライフサイクルフック はProma Agentの会話をMemスレッドに保存します。
- チャット履歴のインポート は、Promaの通常のChat会話をローカルのProma履歴ストアからMemに取り込みます。
- 起動時コンテキスト は、現在のMemコンテキストをPromaのワークスペース
CLAUDE.mdに書き込むため、新しいPromaセッションは適切なメモリとともに開始されます。
Proma v0.13.0以降には、PromaのMemory設定にNowledge Memカードが含まれています。 初めてセットアップする場合はここから始めてください。 Proma Agentモードに貼り付けられるセットアッププロンプトがコピーされます。 正確なファイル、更新手順、検証チェックのためにこのページを開いたままにしておいてください。
うまくいったかどうかの確認方法
新しいProma Agentセッションを開き、What was I working on?と尋ねてください。
次に、一意のフレーズを含むメッセージを送信し、Promaの返信を待ってからnmem t search "that phrase" --source promaを実行します。
MemにProma Agentスレッドが表示されるはずです。
通常のProma Chatについては、MemのAgent Sessionsビューを開くか、nmem t sync --from proma --applyを実行してください。
Memは~/.proma/conversations/*.jsonlを直接読み取ります。
始める前に
- Nowledge Memがローカルで実行されているか、到達可能なリモートMemサーバーがあります。
- Promaがインストールされています。
- Python 3.9+ が
python3として利用できます。 nmemがターミナルで動作します。
nmem statusnmemが見つからない場合は、Memデスクトップアプリの開発者ツールからインストールするか、次を実行してください:
pip install nmem-cliインストール
Proma v0.13.0以降を使用している場合は、Proma Settings → Memory → Nowledge Memを開き、セットアッププロンプトをコピーしてProma Agentモードに貼り付けてください。 以下の手動ステップは同じ契約を書き出したもので、セットアップを監査または修復できるようになっています。
例ではPromaのdefaultワークスペースを使用しています。
ワークスペース名が異なる場合は、defaultを~/.proma/agent-workspaces/配下のディレクトリ名に置き換えてください。
お使いのプラットフォームでPythonがpythonとしてのみ公開されている場合は、フックコマンド内のpython3をpythonに置き換えてください。
プラグインファイルをダウンロードする [step]
rm -rf /tmp/nowledge-community
git clone https://github.com/nowledge-co/community.git /tmp/nowledge-community
mkdir -p ~/.proma/scripts ~/.proma/agent-workspaces/default/skills
cp /tmp/nowledge-community/nowledge-mem-proma-plugin/hooks/save-to-nmem.py ~/.proma/scripts/
cp /tmp/nowledge-community/nowledge-mem-proma-plugin/hooks/read-working-memory.py ~/.proma/scripts/
chmod +x ~/.proma/scripts/save-to-nmem.py ~/.proma/scripts/read-working-memory.py
cp -R /tmp/nowledge-community/nowledge-mem-proma-plugin/skills/{read-working-memory,search-memory,distill-memory,save-thread,status} ~/.proma/agent-workspaces/default/skills/MCPサーバーを追加する [step]
作成または編集:
~/.proma/agent-workspaces/default/mcp.jsonファイルがすでに存在する場合は、nowledge-memを既存のserversオブジェクトにマージしてください。
{
"servers": {
"nowledge-mem": {
"url": "http://127.0.0.1:14242/mcp/",
"type": "streamableHttp",
"enabled": true,
"headers": {
"APP": "Proma"
}
}
}
}リモートMemの場合は、URLを置き換えてキーを追加してください:
{
"servers": {
"nowledge-mem": {
"url": "https://mem.example.com/mcp/",
"type": "streamableHttp",
"enabled": true,
"headers": {
"APP": "Proma",
"Authorization": "Bearer nmem_your_key",
"X-NMEM-API-Key": "nmem_your_key"
}
}
}
}フックを有効にする [step]
作成または編集:
~/.proma/sdk-config/.claude/settings.jsonこれをhooksオブジェクトにマージしてください。
お使いのPromaビルドが$HOMEを展開しない場合は、絶対パスを使用してください。
{
"hooks": {
"SessionStart": [
{
"matcher": "startup|resume",
"hooks": [
{
"type": "command",
"command": "[ \"${PROMA_NOWLEDGE_MEM_ENABLED:-1}\" != \"0\" ] || exit 0; python3 \"$HOME/.proma/scripts/read-working-memory.py\"",
"timeout": 15000
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "[ \"${PROMA_NOWLEDGE_MEM_ENABLED:-1}\" != \"0\" ] || exit 0; python3 \"$HOME/.proma/scripts/save-to-nmem.py\" --event user-prompt-submit",
"timeout": 30000
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "[ \"${PROMA_NOWLEDGE_MEM_ENABLED:-1}\" != \"0\" ] || exit 0; python3 \"$HOME/.proma/scripts/save-to-nmem.py\" --event stop",
"timeout": 30000
}
]
},
{
"hooks": [
{
"type": "command",
"command": "[ \"${PROMA_NOWLEDGE_MEM_ENABLED:-1}\" != \"0\" ] || exit 0; python3 \"$HOME/.proma/scripts/read-working-memory.py\" --rewake",
"timeout": 15000,
"async": true,
"asyncRewake": true,
"rewakeMessage": "Nowledge Mem context refreshed"
}
]
}
]
}
}Promaを再起動する [step]
MCP、フック、スキルを変更した後はPromaを再起動してください。
何が起こるか
UserPromptSubmitは、次のユーザーターンの前に現在のProma Agentスレッドを保存します。Stopは、応答後にもう一度保存するため、トランスクリプトの書き込みが漏れたり遅延したりしてもカバーされます。- 保存フックは、
~/.proma/sdk-config/projects/**/<session-id>.jsonlからProma Agent SDKのトランスクリプトを読み取り、ソースpromaとして書き込みます。 - 通常のProma Chat会話は、Memアプリまたは
nmem t sync --from proma --applyによって~/.proma/conversations/*.jsonlからインポートされます。 ChatはAgent SDKのライフサイクルフックを発火しません。 SessionStartは、~/.proma/agent-workspaces/default/CLAUDE.md内のNowledge Memブロックを更新します。StopasyncRewakeは、アシスタントのターン後にコンパクトなWorking Memoryリマインダーをプッシュできます。
Promaの現在のClaude Agent SDKは、SessionStartのstdoutをモデルコンテキストとして確実に注入しません。
そのため、このコネクタは代わりにマークされたCLAUDE.mdブロックを書き込みます:
<!-- nowledge-mem:start -->
...
<!-- nowledge-mem:end -->独自のProma指示は、そのブロックの外側、またはCLAUDE.md.templateに置いてください。
更新
cd /tmp/nowledge-community
git pull
cp nowledge-mem-proma-plugin/hooks/save-to-nmem.py ~/.proma/scripts/
cp nowledge-mem-proma-plugin/hooks/read-working-memory.py ~/.proma/scripts/
chmod +x ~/.proma/scripts/save-to-nmem.py ~/.proma/scripts/read-working-memory.py
cp -R nowledge-mem-proma-plugin/skills/{read-working-memory,search-memory,distill-memory,save-thread,status} ~/.proma/agent-workspaces/default/skills/次に、最新のnowledge-mem-proma-plugin/hooks/hooks.jsonを~/.proma/sdk-config/.claude/settings.jsonにマージし、Promaを再起動してください。
リモートモード
MCPについては、リモートURLとキーをPromaのmcp.jsonに保持してください。
フックとCLIフォールバックについては、Promaを実行しているマシンでローカルのnmemクライアントを一度設定してください:
nmem config client set url https://mem.example.com
nmem config client set api-key nmem_your_keyトラブルシューティング
MCPツールが表示されない。 mcp.jsonが最上位キーとしてserversを使用していること、およびnowledge-memに"enabled": trueがあることを確認してから、Promaを再起動してください。
起動時コンテキストが表示されない。 python ~/.proma/scripts/read-working-memory.pyを実行し、~/.proma/agent-workspaces/default/CLAUDE.mdにnowledge-mem:startブロックがあるか確認してください。
スレッドがMemに表示されない。 Promaがターンを完了するのを待ってから、~/.proma/logs/nm-hooks.logを確認し、nmem t search "<phrase>" --source promaで検索してください。
Proma Chatの会話がMemに表示されない。 MemアプリのAgent Sessionsビューからインポートするか、nmem t sync --from proma --applyを実行してください。
フックスクリプトはProma Agentセッションのみをカバーします。
リモートMCPは動作するが、フックが動作しない。 MCPはPromaのmcp.jsonを使用し、フックはローカルのnmemクライアント設定を使用します。
両方を同じリモートMemサーバーに設定してください。
