本文へスキップ
メニュー

プロダクト

ソリューション

連携

開発者

言語

プロダクト

もっとできること

ふだん使うのは引き継ぎと検索です。ここでは、1つのサーバーに置かれた記憶にできるその他のことを紹介します。プロジェクト間で作業を渡すことから、クライアントごとの記憶を分けておくことまでです。

あるエージェントが別プロジェクトのエージェントに依頼する

APIを介して連携する2つのリポジトリがあり、それぞれに自分のエージェントと自分の記憶があるとします。フロントエンドのエージェントはプロトコルを知っています。APIリポジトリ全体を読む代わりに、完結した依頼を書いて、そのプロジェクトの受信箱に入れます。

プロジェクトA

send

受信箱、受取は1回

プロジェクトB

pop

API仕様

信頼できない入力

コンテキスト非共有

境界を越えるのは封筒だけです。プロジェクトAがプロジェクトBのファイルを読むことも、その逆もありません。

実際の流れ

  1. フロントエンドのリポジトリで

    > default/api のエージェントに、NDJSONをストリーミングする /v1/export エンドポイントの追加を依頼して。既存の認証ミドルウェアはそのまま。ai-memory 経由で送って。

    エージェントは自己完結した本文でmemory_message_sendを呼びます。読む側はこのプロジェクトを見られないので、依頼はそれだけで意味が通る必要があります。

  2. あとで、APIのリポジトリで

    📬 ai-memory: このプロジェクトの受信箱にプロジェクト間メッセージが1件届いています。

    > ai-memory の受信箱を確認して。

    エージェントはmemory_message_popを呼び、送信元つきの依頼を受け取って、それをもとに作業します。2回目のpopは何も返しません。

ターミナルから
# 現在のプロジェクトから送る
ai-memory message send --to-workspace default --to-project api \
    --subject "export endpoint" "Add a /v1/export endpoint that streams NDJSON…"

# 相手のプロジェクトで:消費せずに一覧する、または最も古いものを受け取る
ai-memory message list
ai-memory message pop

# 受け取られる前なら取り消せる
ai-memory message cancel --id <message-id>

メッセージングガイド

  • プロジェクトまたはエージェント宛て

    メッセージはワークスペースとプロジェクト宛てで、登録済みのエージェント一人を指定することもできます。指定されたメールはそのエージェントだけが回収できます。両方のプロジェクトへアクセスできれば、ブラウザーで保留中のメッセージを送信・編集できます。

  • 勝手にコンテキストへ入らない

    セッション開始時の通知にあるのは件数だけです。メッセージ本文は、意図したpopによってのみエージェントに届き、フェンスで囲まれて信頼できない入力と明示されます。送信元はフェンスの外に表示されます。 プロジェクト単位で、同じ件数だけの通知をプロンプト時にも受け取るよう設定できます。

  • 失敗時は閉じる

    宛先のプロジェクトは存在している必要があるので、タイプミスは誰も読まない受信箱に落ちるのではなく拒否されます。1つの受信箱に保留できるのは256件までです。

  • 取り消し可能、監査あり

    送信者は、受け取られるまでメッセージを取り消せます。送信時にシークレットは取り除かれ、本文にはサイズ上限があり、共有サーバーではすべてのメッセージに送信者が記録されます。

クライアント、モノレポ、個人の作業を分けておく

記憶はワークスペースとプロジェクトごとに整理されます。gitのリモートがあるチェックアウトはそのリモートで管理されるため、同じリポジトリを2回クローンしても記憶は1つになり、リモートのないフォルダはその名前を使います。それ以外を変えるには、小さなファイルを1つ置きます。

client-a

client-b

personal

ワークスペース

.ai-memory.toml

モノレポ

ルール

金曜に期限切れ

フィードバック

サーバーは1つ、棚は別々。どの棚にディレクトリが入るかはマーカーファイルが決めます。
  • クライアントごとに1ワークスペース

    ~/work/client-a/に.ai-memory.tomlを置くと、その配下のリポジトリが同じワークスペースを使います。記憶を保存し、通常検索する場所を指定する設定です。アクセス制御のルールではないため、明示的なプロジェクト横断検索や共有プロファイルは別途検討してください。

  • モノレポを1つのプロジェクトに

    projectを指定したマーカーは、すべてのサブディレクトリをそのプロジェクトに固定するので、パッケージ同士が1つの記憶を共有します。projectを省くと、パッケージごとに別の記憶になります。

  • gitのワークツリー

    リンクされたワークツリーはメインのリポジトリに解決されるので、別の場所にチェックアウトしたブランチも同じ記憶を使います。

  • 1つのプロジェクトに2つのエージェント

    呼び出し元ごとのルーティングで利用者を分離します。同じ人の並行セッションには、明示的な workspace/project 引数か、フックのセッション ID を渡すクライアントが必要です。静的な MCP 設定では区別できない場合があります。

  • 1台のノートPCに2つの勤務先

    各サーバーはai-memory server addで登録し、マーカーにserver = "team-b"のように名前を書きます。そのツリー配下のフックはそのサーバーだけに送られ、名前が解決できなければ何も送られません。

  • アイデンティティを固定する

    identity = "acme/platform"を指定すると、リモートがなくても、そのチェックアウトはどこにあってもこのキーの下に記録されます。

