なぜ好みが定着しないのか
2つのシステム、命令に従うのは1つだけ
まずは、それぞれが何のためにあるのかを整理しましょう。OpenAIは「記憶(memory)」をパーソナライズ機能と位置づけています。その目的は「体験をパーソナライズし、同じことを繰り返す頻度を減らすこと」です。この「頻度を減らす」という言葉をよく読んでください。これは繰り返しの手間を減らすための利便性レイヤーであり、動作を保証する設定ストアではありません。
「カスタム指示(custom instructions)」こそが設定ストアです。このフィールドに入力した内容はそのまま保存され、OpenAIによれば「すべてのチャットに即座に適用」されます。譲れない好みがあるなら、ここに配置すべきです。代わりに会話の中で入力してしまった場合、パターンを推論するために構築されたシステムに対して「提案」を提出したに過ぎません。
この1つの違いが、好みがブレる原因のほとんどを説明しています。多くの人はチャットの中で要件を宣言し、それが統合(synthesis)の素材となり、なぜ要件が矛盾して適用されるのかと頭を悩ませることになります。
統合システムは、あなたに関する2つの矛盾した認識を保持し得る
これが、本当に奇妙な体験を生み出す原因です。記憶は現在の事実のリストではなく、進行中の「統合」であるため、古い結論と新しい結論が共存することがあります。OpenAIの公式ドキュメントでも、マラソンのトレーニングと足首の捻挫の例を使って、異なる時期に意味を持っていたコンテキストが共存する様子を説明しています。
これを好みに当てはめると、フレームワークを学んでいるときは詳細な説明を好んでいたが、現在は簡潔な出力を求めており、その両方の解釈が統合のどこかに残っている状態になります。モデルはどちらかを選択します。ある日突然、3月時点のあなたの好みが適用されるのはこのためです。
対策はあります。記憶の要約は確認して修正できます。また、要約が本来よりも空っぽに見えたり古くなったりしたときのために、ドキュメント化された更新手順(「設定」→「パーソナライズ」→「記憶の要約」→「管理」→3点リーダーメニューから「更新」)が用意されています。レガシーシステムを使用している場合、保存された記憶は一覧表示可能なリストであり、OpenAIは「削除しない限り、保存された記憶は常に将来の回答で考慮されます」と述べているため、古い記憶を削除することは実際に効果があります。一般的な対処法については、ChatGPTの記憶機能が動作しないときの対処法にまとめられています。
一部の好みはグローバルではないが、設定はグローバルな形しか持たない
「簡潔な回答がほしい」というのは、おそらくどこでも当てはまります。しかし、「イギリス英語の綴りを使う」というのは、あるクライアントには正しく、別のクライアントには間違いになります。「関数型スタイルを好む」は、特定のコードベースにのみ適用されます。
カスタム指示は設計上アカウント全体に適用され、記憶も同様にコンテキストではなく「あなた」に関するものです。そのため、コンテキストに応じた好みが、コンテキストの概念を持たないシステムに入り込んでしまい、好みが半分は正しく適用され、もう半分は煩わしいものになるという問題が発生します。「プロジェクト」機能は独自のメモリスペースを持つため役立ちますが、同時に独自の境界線も導入されるため、これはまた別のトピックになります。
一時的なチャットとアカウントの境界が、静かにループを遮断する
一見不可解なギャップを説明する、ドキュメント化された2つの挙動があります。OpenAIによると、一時的なチャット(Temporary Chats)は「既存の記憶を使用せず、新しい記憶も作成しません」。そのため、一時的なチャットで伝えた好みは保存されず、すでに持っていた好みもそこには適用されません。
また、記憶はアカウントをまたぎません。「記憶は各個人アカウントに紐づいており、同じBusinessワークスペース内であっても、他のユーザーに転送することはできません」。Businessワークスペースには、知っておくべきもう一つの落とし穴があります。ワークスペースのオーナーがワークスペースの記憶機能をオフにすると、「そのワークスペースのメンバーの既存の保存された記憶は削除されます」。あなたが蓄積してきた好みが、自分で行っていない管理上の変更によって消去される可能性があるのです。
人々が試みること
何度も、より強く言う。 「3回も言ったはずだ」というアプローチです。これは現在の会話には効果がありますが、会話は設定画面ではないため、システムに永続的な学習をさせることはできません。
非常に長いカスタム指示を入力する。 正しいシステムを選択していますが、厳しい上限に突き当たります。FreeおよびGoプランでは1,500文字、Plus、Pro、Enterprise、Business、Educationプランでは5,000文字です。好み、プロジェクトのコンテキスト、スタイルのサンプルをすべて詰め込むことはできません。削られるのは、通常、最後に追加した最も具体的で新しい内容です。
ChatGPTに「Xを好むことを覚えておいて」と頼む。 何もしないよりはマシであり、統合の一部になる可能性はあります。しかし、これは「書き込み」ではなく「リクエスト」であり、後で確認する以外に実際に保存されたかを検証する方法はありません。
記憶の要約を定期的に整理する。 本当に有用でありながら、あまり活用されていません。ただし、これは派生した成果物に対するメンテナンス作業であり、真実のソース(Source of Truth)ではなく要約を編集していることになります。
新しいアカウントでやり直す。 ノイズはリセットされますが、うまく機能していた好みも含めてすべてを失います。そして、蓄積の問題は初日から再び始まります。これはChatGPT의 記憶が満杯になったときと同じ壁に突き当たることになります。
すべてのチャットの冒頭に好みのブロックを貼り付ける。 万能のフォールバック策です。機能はしますが、すべての会話でトークンを消費し、完全にあなたの「習慣」に依存するため、デバイスやツール、アシスタントを切り替えたときには維持されません。
解決策:要件を宣言し、知識を保存し、両方の繰り返しをやめる
維持できるセットアップには3つの階層があり、よくある間違いは1つの階層に3つすべての役割を担わせようとすることです。
第1階層 — 要件(Requirements)。 常に維持されるべき少数の動作ルール。これらはカスタム指示に配置し、文字数制限に十分収まるように短く、テスト可能な形にします。「簡潔に」ではなく、「詳細を求めない限り、回答は150語以内にする」のように、評価可能なほど具体的にします。
第2階層 — 観察(Observations)。 記憶機能が得意なことを任せます。あなたがTypeScriptで開発していること、ベルリンにいること、理論よりも実例を好むことなどを検知させます。ブレが生じたときは修正し、必須の要件についてはこの機能に依存しないようにします。
第3階層 — 知識(Knowledge)。 動作ルールでもあなたに関する事実でもないすべてのこと。プロジェクトの構造、制約、決定事項、設定フィールドには長すぎるスタイルサンプルなどです。この階層はChatGPTの内部に居場所がないため、他の2つの階層に漏れ出し、それらを壊し続けています。
MemoryLakeは第3階層です。アシスタントが読み取るための記憶レイヤーであり、カスタム指示を短い好みの一覧に保ち、記憶機能をパーソナライズ機能として維持できます。セットアップは3つのステップです。
ステップ 1: APIキーを作成する
MemoryLakeにサインインし、APIキーを作成します。接続するツール間で1つの認証情報を使用します。あなたが重視する好みは、通常ChatGPTだけで完結するものではないため、これが重要になります。

