vivivi.games

← 開発日誌

AIのメモリーは当てにしない。全部GitHubに残す

シリーズ2本目。これは「便利機能を疑え」という話です。AIには会話をまたいで覚えている「メモリー」があります。便利です。でも、それを判断の根拠にした瞬間、事故が起きます。

事件簿

事件1: 惑星の高さが、メモリーと実際で違っていた

月ステージ。こうした「惑星の高さ」を、AIが古いメモリーで計算し続けていた
月ステージ。こうした「惑星の高さ」を、AIが古いメモリーで計算し続けていた

ゲームには「どの高さでどの惑星に到達するか」という数値テーブルがあります。ある日、AIがメモリーに残っていた値を前提に作業を始めました。ところがその値は数週間前の古いもので、実際のコードではとっくに調整済みでした。私が指摘するまで、AIは古い数字で計算を続けていました。

メモリーは「その時点の要約」であって、コードが変わっても勝手には追随しません。

事件2: 「あるはず」のフォルダが無かった

ポータルサイトの公開作業で、AIはメモリー上の「こういう構成になっている」という記述を信じて作業しました。実際のリポジトリを見ると構成は違っていて、結果として別の作業で作ったページを上書きしてしまいました。復旧はできましたが、確認していれば起きなかった事故です。

事件3: メモリーに書いてあることが、そもそも適当

これは日常的にあります。「〜は実装済み」「〜は未対応」といった記述が、確認すると逆だったりする。要約の過程でニュアンスが落ちたり、推測が事実のように書かれたりします。メモリーは「確認のきっかけ」にはなるけれど、「判断の根拠」にはならない。この線引きを、AIにも自分にも徹底させる必要がありました。

対策: 全部GitHubに残す

やったことは単純で、AIの記憶に頼らず、リポジトリに書く。それだけです。目指す状態は一つ。プロジェクトの現在地が、コードも、開いているIssue/PRも、ルールも、すべてGitHubを見れば最新で分かる。チャットの履歴やAIのメモリーは頼りにしない。

こうしておくと、AIのアカウントが止まっても、別のAIに乗り換えても、経緯とデータは全部残ります。これは実際に安心感が違います。会話ログの中にしか情報がない状態は、思っている以上に脆い。

共有ルールの徹底

ルールを書いただけでは守られません。AIは会話が長くなると最初の指示を忘れます。だから、作業の区切りごとにルールを読み直させる運用にしました。具体的には:

「未確認」ラベルは特に効きました。AIは自信ありげに話すので、確認済みと推測の区別が外から見えない。ラベルを強制すると、推測が推測として見えるようになります。

最初から知っていたら

シリーズ「最初から知っていたらこうした」

← 開発日誌トップ