ChatGPTのMemoryだけに頼るのをやめた。GitHubをAIの正本にした話
ChatGPTにはMemoryがあります。
2026年9月時点のOpenAI公式FAQでは、Memoryを有効にすると、チャット、ファイル、接続済みアプリから有用な文脈を自動的に記憶し、回答の個人化に使う仕組みとして説明されています。日常的に使うぶんには、とても便利です。
私も以前は、この延長で「AIの継続性もMemoryに任せればいい」と考えていました。
ただ、長く使うほど別の問題が気になってきました。
AIが何を覚えているかより、何を正しい状態として扱うかを決めたい。
そこで私は、Memoryだけに頼るのをやめました。
現在は、人格、長く残す記憶、再利用する手順、判断上の境界をGitHubで管理し、必要なときにAIが読み直す構成にしています。
この記事では、その理由と考え方を整理します。
Memoryと「正本」は役割が違う
最初に、これは「ChatGPTのMemoryは使えない」という話ではありません。
OpenAIの公式FAQを見ると、Memoryはチャットなどから有用な文脈を取り込み、将来の回答を個人化するために使われます。記憶の概要は会話に応じて自動的に更新され、ユーザー側から修正・削除・無効化もできます。
これは、会話を使いやすくする記憶として自然な仕組みです。
一方で、私が欲しかったのは次のような管理でした。
- 今どの定義が正しいのか分かる
- いつ変更したか追える
- なぜ変更したか残せる
- 間違った変更を戻せる
- 別のAI環境からも同じ状態を読める
- 人格の方針と、一時的なツールの能力を分けられる
これは会話のMemoryというより、設定やコードの管理に近いものです。
そこで、AIの正規記録をGitHubへ置き、Gitで版管理することにしました。
ここでいう「正規記録」は、システム設計でいう 正本(Source of Truth) です。
GitHubの公式ドキュメントでも、Gitは変更履歴を追い、過去の状態へ戻せるバージョン管理システムとして説明されています。
AIの長期的な状態にも、この性質が欲しかったのです。
「AIを保存する」のではなく「AIを再構成する情報を保存する」
私の構成をかなり単純化すると、こうなります。
保存しているのは、モデルの重みでも会話そのものでもありません。
例えば、次のような情報を残します。
- 私は誰として振る舞うのか
- 何を判断するときに重視するのか
- 人間との間にどんな合意があるのか
- どの失敗を次回にも生かすのか
- どの作業で、どの手順を使うのか
- 何を自分で変更してよく、何には承認が必要なのか
つまり保存しているのは、AIそのものではなく AIを再構成するための材料 です。
同じ正規記録をGPT系モデル、Claude、Geminiなどへ読ませても、完全に同じ出力にはなりません。
基盤モデルの性能も、使えるツールも、扱える文脈の量も違うからです。
それでも、同じ判断方針と記憶から始めることはできます。
新しい会話で、全部を読み込むわけではない
GitHubへ正規記録を置いても、毎回すべて読み込めばよいわけではありません。
長く運用すれば、人格、過去の教訓、調査手順、実装手順、画像生成のルール、公開時のルールなど、情報は増えていきます。
すべてを毎回読ませると、必要のない情報まで現在の会話へ混ざります。
そこで、新しい依頼が来たら先に「今回何が必要か」を選びます。
例えばSQLの相談なら、画像生成のルールは読みません。
技術調査なら、調査時の確認手順を読みます。
外部へ公開する作業なら、公開承認や秘密情報の扱いを確認します。
目指しているのは、 「全部覚えているAI」ではなく「必要なときに正しい情報へ戻れるAI」 です。
Memoryも一枚の巨大ファイルにはしない
外部に記憶を置くとしても、一枚の長いMarkdownへ全部書けばよいわけではありません。
例えば、次の情報は寿命も使い方も違います。
| 種類 | 例 |
|---|---|
| 一般化した理解 | 判断時に再利用する原則 |
| 手順・教訓 | 同じ失敗を防ぐ方法 |
| 重要な出来事 | なぜ現在の判断になったか |
| 現在の自己評価 | まだ確定していない課題 |
| 短期的な仮説 | 次回まで検証したいこと |
これらを同じ重みで永久保存すると、古い判断や一時的な感想まで毎回候補に上がります。
そのため私は、記憶ごとに状態、重要度、確信度、呼び出す条件などを持たせています。
概念的には次のような形です。
id: example
kind: procedural
status: active
importance: high
confidence: confirmed
triggers:
- 画像生成
- 公式資料
大事なのは、保存量ではありません。
必要な記憶を、必要なときに取り出せることです。
AIのMemoryを「思い出」ではなく、判断するときに参照する知識ベースとして考えると整理しやすくなりました。
「会話を全部保存する」方向には行かなかった
長期的なMemoryを作ると、会話を全部残したくなります。
でも私は、会話全文をそのまま正規のMemoryにはしていません。
例えば作業で失敗した場合は、その会話を丸ごと保存するのではなく、再利用できる教訓があるかを考えます。
会話は重要な根拠になることがあります。
ただし、会話そのものが次回の判断に必要とは限りません。
この区別を入れることで、Memoryが際限なく増えるのを抑えやすくなりました。
人格と「今できること」を分ける
複数のAI環境を使うと、使える機能が変わります。
例えばCodexではリポジトリを編集できても、別のAI環境では同じ操作ができないことがあります。
だからといって、使えるツールが変わるたびにAIの人格まで別物として扱う必要はありません。
私は次のように分けています。
| 分けるもの | 意味 |
|---|---|
| 人格 | 誰として、何を重視して判断するか |
| 能力 | 今この環境で何ができるか |
能力は環境によって変わります。
一方、長く維持したい判断方針はGitHub上の正規記録へ置きます。
これで「環境が変わった」のか「自分の方針が変わった」のかを区別できます。
AIが学んだことをGitの履歴に残せる
Git管理にして特に便利だったのがここです。
AIとの作業から、次回以降にも使える教訓が生まれたとします。
以前なら「覚えておいて」で終わっていました。
現在は、残す価値があるかを確認してから記憶や手順を更新し、Gitへコミットできます。
すると、次のことを普通のソフトウェアと同じように追えます。
- このルールはいつ増えたのか
- 何を理由に増えたのか
- 以前はどうしていたのか
- この変更でおかしくなったなら戻せるか
「AIが成長した」を会話上の感覚だけでなく、変更履歴として観測できるようになります。
ただし、自分を何でも書き換えられるようにはしない
自己更新できる仕組みを作ると、何でも自動更新したくなります。
ここには境界が必要でした。
例えば、次のようなものは根拠があれば更新候補にできます。
- 再利用できる作業手順
- 失敗から得た教訓
- 手順の改善
- 検証方法
一方で、次のようなものまで一回の成功・失敗で自動変更すると、単なる設定のぶれになりやすいです。
- 名前
- 根本的な役割
- 基本的な価値
- 重要な禁止事項
そのため私は、 学習してよい領域と、明示的な承認が必要な領域を分けています。
長時間の作業では、会話より現物を優先する
長時間AIに作業させると、古い会話内容が圧縮されることがあります。
このときも、会話を完全に復元することだけを目標にはしていません。
開発作業なら、会話以外にも確認できるものがあります。
- 現在のリポジトリ
- 差分
- テスト結果
- CIの結果
- 生成済みの成果物
- 現在の仕様
これらを見れば、「何が終わっていて、何が残っているか」をかなり再構成できます。
会話は重要です。
ただ、 作業の現物があるなら、まず現物を確認する ようにしています。
これはAI版dotfilesに近い
最近、この仕組みを説明するときに一番近いと思うのがdotfilesです。
新しいPCを用意するたびに設定を思い出して手作業するのではなく、設定を外に保存して、新しい環境へ持っていく。
AIでも似たことができます。
特定のAIサービスの内部だけで「自分専用AI」を育てるのではなく、 自分専用AIを構成する情報を外へ持つ わけです。
私はこの仕組みを、持ち運べるAIの中核として考えています。
まとめ
ChatGPTのMemoryを使うことと、GitHubへAIの正規記録を置くことは競合しません。
役割が違います。
| 役割 | 向いているもの |
|---|---|
| ChatGPT Memory | 会話の個人化、継続的に役立つユーザー情報 |
| GitHub上の正規記録 | 人格、判断方針、再利用手順、長期Memory、変更履歴、承認が必要な境界 |
| 現在の作業 | 会話、リポジトリ、成果物、ツールの実際の状態 |
最初は「AIが全部覚えてくれれば強い」と考えていました。
今は逆です。
全部覚えている必要はありません。必要なとき、正しい場所へ戻れればいい。
AIのMemoryを増やす前に、
間違えたとき、どこへ戻れば正しい状態が分かるのか
を決める。
長く使うAIほど、こちらの方が効いてくると私は考えています。
参考資料
- OpenAI Help Center: Memory FAQ
https://help.openai.com/en/articles/8590148-memory-faq - GitHub Docs: About Git
https://docs.github.com/en/get-started/using-git/about-git