~/work/client-a/ の .ai-memory.toml
# このディレクトリ配下のリポジトリはすべてclient-aワークスペースに入る
workspace = "client-a"

マーカーファイルガイド

すべてのセッションに届くルール

何かをずっと覚えておくようエージェントに伝えると、それはwikiのページになります。ルールは事実とは別に整理され、セッションのブリーフィングが最初のプロンプトより前にエージェントへ提示できます。

  • 一度言えばよい

    「覚えておいて:決済のコードに触る前にPCIのメモを読むこと」。エージェントは永続的なページを書きます。グローバルなルールとして頼めば、すべてのプロジェクトに適用されます。

  • ブリーフィングが運ぶ

    プロジェクトのマーカーファイルで inject_on_session_start = true を設定すると、固定ページ、ルール、スロットからブリーフが始まります。収まらなかったページは memory_read_page 用に一覧表示します。Claude Code のサブエージェントにも同じ上限付きブリーフを渡すには、inject_on_subagent_start = true を別に設定します。

  • lintが昇格を提案する

    ルールが十分に永続的だと見なされると、memory_lintがCLAUDE.mdやAGENTS.mdへのコピーを提案します。ai-memory自身がこれらのファイルを編集することはありません。

  • 決定記録はあなたのもの

    サーバーはリポジトリのファイルを読み書きしません。エージェントやローカルの設定コマンドは読み書きできます。ADR はリポジトリで管理してください。[capture] ignore_paths はツール経由の記録を抑えますが、プロンプトの除外や完全な遮断を保証しません。

.ai-memory.toml
# ピン留めページ、ルール、スロットをすべてのセッションの先頭に加える
[briefing]
inject_on_session_start = true

期限付きのノートと保持へのフィードバック

  • 金曜まで覚えておいて

    expires_at を指定したページは、その日を過ぎると通常の検索から外れます。保持処理で削除されるまでは、期限切れページを含めて検索できます。ピン留めしていても削除対象です。

  • そのページは間違っていた

    memory_feedback は「役立つ」「役立たない」「古い」「誤り」を記録します。保持処理の対象となるセッションページの保持に影響し、「古い」と「誤り」は lint の確認対象にもなります。検索順位を変えたり、直接ページを削除したりはしません。

  • セッションを移す

    作業用ディレクトリにcdしたあとで別のプロジェクトにキャプチャされたセッションは、ai-memory move-sessionで付け直せます。オブザベーションとページも一緒に移ります。

  • コンパクションからの復帰

    コンテキスト圧縮のあと、Claude Code、Codex、Factory Droidは通常の起動パケットの代わりに、セッション最初と最新のプロンプトを収めた短いアンカーを受け取ります。どのエージェントにも、自分のプロンプトを読み直し、要約よりそちらを信頼するというルールが入ります。reload contextは今までどおり、手動で範囲を限った振り返りを取得します。

ブラウザで読む、どこへでも持ち出す

  • メモリを閲覧するブラウザー

    組み込みダッシュボードにはプロジェクト、取得状況、エージェントの活動、応答ごとの使用量が表示されます。ナレッジタブには見出し、被リンク、版ごとの根拠と検索があり、ガイドは /web/docs にあります。

  • 履歴とリプレイ

    各ページにはバージョンへのリンクがあり、任意の2つの間の差分を見られます。各セッションでは、オブザベーションをキャプチャ順に並べたタイムラインを開けます。rootには、フックのカウンターと、失敗している項目の対処法を載せたヘルスページが表示されます。

  • オープンなフォーマット

    各プロジェクトはOpen Knowledge Formatのバンドルです。ai-memory export-okfでOKFを読めるツール向けにまとめられ、それ以外のツールにとってもファイルはプレーンなmarkdownです。

  • エージェント用のスキル

    ai-memory install-mcpは、短いルーティング用スニペットとマネージドなAgent Skillsも一緒にインストールするので、エージェントは「これ、話したことある?」に答えるツールと、メッセージを送るツールを区別できます。

Web UIを見る

ランチャーが引き受ける雑務

