本文へスキップ
メニュー

プロダクト

ソリューション

連携

開発者

言語

ソリューション

プロジェクトの説明し直しは、もう終わり

エージェントを終了して別のエージェントを開くと、アーキテクチャも、失敗したアプローチも、未解決の項目もすでに把握しています。デスクトップPCでもノートPCでも同じように動き、APIキーは要りません。

作業の途中でエージェントを切り替える

午後4時、Claude Codeでレート制限に当たりました。同じディレクトリでCodexを開けば、そのまま続けられます。

図:Claude Codeのセッションが終了し、引き継ぎのバトンをai-memory経由でCodexのセッションへ渡している。引き継ぎには要約、次のステップ、未解決の質問が入っている。同じバトンを取ろうとした2つ目のターミナルは、すでに1回受け取られているため締め出される。
引き継ぎはプロジェクトディレクトリで照合されるので、次のエージェントは同じチェックアウトで起動するだけで済みます。
  • 型付き

    引き継ぎ(ハンドオフ)には、セッションの要約、次のステップ、未解決の質問が入ります。次のエージェントはセッション開始時、あなたが何か入力する前にそれを受け取ります。

  • 受け取れるのは1回だけ

    そのディレクトリで最初に始まったセッションがバトンを受け取ります。2つ目のセッションが要求しても何も返らないので、2つのエージェントが同じ作業を再開することはありません。

  • 自動、ただし手動で上書き可能

    セッションが終わるたびに引き継ぎが1つ書き出されます。「次のセッション用にコンテキストを保存して」と言えば自分で書くこともでき、そちらが自動のものより優先されます。

Grok Build CLIとZeroの2つは、セッション開始時にフックが出力する内容を無視します。引き継ぎを受け取るよう頼めば、MCP経由で取得します。連携ページにすべてのエージェントと、それぞれの対応範囲を載せています。

ふだん口にする言葉

ほとんどの日は何も言う必要がありません。フックがセッションをキャプチャし、セッション終了時にそれがwikiページになります。何かしてほしいときは、普通の言葉で頼むだけです。

「どこまでやったっけ?」
保留中の引き継ぎを読みます。中身は要約、次のステップ、未解決の質問です。
「Xについて話したことある?」
全文、エンティティ、リンク、ベクトルの結果を1つのランキングに融合してwikiを検索します。
「しばらく離れていたので、状況を教えて」
ダイジェストを作ります。離れていた期間が長いほど長くなります。LLMを設定していれば文章、なければ構造化データです。
「これをずっと覚えておいて」
gitでバージョン管理される永続的なページを書きます。ピン留めすれば減衰しません。
「これを金曜まで覚えておいて」
有効期限付きでページを書きます。期限を過ぎると忘却スイープが削除します。
「そのページは古いよ」
フィードバックを記録し、以後のランキングでそのページの順位を下げます。フィードバックで何かが削除されることはありません。

フレーズの全リストと、それぞれの裏で動くMCPツールはGitHubの利用ガイドにあります。

1つのランチャーと、既存プロジェクトの取り込み

ai-memory runでエージェントを起動する

  • 初回起動時、そのエージェントのフックとMCPエントリがなければインストールします。これはエージェントごとに1回だけです。
  • エージェントを切り替えると同じワークストリームが再開され、要約の引き継ぎに加えて、画面に見えていた履歴も引き継がれます。
  • ai-memory continueは、どのディレクトリからでも直近のチェックアウトを見つけ、そこで再開します。
  • 現在12種類のエージェントに対応しています。エージェントを直接起動しても引き続き動き、フックだけでも引き継ぎは運ばれます。
ハーネスを替えても、ワークストリームはそのまま
cd /path/to/project
ai-memory run claude

# Claude Codeを終了し、同じワークストリームをCodexで続ける。
ai-memory run codex --yolo

# どのディレクトリからでも、元いた場所に戻る。
ai-memory continue

既存のプロジェクトを取り込む

空のプロジェクトで最初のセッションを始めると、ローカルにあるエージェントの履歴を1回だけインポートします。対象は新しい順に25セッションまでです。手動でも実行できます。

ローカルのエージェント履歴をインポート
# 何がインポートされるか確認してから、インポートする
ai-memory backfill --dry-run
ai-memory backfill

初回起動時の自動インポートはAI_MEMORY_BACKFILL_ON_START=falseで無効にできます。

デスクトップPCでもノートPCでも同じ記憶

小さなサーバーを1つ動かし、すべてのマシンをそこに向けます。プロジェクトはチェックアウト名で識別されるので、マシンごとにパスが違っても同じ記憶にたどり着きます。

