<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>長期記憶 on KnightLiブログ</title>
        <link>https://www.knightli.com/ja/tags/%E9%95%B7%E6%9C%9F%E8%A8%98%E6%86%B6/</link>
        <description>Recent content in 長期記憶 on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Fri, 01 May 2026 03:01:02 +0800</lastBuildDate><atom:link href="https://www.knightli.com/ja/tags/%E9%95%B7%E6%9C%9F%E8%A8%98%E6%86%B6/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Claude-Mem：Claude Code にセッションをまたぐ長期記憶を追加する</title>
        <link>https://www.knightli.com/ja/2026/05/01/claude-mem-persistent-memory-for-claude-code/</link>
        <pubDate>Fri, 01 May 2026 03:01:02 +0800</pubDate>
        
        <guid>https://www.knightli.com/ja/2026/05/01/claude-mem-persistent-memory-for-claude-code/</guid>
        <description>&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; は、&lt;code&gt;Claude Code&lt;/code&gt; 向けの永続的な記憶システムです。&lt;/p&gt;
&lt;p&gt;解決しようとしている問題は明確です。AI コーディングアシスタントは、新しいセッションを始めるたびに、以前話したアーキテクチャ判断、踏んだ落とし穴、プロジェクトの好み、実装背景を忘れがちです。&lt;br&gt;
長く続くプロジェクトでは、毎回同じ文脈を説明し直すのはかなり無駄です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; の考え方は、Claude Code の会話内容を記憶として圧縮し、ローカルデータベースとベクトルストアに保存し、あとから検索ツールで取り戻すというものです。&lt;/p&gt;
&lt;h2 id=&#34;何を解決するのか&#34;&gt;何を解決するのか
&lt;/h2&gt;&lt;p&gt;Claude Code はコードタスクに強いですが、セッションの文脈には限界があります。&lt;/p&gt;
&lt;p&gt;よくある課題は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新しいセッションが過去の作業を知らない&lt;/li&gt;
&lt;li&gt;プロジェクトの設計判断を何度も説明する必要がある&lt;/li&gt;
&lt;li&gt;以前調査した問題を再び踏みやすい&lt;/li&gt;
&lt;li&gt;長期タスクに連続した記憶がない&lt;/li&gt;
&lt;li&gt;複数の会話にまたがるプロジェクト知識を蓄積しにくい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; はこれらの問題を中心に設計されています。&lt;/p&gt;
&lt;p&gt;単にチャットログを保存するのではありません。会話を検索しやすい記憶断片に圧縮します。後で必要になったとき、意味検索で関連する文脈を取り戻せます。&lt;/p&gt;
&lt;h2 id=&#34;仕組み&#34;&gt;仕組み
&lt;/h2&gt;&lt;p&gt;README の設計を見ると、&lt;code&gt;Claude-Mem&lt;/code&gt; は主にいくつかの部分で構成されています。&lt;/p&gt;
&lt;p&gt;第一の部分は hooks です。&lt;/p&gt;
&lt;p&gt;Claude Code の会話フローに接続し、適切なタイミングで会話データを捕捉します。&lt;/p&gt;
&lt;p&gt;第二の部分はバックグラウンド worker です。&lt;/p&gt;
&lt;p&gt;worker は原始的な会話内容を、より短く、検索しやすい記憶へ処理します。&lt;/p&gt;
&lt;p&gt;第三の部分はローカルストレージです。&lt;/p&gt;
&lt;p&gt;プロジェクトは構造化メタデータの保存に &lt;code&gt;SQLite&lt;/code&gt; を使い、ベクトルインデックスには &lt;code&gt;Chroma&lt;/code&gt; を使います。これにより、会話記録の基本情報を保ちながら、意味検索にも対応できます。&lt;/p&gt;
&lt;p&gt;第四の部分は &lt;code&gt;mem-search&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;これは Claude Code が使う検索入口です。過去の文脈が必要なとき、関連する記憶を検索できます。&lt;/p&gt;
&lt;p&gt;全体の流れは次のように理解できます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude Code のセッションで内容が生まれる&lt;/li&gt;
&lt;li&gt;hooks が会話データを捕捉する&lt;/li&gt;
&lt;li&gt;worker が非同期に圧縮・整理する&lt;/li&gt;
&lt;li&gt;記憶を SQLite と Chroma に書き込む&lt;/li&gt;
&lt;li&gt;後のセッションで &lt;code&gt;mem-search&lt;/code&gt; によって検索する&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;どんな場面に向いているか&#34;&gt;どんな場面に向いているか
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; は長期プロジェクト向けで、一回きりの小さなタスク向けではありません。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ひとつのリポジトリを何日も開発し続ける&lt;/li&gt;
&lt;li&gt;コード構造が複雑で、背景説明が多い&lt;/li&gt;
&lt;li&gt;プロジェクト規約、命名習慣、アーキテクチャ選択を覚えてほしい&lt;/li&gt;
&lt;li&gt;Claude Code に頻繁にバグ修正、機能追加、文書整理を任せる&lt;/li&gt;
&lt;li&gt;AI に「以前なぜこう変更したのか」を覚えてほしい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude Code に一行だけ直してもらう程度なら、長期記憶の意味は大きくありません。&lt;br&gt;
しかし Claude Code を長期的な協力者として使うなら、これは役に立ちます。&lt;/p&gt;
&lt;h2 id=&#34;インストールと起動&#34;&gt;インストールと起動
&lt;/h2&gt;&lt;p&gt;README では、インストール方法は直接的です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g claude-mem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;起動には次を使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;状態確認：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;停止したい場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これらのコマンドの目的は、記憶システムを長く動くローカルサービスとして Claude Code のワークフローに接続することです。&lt;/p&gt;
&lt;h2 id=&#34;mem-search-の使い方&#34;&gt;&lt;code&gt;mem-search&lt;/code&gt; の使い方
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;mem-search&lt;/code&gt; は記憶を取り戻すための重要な入口です。&lt;/p&gt;
&lt;p&gt;普通の検索を置き換えるものではなく、Claude Code が過去の会話内容を意味で検索できるようにするものです。&lt;/p&gt;
&lt;p&gt;たとえば Claude Code に次のようなことを検索させられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;あるモジュールがなぜそのように設計されたのか&lt;/li&gt;
&lt;li&gt;ある Bug を当時どう調査したのか&lt;/li&gt;
&lt;li&gt;プロジェクトで合意した命名規則&lt;/li&gt;
&lt;li&gt;以前議論した技術的な取捨選択&lt;/li&gt;
&lt;li&gt;あるリファクタリングの背景&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは単純なキーワード検索とは違います。&lt;br&gt;
記憶圧縮とベクトルインデックスがうまく機能すれば、正確な言い回しを覚えていなくても、意味的に近い内容を取り戻せます。&lt;/p&gt;
&lt;h2 id=&#34;普通のプロジェクト文書との違い&#34;&gt;普通のプロジェクト文書との違い
&lt;/h2&gt;&lt;p&gt;プロジェクト文書は、安定した結論を記録するのに向いています。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アーキテクチャ説明&lt;/li&gt;
&lt;li&gt;デプロイ手順&lt;/li&gt;
&lt;li&gt;API 規約&lt;/li&gt;
&lt;li&gt;データベース構造&lt;/li&gt;
&lt;li&gt;開発ルール&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; は、会話過程で生まれる文脈を記録するのに向いています。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;なぜある案が却下されたのか&lt;/li&gt;
&lt;li&gt;一時的な問題をどう回避したのか&lt;/li&gt;
&lt;li&gt;実装の背後にあった議論&lt;/li&gt;
&lt;li&gt;まだ文書化されていないプロジェクトの好み&lt;/li&gt;
&lt;li&gt;複数の会話で積み重なったタスク背景&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;両者は互いの代替ではありません。&lt;br&gt;
安定した知識はプロジェクト文書へ書き、過程的な文脈は記憶システムで検索できるようにするのがよいです。&lt;/p&gt;
&lt;h2 id=&#34;使うときの注意点&#34;&gt;使うときの注意点
&lt;/h2&gt;&lt;p&gt;第一に、長期記憶は多ければよいわけではありません。&lt;/p&gt;
&lt;p&gt;すべての会話を区別なく保存すると、後の検索がノイズだらけになる可能性があります。価値が高いのは、プロジェクト判断、実装背景、問題調査、長期的な好みです。&lt;/p&gt;
&lt;p&gt;第二に、記憶はコードや文書の代わりにはなりません。&lt;/p&gt;
&lt;p&gt;AI が見つけた古い文脈は参考にすぎません。最終判断は現在のコード、テスト結果、最新の要求に基づくべきです。&lt;/p&gt;
&lt;p&gt;第三に、プライバシーとローカルデータに注意が必要です。&lt;/p&gt;
&lt;p&gt;会話内容を保存する以上、どのプロジェクトに接続してよいか、どの機密情報を会話に入れるべきでないかを理解しておく必要があります。&lt;/p&gt;
&lt;p&gt;第四に、記憶システムにはメンテナンスが必要です。&lt;/p&gt;
&lt;p&gt;プロジェクトが進むにつれて、古い記憶は古くなる可能性があります。古い文脈が誤って使われると、後続タスクを誤導することがあります。&lt;/p&gt;
&lt;h2 id=&#34;この種のツールが注目に値する理由&#34;&gt;この種のツールが注目に値する理由
&lt;/h2&gt;&lt;p&gt;AI コーディングツールは、「一回限りの質問応答」から「長期的な協力」へ向かっています。&lt;/p&gt;
&lt;p&gt;一回限りの質問応答では、モデルは現在の質問に答えれば十分です。&lt;br&gt;
長期的な協力では、プロジェクト履歴、過去の判断、チームの好み、すでに踏んだ落とし穴を知っている必要があります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; のようなツールの意味はここにあります。「文脈を覚える」ことを、一時的なチャット能力ではなく、インストールし、実行し、検索できるローカルシステムにします。&lt;/p&gt;
&lt;p&gt;実際のエンジニアリングプロジェクトでは、単にモデルのコンテキストウィンドウを長くするより実用的です。&lt;br&gt;
多くの情報は一度に文脈へ詰め込めばよいのではなく、必要なタイミングで取り戻せることが重要だからです。&lt;/p&gt;
&lt;h2 id=&#34;誰が試すべきか&#34;&gt;誰が試すべきか
&lt;/h2&gt;&lt;p&gt;次のような場合は試す価値があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code を高頻度で使っている&lt;/li&gt;
&lt;li&gt;同じプロジェクトを日をまたいで扱うことが多い&lt;/li&gt;
&lt;li&gt;プロジェクト文脈が複雑&lt;/li&gt;
&lt;li&gt;AI に同じ背景を何度も説明している&lt;/li&gt;
&lt;li&gt;会話内の経験を蓄積したい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude Code をたまに使うだけ、またはプロジェクトが小さい場合は、まだ必要ないかもしれません。&lt;/p&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/thedotmack/claude-mem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;thedotmack/claude-mem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後に&#34;&gt;最後に
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; の重点は「チャットログを保存すること」ではなく、Claude Code が後続タスクで有用な文脈を取り戻せるようにすることです。&lt;/p&gt;
&lt;p&gt;AI コーディングが一回限りのタスクから長期プロジェクト協力へ移るにつれ、記憶システムはますます重要になります。&lt;br&gt;
文書やテストを置き換えるものではありませんが、繰り返し説明を減らし、AI をプロジェクト履歴を理解した助手に近づけます。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