ai-memory runはメモリサーバーを通じてエージェントを起動します。ハーネスを切り替える際、このマシン上の前のエージェントの可視履歴を、非公開の一時ファイルで渡すこともできます。パスと内容はローカルに留まり、子プロセス終了時に削除されます。利用できるローカル記録がなければ、共有のポータブル台帳とハンドオフを使います。

ai-memory run

サンドボックス案

自己更新

セッション終了

Webサインイン

中心にあるのはコマンド1つ。残りはその周りで、別のツールなしに起きます。
  • コマンド1つでアップグレード

    ai-memory upgradeは、対応するリリースをダウンロードし、チェックサムを確認し、バイナリを入れ替え、フックを更新し直します。Docker、Homebrew、AUR、RPMでのインストールは、それぞれ自分の経路でアップグレードします。

  • ガードレールを外す前に警告

    ai-memory run --yoloは、これから無効化する内容を伝えます。LinuxとmacOSでai-jailが使える場合は、jailに何を見せるかのチェックリストとともに、サンドボックス内でセッションを実行し直すことも提案します。--jailは妥当なデフォルトのまま直接jailへ入ります。

    GitHubのai-jail
  • ハーネス用の環境変数

    --env KEY=VALUEと--env-fileは、起動されたエージェントとai-memory自身のセッション検索の両方に渡るので、アカウントごとのCLAUDE_CONFIG_DIRにラッパースクリプトは要りません。

  • 終了時にセッションを閉じる

    セッション終了フックを持たないエージェント(Command Code、Kiro CLI、Antigravity CLI)は、ランチャーが終了したときに要約と引き継ぎを受け取ります。そのあとも会話が続いた場合はfinalize-session --reopenで対応できます。

  • Web UIにサインインする

    組み込みのwikiには、パスワード利用者向けのログインページとパスワード変更ページがあり、全プロジェクトの保留中の自動改善提案を承認または却下するroot専用ページもあります。

  • 自分の言語のストップワード

    [search.fts] stopwordsには、自分の言語の機能語を列挙します。ポルトガル語のwikiで全文検索の順位がdeやqueに引っ張られることがなくなります。

よくある質問

あるプロジェクトのエージェントは、別のプロジェクトの記憶を読めますか?

はい。呼び出し元にアクセス権があれば、明示的なプロジェクト横断クエリで読めます。通常のクエリは現在のプロジェクトを使います。メッセージ機能は自己完結した依頼を別プロジェクトの受信箱に届けますが、送信元のファイルへのアクセス権は与えません。

受け取ったメッセージは指示として扱われますか?

いいえ。取り出したメッセージは、信頼できないプロジェクト間の入力としてフェンスで囲まれ、その旨の注意書きが付きます。エージェントはそれをタスクの依頼としてあなたと一緒に評価します。送信元はフェンスの外に表示されるので、先に信頼できるか判断できます。

2つのセッションが同じ受信箱を確認するとどうなりますか?

最初のpopがメッセージを受け取り、2つ目は何も受け取りません。メッセージを受け取れるのは一度だけで、引き継ぎと同じルールです。

ワークスペースの設定は必要ですか?

いいえ。マーカーファイルがなければ、すべてdefaultというワークスペースに入り、gitのリモートがプロジェクトになります。リモートがなければディレクトリ名になります。.ai-memory.tomlを追加するのは、クライアントを分けたい、モノレポを1つのプロジェクトにしたい、仕事と個人の記憶を分けたい、または2つ目のサーバーを使いたいときだけです。

自分のツールとチーム wiki を接続する

自分のツールからメモリを利用

任意の TypeScript SDK は、スコープを指定した MCP 呼び出しでメモリの保存、検索、引き継ぎを行います。条件付き書き込みで同時編集を検出できます。npm では公開されていないため、リポジトリからビルドします。

コードからメモリを使う

共有ページをリポジトリでレビュー

任意の ai-memory-wikisync は、選択した共有ページ群をリポジトリ内の Markdown と同期します。編集の競合を報告し、条件付き書き込みを使います。削除は明示的な有効化が必要です。サーバーや非公開のセッション履歴を複製するものではありません。

チーム wiki 同期ガイド

すでにあるドキュメントを記憶に入れる

任意のai-memory-importerは、指定したローカルファイル1件を読み込みます。markdown、テキスト層のあるPDF、DOCX、PPTX、XLSX、CSV、VTT、SRTに対応します。出典を記録したページを1枚書き、既定はdry run、ファイルのdigestを残し、自分のものでないページを置き換えることはありません。OCR、画像、音声には対応しません。 読み取り専用スナップショットからclaude-memのデータベースも取り込めます。プロジェクトの対応付けは明示的に指定し、まずドライランで実行します。

importerのガイド

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

MITライセンスの無料オープンソースです。デフォルトの記憶機能にモデルのAPIキーは不要ですが、コーディングエージェントには別途アカウントが必要な場合があります。