図:デスクトップPCとノートPCが1つのai-memoryサーバーに接続している。ノートPCはオフラインのため、イベントはローカルのスプールで待機し、あとでサーバーへ送られる。サーバーは1つだけ。
  • サーバーはホームラボのマシンか、電源を入れたままにしているマシンに置きます。単一バイナリまたは単一コンテナです。
  • ノートPCがオフラインのとき、フックのイベントはローカルのスプールに入り、サーバーに再び届くようになると送り出されます。各エントリに冪等キーがあるので、二重に保存されることはありません。
  • ai-memory statusで、保留中のイベント数と、最も古いイベントの経過時間がわかります。
  • ループバック以外で待ち受けるサーバーにはベアラートークンが必須です。トークンは通信を暗号化しないので、LANの外に出す前にTLSを追加してください。
マシンをサーバーに向ける
# デスクトップPCとノートPCの両方で
export AI_MEMORY_SERVER_URL="http://<server-ip>:49374"
export AI_MEMORY_AUTH_TOKEN="$TOKEN"
ai-memory install-mcp   --client claude-code --apply
ai-memory install-hooks --agent  claude-code --apply

APIキー不要、自分で読めるファイル

デフォルトのインストールは運用コストがゼロで、すべてをgitリポジトリ内のmarkdownとして保存します。

  • LLM呼び出しゼロ

    キャプチャ、セッション要約、引き継ぎ、検索はすべてモデルなしで動きます。プロバイダーを追加するまで、要約はルールベースです。

  • 埋め込みはバイナリ内で実行

    小さなローカルモデル(all-MiniLM-L6-v2、約87 MB)がバックグラウンドで1回だけダウンロードされます。ベクトル検索は次の再起動で有効になります。キーもGPUも要りません。

  • ループバックのみ

    デフォルトのサーバーは127.0.0.1:49374で待ち受け、アカウントもテレメトリもありません。ネットワーク上の他のマシンからは届きません。

図:プレーンなmarkdownファイルが入ったwikiフォルダを中心に、grep、Obsidian、テキストエディタ、rsyncへ線が伸び、下にはgitの履歴がある。
Obsidianやvimでページを編集すると、ファイルウォッチャーが検索インデックスを更新します。

ファイルはどこへでも持ち出せる

SQLiteのインデックスはファイルから派生したもので、ファイルから再構築できます。バックアップはai-memory backup、rsync、または自分のリモートへのgit pushで取れます。

wikiはgitリポジトリ
# wikiをコンテナからコピーしてObsidianで開く
docker cp ai-memory:/data/wiki ./my-ai-memory-wiki

# または履歴を読む
git -C /data/wiki log --oneline

読み取り専用のWeb UIで見ることもできる

フラグを1つ付けると、ブラウザ用のビューが加わります。プロジェクト一覧、ページツリー、レンダリングされたmarkdown、検索、クリックできるwikiリンクがあります。編集は一切できません。

Web UIを有効にする
ai-memory serve --transport http --bind 127.0.0.1:49374 --enable-web
# その後http://127.0.0.1:49374/webを開く
ai-memoryのWeb UIで1つのプロジェクトを表示したスクリーンショット。左にconcepts、decisions、gotchas、sessionsに分かれたページツリー、右にmarkdownページの最近のアクティビティ一覧がある。
Web UIのプロジェクト画面。ページはconcepts、decisions、gotchas、sessionsに分類されます。

あなたに必要ですか?

クイックセットアップへ

よくある質問

ai-memoryを使うのにAPIキーやLLMは必要ですか?

いいえ。キャプチャ、セッション要約、引き継ぎ、検索はLLM呼び出しゼロで動きます。ベクトル検索用の埋め込みは、ローカルモデルを使ってプロセス内で実行されます。LLMプロバイダーは任意で、追加すると統合、ブートストラップ、リランクがより充実します。

プロジェクトの初日からai-memoryを使わないといけませんか?

いいえ。いつからでも追加できます。まだ記憶のないプロジェクトで最初のセッションを始めると、マシンにすでにあるエージェントのセッションを、対応するすべてのエージェントから、新しい順に25件までインポートします。実行は1回だけ、バックグラウンドで行われ、LLMは使いません。ai-memory bootstrapを使えば、gitログ、README、ドキュメントからページを作ることもできます。こちらにはLLMが必要です。

デスクトップPCとノートPCで同じ記憶を使えますか?

はい。ホームラボのマシンかどちらか一方でai-memoryサーバーを1つ動かし、両方をそこに向けます。サーバー間のレプリケーションはありません。ノートPCがオフラインのとき、フックのイベントはローカルのスプールにたまり、サーバーに再び届くようになると送り出されます。

Claude Codeの組み込みメモリで十分ですか?

1台のマシンでClaude Codeだけを使う開発者1人なら、十分かもしれません。2つ目のエージェント、2台目のマシン、2人目のメンバーが加わると足りなくなります。

記憶はどこに保存されますか?

ai-memoryのデータディレクトリにある、gitでバージョン管理されたプレーンなmarkdownファイルのフォルダです。SQLiteには検索インデックスが入っており、ファイルから再構築できます。

今日からエージェントに記憶を。

無料のオープンソースです。アカウントもAPIキーも要らず、ファイルはあなたの手元に残ります。