2つの方向、1つの記憶
横方向、つまりエージェントからエージェントへは、プロジェクトの記憶が残ります。前方向、つまりプロジェクトから次のプロジェクトへは、プロフィールがついていきます。

新しいセッションが最初に聞くこと
セッションは、引き継ぎ(ハンドオフ)とプロジェクトの概要より先に、短いフェンスブロックから始まります。エントリごとに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時間ごとに動きます。読むのは新しい内容だけです。

あなた自身の言葉
好みと読めるプロンプトが対象です。いつも、決して、XよりY、今後は、デフォルトでといった表現と、そのポルトガル語の言い回しを拾います。質問、コードブロック、ツールが出力した内容は読みません。
整理されたページとスタック
プロジェクトで精選したルール、決定、注意点、手順も対象となり、使われている言語はスタックのエントリになります。スケジューラが自動承認したページは除外し、人が承認したページは引き続き対象にします。
2つのプロジェクト、または一般的な宣言
選択がプロフィールに入るのは、少なくとも2つのプロジェクトに現れたとき、またはあなた自身が「すべてのプロジェクトで」のようにプロジェクトを超えて適用範囲を指定したときです。最新の判断が優先され、古いものはページ履歴に残ります。
すべてのエントリに証拠
各エントリには、元になったプロジェクトと日付、あなたの言葉、裏付けるプロジェクトの数、確信度が記録されます。LLMを設定している場合、パスはスキーマ検証付きの呼び出しでエントリを分類して言い直し、エラーが出たら単語リストに戻ります。
新しいプロジェクトは先行して始まる
まだ記憶のないリポジトリには大きめのベースラインが入り、コマンド1つで普段の選択が、全員に見えるルールになります。
ai-memory profile applyは、リポジトリに合うエントリを、ルールファイルの管理ブロックに書き込みます。ブロックは2つのマーカーで挟まれ、その外には触れません。もう一度実行すれば、変わるのはブロックだけです。リポジトリに書き込むのはこのコマンドだけで、実行したときにしか動きません。
# ブロックと書き込み先のファイルを確認する
ai-memory profile apply --dry-run
# 書き込む
ai-memory profile apply
# もう一度取り除く
ai-memory profile apply --remove
管理はあなたの手に
エントリは普通のwikiページです。gitに置かれたmarkdownで、変更のたびにバージョン管理されます。
忘れさせれば、忘れたまま
ai-memory profile forgetはエントリを削除し、パスは同じ証拠から作り直しません。戻るのは、あなたがもう一度述べたときだけです。あなたの編集が優先
手で編集したエントリは、その時点からあなたのものです。パスは、自分で書いていないページや、その後に変更されたページを書き換えません。
クライアントやNDAの仕事は対象外
プロジェクトのマーカーで
contribute = falseを設定すると何も学習されなくなり、consume = falseを設定するとダイジェストを受け取らなくなります。確認と再構築
profile reviewは、各エントリを証拠付きで、基準にまだ届かない習慣とともに表示します。profile rebuildは、すべてのプロジェクトを最初から読み直します。エントリを削除することはなく、編集や削除をしたものにも触れません。
# このプロジェクトはプロフィールに教えず、受け取らない
[profile]
contribute = false
consume = false
1人に1つのプロフィール。チームは合意のうえで。
シングルオペレーターのサーバーでは、プロフィールはオンで、すべてのワークスペースで共有されます。マルチユーザーのサーバーでは、有効にするまでオフです。
オペレーターごとに非公開
共有サーバーで有効にすると、各自に制限付きのプロフィールができ、読めるのは本人とrootだけです。1人のエージェントが学んだことが、他の人に届くことはありません。
チームのプロフィールには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人のオペレーターの証拠があるときだけです。
オフにできますか。
はい。サーバー設定でenabled = falseまたはshare = "off"にすると、完全に無効になります。inject_on_session_start = falseにすると、プロフィールがクエリに答えるままで、ダイジェストだけがセッション開始時から外れます。