ステップ 2: 最初の記憶をアップロードする
繰り返し宣言していることを、1項目につき1エントリーで書き留めます。動作の好みだけでなく、それを成立させるコンテキストも記述します。「Acmeアカウントにはイギリス英語の綴り、それ以外にはアメリカ英語」という好みは、コンテキストが一緒に移動して初めて機能します。プロジェクトの事実、制約、決定事項、そしてその理由など、1,500文字のフィールドから溢れていた素材を追加します。

エントリーは短く、単一のトピックに絞り、蓄積するのではなく削除するようにします。3月のあなたと8月のあなたの両方が含まれる好みのレイヤーは、統合システムと同じ問題を抱えることになります。
ステップ 3: AIとエージェントを接続する
使用しているツールを接続します。MemoryLakeはMCPおよびAPI経由でアクセスできるため、Claude Code、Codex、OpenClawなどのMCPネイティブエージェントはMCPサーバーを指定することで接続し、他のアシスタントはAPIを介して同じ記憶を読み取ります。要件は確実に読み込まれるフィールドに残り、コンテキストは検索可能になり、来月別のツールを使っていても同じ好みが利用可能になります。

2つの現実的な制限があります。これはChatGPTの記憶機能に書き込むものではありません。そのシステムはOpenAIのままであり、必須の好みは依然としてカスタム指示フィールドに属します。また、これは強制力ではありません。どのようなアシスタントであっても、記憶レイヤーだけでモデルを完全に従わせることはできません。
実務で何が変わるか
好みが古いバージョンのあなたに逆戻りしなくなります。 要件が推論ではなく宣言されているため、3月時点の古い結論と競合して負けることがなくなります。
文字数の上限によるトレードオフを強いられなくなります。 現在は、便利な指示を追加するために別の指示を削除しなければならないことがあります。知識が別の場所に存在する場合、フィールドには動作ルールのみが保持されるため、満杯になることはありません。
コンテキストに応じた好みが可能になります。 クライアントのコンテキストが検索可能であれば、「このクライアントにはイギリス英語の綴り」と表現できます。アカウント全体のフィールドでは、常にオンか常にオフのどちらかしか選べません。
修正内容が消えなくなります。 最も一般的な好みの消失は、会話の途中で行った修正がどこにも永続的に保存されないことです。記録するのに10秒もかからず、セッションが終了しても維持されます。
同じ好みが他のアシスタントでも機能します。 カスタム指示はChatGPT専用であり、APIはありません。Claude、Cursor、またはエージェントで必要なものはすべて外部に置く必要があります。この構成については、ChatGPT、Claude、Geminiで共通の1つの記憶で解説しています。
好みを維持するためのベストプラクティス
要件はチャットではなく、フィールドに入力する。 違反されたら不快に思うことは、すべて要件です。要件は、入力した通りに保存される場所に配置します。
すべての好みを評価可能にする。 遵守されているかどうかを確認できる好みこそ、モデルが従うことができるものです。曖昧な好みは、あなたのものではない「もっともらしい解釈」をされてしまいます。
四半期ごとに整理する。 指示フィールドと記憶機能の両方を整理します。古い好みは、「なぜこんなことをしたのか」という疑問を生む主な原因になります。
要約が間違っているように見える場合は、更新手順を使用する。 「設定」→「パーソナライズ」→「記憶の要約」→「管理」→「更新」。これはドキュメント化されており、数秒で完了しますが、ほとんどの人は開いたことがありません。
一時的なチャットで好みを伝えない。 それらは保存されません。一時的なチャットは記憶を使用せず、作成もしません。
コンテキストに応じた好みには、コンテキストを付与する。 「簡潔に」はグローバルです。「イギリス英語の綴り」はそうではありません。好みの隣に適用範囲を記述することが、それを実用的にする鍵です。
アカウント間で移行できるものは何もないと想定する。 記憶はアカウントごとに紐づいており、同じBusinessワークスペース内であっても他のユーザーに転送することはできません。チームメンバーが同じコンテキストを必要とする場合は、共有の場所に置く必要があります。
管理者が変更できる内容を把握しておく。 Businessワークスペースでは、オーナーが記憶機能をオフにすると、メンバーの既存の保存された記憶が削除されます。それが困る場合は、重要な部分は外部に保管してください。
結論
「ChatGPTに自分の好みを記憶させる」ということは、実は2つの異なるリクエストに分かれます。必須の要件はカスタム指示で宣言すべきであり、そこでは入力通りに保存され、すべてのチャットに適用されます。単なる希望に過ぎないものは記憶機能に任せることができます。これは最善を尽くす統合システムであり、便利ではありますが、失って困るものを置く場所ではありません。
システムを壊してしまうのは、誰も居場所を用意していない第3のカテゴリー、すなわち好みを意味のあるものにする「知識とコンテキスト」です。これは1,500文字のフィールドには大きすぎ、統合システムには具体的すぎます。これに独自のレイヤーを与えることで、ChatGPTの2つのシステムはそれぞれが得意なことに専念できるようになります。この症状の背後にあるメカニズムを知りたい場合は、ChatGPTが個人の好みを忘れる理由で解説しています。また、一般的なセットアップについては、ChatGPTに長期記憶を与える方法でカバーしています。