2つの方向、1つの記憶
横方向、つまりエージェントからエージェントへは、プロジェクトの記憶が残ります。前方向、つまりプロジェクトから次のプロジェクトへは、プロフィールがついていきます。
同じプロジェクト、どのエージェントでも
Claude Code
ai-memory
Codex
OpenCode
プロジェクトA
プロジェクトB
プロジェクトC
プロフィール
新規プロジェクト
新しいセッションが最初に聞くこと
セッションは、引き継ぎ(ハンドオフ)とプロジェクトの概要より先に、短いフェンスブロックから始まります。エントリごとに1行で、それぞれ元のページを示し、プロジェクトのスタックで絞り込まれます。セッション間でバイト単位まで同一なので、ハーネスのキャッシュされたプロンプトに収まります。
> 🧭 ai-memory: your usual choices (cross-project profile)
> Your usual choices from other projects. Use them as defaults when this
> project's rules and the user say nothing; say which default you applied.
- [javascript] Use pnpm, not npm. (profile/tools/pnpm.md)
- Keep integration tests in tests/suite. (profile/testing/layout.md)
ルールが先、記憶はフォールバック
- 会話の中のあなたの指示
- リポジトリのルールファイル:AGENTS.md、CLAUDE.md、またはハーネス独自のもの
- プロジェクトの記憶:ページ、ルール、決定事項
- プロフィール:プロジェクトをまたいだ普段の選択
ルールファイルにnpmと書かれていれば、pnpmと書かれたプロフィールは適用されません。何も書かれていなければ、エージェントは聞き直さずにプロフィールを使い、どのデフォルトを適用したかを伝えます。
LLMなしで学ぶ仕組み
サーバーのパスは、セッションが終わるたびと1時間ごとに動きます。読むのは新しい内容だけです。
あなたの言葉
2プロジェクトで確認
1つのエントリ
毎回のセッション開始
あなたの言葉
まだ
あなた自身の言葉
好みと読めるプロンプトが対象です。いつも、決して、XよりY、今後は、デフォルトでといった表現と、そのポルトガル語の言い回しを拾います。質問、コードブロック、ツールが出力した内容は読みません。
整理されたページとスタック
プロジェクトで精選したルール、決定、注意点、手順も対象となり、使われている言語はスタックのエントリになります。スケジューラが自動承認したページは除外し、人が承認したページは引き続き対象にします。
2つのプロジェクト、または一般的な宣言
選択がプロフィールに入るのは、少なくとも2つのプロジェクトに現れたとき、またはあなた自身が「すべてのプロジェクトで」のようにプロジェクトを超えて適用範囲を指定したときです。最新の判断が優先され、古いものはページ履歴に残ります。
すべてのエントリに証拠
各エントリには、元になったプロジェクトと日付、あなたの言葉、裏付けるプロジェクトの数、確信度が記録されます。LLMを設定している場合、パスはスキーマ検証付きの呼び出しでエントリを分類して言い直し、エラーが出たら単語リストに戻ります。
新しいプロジェクトは先行して始まる
まだ記憶のないリポジトリには大きめのベースラインが入り、コマンド1つで普段の選択が、全員に見えるルールになります。
ai-memory profile apply はリポジトリのルールファイル内の管理ブロックに適切な項目を書き込みます。明示的に実行したときだけ動き、ブロック外の文章を保持します。ほかのローカル設定コマンドやエージェントもリポジトリのファイルを編集できます。
# ブロックと書き込み先のファイルを確認する
ai-memory profile apply --dry-run
# 書き込む
ai-memory profile apply
# もう一度取り除く
ai-memory profile apply --remove
管理はあなたの手に
エントリは普通のwikiページです。gitに置かれたmarkdownで、変更のたびにバージョン管理されます。
プロフィールの項目を削除する
ai-memory profile forgetは項目を削除し、同じ根拠からの再学習を抑制します。新しい根拠があれば再作成される場合があります。git の履歴や以前のバックアップにはコピーが残ることがあります。あなたの編集が優先
手で編集したエントリは、その時点からあなたのものです。パスは、自分で書いていないページや、その後に変更されたページを書き換えません。
プロジェクトをプロフィールから除外する
プロジェクトのマーカーで
contribute = falseを設定すると何も学習されなくなり、consume = falseを設定するとダイジェストを受け取らなくなります。確認と再構築
profile reviewは、各エントリを証拠付きで、基準にまだ届かない習慣とともに表示します。profile rebuildは、すべてのプロジェクトを最初から読み直します。エントリを削除することはなく、編集や削除をしたものにも触れません。
# このプロジェクトはプロフィールに教えず、受け取らない
[profile]
contribute = false
consume = false
1人に1つのプロフィール。チームは合意のうえで。
シングルオペレーターのサーバーでは、プロフィールはオンで、すべてのワークスペースで共有されます。マルチユーザーのサーバーでは、有効にするまでオフです。
オペレーターごとに非公開
データベースのユーザーアカウントで有効にすると、各自に本人とrootだけが読める制限付きプロファイルが作られます。信頼済みプロキシ経由のIDにはこの権限境界は適用されず、認可はプロキシが担います。
チームのプロフィールには2人の声が必要
share = "global"または"workspace"にすると、全員が受け取るプロフィールになります。習慣が入るのは、少なくとも2人のオペレーターの証拠があるときだけで、ダイジェストの見出しはチームのデフォルトとなり、共有されていることがエージェントに伝わります。仕事と私用を分ける
share = "workspace"にすると、ワークスペースごとに1つのプロフィールを持てます。クライアント2社の場合や、仕事と自宅の場合に使います。
# 共有サーバー:オペレーターごとに非公開のプロフィール1つ
[profile]
enabled = true
share = "auto"
min_projects = 2
よくある質問
プロフィールはプロジェクトのルールを上書きしますか。
いいえ。優先されるのはあなたの指示、次にリポジトリのルールファイル、その次にプロジェクトの記憶です。プロフィールは最後のフォールバックで、より具体的な指定が何もないときだけ使われ、エージェントはどのデフォルトを適用したかを伝えます。
LLMは必要ですか。
いいえ。収集と収束は、単語リストと最新の宣言で動きます。プロバイダーを設定すると、パスはスキーマ検証付きの呼び出しでエントリを分類して言い直し、エラーが出たらLLMを使わない経路に戻ります。完全にオフラインにしたい場合は、llm = falseを設定します。
クライアントのコードから何かを学ぶことはありますか。
読むのはあなた自身のプロンプトとプロジェクトの整理されたページだけで、ツールの出力は読みません。エージェントが目にしただけの文章が好みになることはありません。マーカーにcontribute = falseがあるプロジェクトは、それ以前に集めた証拠も含めて、完全に対象外になります。
共有サーバーではどうなりますか。
プロファイルは有効にするまでオフです。有効にすると、データベースのユーザーアカウントには本人とrootだけが読める非公開プロファイルが作られます。チーム共有のプロファイルは別途選択し、2人のオペレーターによる根拠が必要です。信頼済みプロキシ経由のIDはプロキシの認可に依存します。
オフにできますか。
はい。サーバー設定でenabled = falseまたはshare = "off"にすると、完全に無効になります。inject_on_session_start = falseにすると、プロフィールがクエリに答えるままで、ダイジェストだけがセッション開始時から外れます。
今日からエージェントに記憶を。
MITライセンスの無料オープンソースです。デフォルトの記憶機能にモデルのAPIキーは不要ですが、コーディングエージェントには別途アカウントが必要な場合があります。
