最近、WindowsのCodexアプリでメモリ機能が実装された。
これは、「前に伝えた作業ルールや好みを、次回以降もいい感じに思い出してくれる」便利な機能である。
大学生などの学生さんもそろそろChatgptだけではなく、CodexのようなAIコーディングエージェントを活用する場面も増えてくるのではないだろうか。
メモリ機能は便利な一方で「どこに保存されるの?」「勝手に何でも覚えられるの?」「削除できるの?」という不安も出てくる。
詳しいエンジニアの方からすれば、「こんな初歩的なこと誰でも知っている!」と怒られてしまうかもしれないが、
今回はCodex初心者の方に向けてCodexのメモリ機能の仕組み、保存場所などについて解説してみたいと思う。
※なお、筆者はWindowsでCodexを利用しているため、主にWindowsでの操作説明になりますのでご了承ください。
目次
Codexのメモリ機能について
Codexのメモリ機能は、過去の作業で役立ちそうな文脈を次回以降に引き継ぐための補助機能である。
たとえば、毎回、「回答は日本語でお願いします!」「小学生でもわかるように説明してください!」と説明するのは地味に面倒だ。
腹ペコの状態で寿司屋に入って、毎回「サーモンといくら多めでお願いします」と言うくらい手間である。
その手間を減らすために、Codexが安定した好みや繰り返し使う作業ルールを思い出せるようにするのがメモリ機能である。
OpenAIの公式ドキュメントでも、Codex Memoriesは過去のスレッドから有用な文脈を未来の作業に持ち越す機能として説明されている。
覚えられる内容としては、以下のようなものが想定される。
・よく使うプログラミング言語や技術スタック
・プロジェクトごとの作業ルールや注意点
・回答スタイルや好みの進め方
・過去にハマったエラーや避けたい作業パターン
・毎回実行するテストコマンドや確認手順
ここで大事なのは、Codexメモリは「手動で保存するメモ帳」とは少し違うという点だ。
「これ覚えて」と言えば必ずその場で即保存されるものではなく、Codexが過去のスレッドから役立ちそうな情報を判断して、あとからメモリとして扱う仕組みである。
つまり、Codexメモリは“作業の常連客メモ”に近い。
寿司屋で言えば、「この人はサーモンが好き」「シャリ少なめが好み」みたいな情報を覚えてくれる感じである。
このようにうまくパーソナライズさせることができるとかなり便利だ。
一方で、何でも覚えさせればよいわけではない。
APIキー、パスワード、認証トークン、個人情報、社外秘情報などはメモリに残さない前提で使うべきだ。
便利さと安全性は、マグロとワサビくらいバランスが大事である。
また、メモリは「必ず守らせるための命令」ではない。
絶対に守ってほしいルールやプロジェクト固有の重要な決まりは、メモリではなくAGENTS.mdやチェックイン済みのドキュメントに書いておく方が安全である。
メモリはあくまで、作業しやすくするための補助的な記憶と考えるとわかりやすい。
ちなみに、CodexアプリのMac版ではWindows版よりも先にメモリ機能が実装されていたようだ。
Codexメモリの保存場所はどこなのか
「Codexメモリの保存場所はどこなのか?」ということについては、CodexメモリはCodexのホームディレクトリ配下に保存される。
OpenAIの公式ドキュメントでは、CodexのメモリはデフォルトでCodexホームディレクトリである「~/.codex」配下に保存され、主なメモリファイルは「~/.codex/memories/」に置かれると説明されている。
基本の保存場所は以下である。
~/.codex/memories/
筆者の場合はWindowsでCodexアプリを使っているが、下記の場所に保存されている。
C:\Users\ユーザー名\.codex\memories\
もし、どこにあるのか迷う場合、WindowsであればエクスプローラーからCodexフォルダを検索し、その後でmemoriesフォルダを検索すると確実に見つかると思う。
このフォルダには、過去スレッドの要約、長期的に役立つ情報、最近の入力、根拠情報などが含まれる可能性がある。
ただし、これらはCodexが生成する状態ファイルなので、通常のノートアプリのように自由に追記して管理するものではない。
メモリには自由に入力できないという点はChatGPTと同じである。
【memoriesフォルダ内に見えるファイルの例】
環境やCodexのバージョンによって異なる可能性はあるが、memoriesフォルダ内では、たとえば以下のようなファイルやディレクトリが見えることがある。
・raw_memories.md:元になる記憶の素材
・rollout_summaries:過去スレッドなどの中間的な要約
・MEMORY.md:整理されたメモリ本体に近い情報
・memory_summary.md:次回読み込みやすいように圧縮された要約
特に、MEMORY.mdとmemory_summary.mdは名前が似ているので少し紛らわしい。
イメージとしては、MEMORY.mdは整理されたメモ、memory_summary.mdはそれをさらに短くまとめたダイジェスト版である。
memory_summary.mdは、「覚えさせるための保管庫」というより、「次回の作業で素早く思い出すための要約」と考えるとわかりやすい。
ただし、これらのファイル名や構成は、環境やバージョンによって変わる可能性がある。
そのため、「必ずこの名前のファイルがある」と断定するより、「このようなファイルが見えることがある」と理解しておくのが安全である。
【.gitフォルダについて】
memoriesフォルダ内を見たときに、「.git」というフォルダが表示されることもある。
この場合の.gitフォルダは、Gitの管理用データであり、メモリ本文そのものではない。
筆者も実際に.gitフォルダの中にあるファイルをいくつか覗いてみたが、メモリの内容らしきものは見つからなかった。
よってメモリの中身を確認したい場合は、.gitフォルダではなく、memoriesフォルダ内のMarkdownファイルなどを見るのが基本である。
ただし、メモリの内容は確認はできるが、手作業で編集すると何かしらの不具合が生じる可能性があるので、そのままにしておく方が安全である。
Codexメモリの設定方法と仕組み
Codexアプリのメモリ機能は初期状態ではオフであり、使うには設定で有効化する必要がある。
Codexアプリの設定画面からオンにする方法は下記のとおりである。
①Codexアプリの設定画面を開く
②画面左側の「パーソナライズ」をクリックする
③画面右側にある「メモリを有効にする」をオンにする
【メモリはすぐ保存されるとは限らない】
Codexメモリの重要ポイントは、自動的かつ非同期的に生成されることだ。
つまり、スレッドが終わった瞬間に必ずメモリが作られるわけではない。
公式ドキュメントでも、Codexはアクティブなセッションや短すぎるセッションをスキップすることがあり、メモリ更新はバックグラウンドで行われると説明されている。
筆者の場合も、Codexとのチャットのやり取りをしている最中にはメモリに保存されていなかったが、チャットのやり取りが終わってしばらくしたら自動的にメモリに保存されていた。
整理すると、以下のようになる。
・メモリ機能は初期状態ではオフ
・設定で有効化すると使えるようになる
・すべてのチャットが必ずメモリ化されるわけではない
・短すぎる会話や進行中の作業は保存されないことがある
・保存タイミングは即時とは限らない
ここはかなり大事だ。
「昨日話したのに覚えていない!」となっても、必ずしも不具合とは限らない。
短すぎる会話だったり、まだメモリ生成の対象になっていなかったりする可能性がある。
腹ペコの筆者としては、「昨日あれだけ寿司の話をしたのに覚えてないのか!」と言いたくなるが、Codex側にも処理のタイミングがあるようだ。
なお、メモリ機能には「ツール使用チャットをスキップ」という機能がある。
これは以下のような情報を使った作業をメモリに残さないという設定だ。
・MCPツールから取得した情報
・Web検索で取得した情報
ちなみにMCPツールとは、AIが外部のデータベースや各種ツールと連携するための共通規格・接続ルールとなっている。
簡単にいうと、AIがいろいろなアプリやデータとつながるための共通の接続口ともいえる。
社内情報や外部サービス由来の情報がメモリに混ざると困る場面もあるため、仕事でCodexを使う方はこのあたりを確認しておくと安心だ。
メモリを確認・管理するときの注意点
Codexメモリは確認できるが、基本的にはCodex側の設定や管理方法を優先した方が安全である。
確認したい場合は、まず保存場所である以下のフォルダを開く。
~/.codex/memories/
Windowsなら以下の場所を確認する。
C:\Users\ユーザー名\.codex\memories\
中身を見ることで、どのような情報がメモリとして生成されているかを確認できる場合がある。
ただし、これはCodexが生成した状態ファイルであるため、普段から手動編集して管理する前提のものではない。
公式ドキュメントでも、メモリファイルはトラブルシュート時やCodexのディレクトリを共有する前に確認できる一方、手作業で編集することを主な制御方法にしないよう説明されている。
【削除よりも先に、残さない運用を考える】
メモリを管理するときは、「あとから消せばよい」と考えるより、最初から不要な情報を残さない運用にする方が安全である。
特に仕事や学習プロジェクトで使う場合は、以下のような点を意識したい。
・不要な記憶を増やさない
・必要に応じてメモリ機能を無効化する
・Codexのディレクトリを共有する前にメモリファイルを確認する
特に、Codexのディレクトリを誰かに共有する場合は注意が必要である。
自分では何気ない作業メモだと思っていても、プロジェクト名、作業方針、内部事情などが含まれている可能性がある。
寿司屋で「この人はサーモンが好き」と覚えられるのはうれしい。
しかし、「この人の住所と財布事情も知ってます」まで行くと、さすがに「ヌオォォォ!」である。
【秘密情報はメモリに入れない】
Codexはメモリ生成時に秘密情報を除外しようとする仕組みを持つが、それでも利用者側の注意は必要である。
OpenAI公式ドキュメントでも、メモリに秘密情報を保存しないことや、Codexのホームディレクトリを共有する前に内容を確認することが推奨されている。
特に以下の情報は、メモリに残さない前提で扱いたい。
・APIキー
・パスワード
・認証トークン
・個人情報
・顧客情報
・社外秘データ
・機密性の高いプロジェクト情報
・一時的な調査メモ
メモリは便利だが、万能の金庫ではない。
「覚えてくれる=安全に保管してくれる」と考えるのは危険である。
AIに作業を任せるときほど、どの情報を渡すか、どの情報を残さないかを意識したい。
ここを雑にすると、あとで「ヌオォォォ!」では済まない事態になる。
ちなみに、うっかりメモリに機密情報などを保存してしまった場合は、Codexアプリの設定から入るパーソナライズの画面に、「メモリをリセット」という項目があるので、そちらからリセットして削除することが可能だ。
考察・まとめ
Codexのメモリ機能は、過去の作業文脈を次回以降に活かせる便利な補助機能である。
毎回同じ説明を繰り返さなくてよくなるため、開発や学習のテンポはかなり良くなる。
特に、よく使う技術スタック、作業ルール、回答スタイル、プロジェクトの注意点などを思い出してくれるのは大きなメリットだ。
一方で、Codexメモリは「必ず守らせるルール置き場」ではない。
なので、ルールを徹底して守らせたい場合は、カスタム指示を設定しておくのがおすすめだ。
カスタム指示の設定の仕方としては下記である。
①Codexの設定画面を開く
②画面左側の「パーソナライズ」をクリックする
③画面右側に「カスタム指示」という項目があるのでAIへの指示を入力する
このようにしてカスタム指示を設定できるが、このカスタム指示も筆者の経験上たまに抜け落ちることもあるので、その場合はチャットで改めてAIへ指示することになる。
なお、Codexアプリのメモリ機能についてはアプリの画面上に”試験運用中”との表記があるので、今後アップデートされて機能が拡充される可能性もある。
今後もCodexの進化には期待していきたい。










PAGE TOP