長時間AI開発の現実:コンテキストの壁と、メモリ運用

株式会社ペンタコン研究所 PentaTrail開発チーム···5分で読める
目次

AIと長く開発していると、必ず同じ壁にぶつかります。AIが、最初のほうを忘れていくのです。

会話が長くなると、AIは過去のやり取りを要約して圧縮します。長い履歴をそのまま抱え続けられないので仕組みとしては理にかなっていますが、要約は便利なぶん、細部を落とします。

01 / 要約のたびに落ちるのは、あとから効いてくる細部

仕様の細かな数値、なぜそう決めたかの背景、一度ハマって避けると決めた落とし穴。どれも会話の本筋ではないぶん、要約で真っ先に薄れていくものです。

会話が長くなると要約で細部が落ちることを示した図。長い履歴を抱えきれないので要約して圧縮するが、そのたびに仕様の細かな数値と決めた背景と避けると決めた落とし穴が薄れていく

図1:要約が落とすのは、本筋ではない細部のほう

深掘り:仕組みとしては理にかなっている

長い履歴をそのまま抱え続けることはできないので、要約そのものは正しい設計です。問題は、何が残って何が落ちるかを、こちらが選べないことにあります。

02 / 厄介なのは、要約を頼りに進めると仕様からズレること

AIが頼るのは、手元に残った要約済みの文脈です。そこからそれらしく実装が進みます。単体ではもっともらしく動くのに、最初に決めたはずの仕様とは食い違っています。

要約から仕様のズレが生まれる流れの図。要約済みの文脈をもとにそれらしく実装が進み、単体ではもっともらしく動くのに最初に決めた仕様とは食い違い、長時間セッションでいちばん多い手戻りになる

図2:長時間セッションで、いちばん多い手戻りの出どころ

深掘り:「さっき確認した」という感覚も要約に乗っている

確認したはずだから大丈夫、という感覚そのものが、薄まった記憶の上に乗っているのかもしれません。だから感覚ではなく、ファイルに書かれた事実のほうを見にいきます。

03 / 正とするのは会話の記憶ではなく、spec と plan

正とするのは、何を作るかを決める spec と、どの順番で実装するかの plan です。plan には各段階の「完了とは何か」を、機械が判定できる形で先に置いておきます。

specとplanと付録の役割を示した図。specは何を作るかと守るべき契約を決め、planはどの順番で実装するかと完了の定義を数値やコマンドで先に書き、付録は契約にかかわる値を一箇所だけに集める

図3:正とする 2 つの文書と、値を集める付録

深掘り:なぜ付録に一箇所だけ集めるのか

契約にかかわる値は本文へ散らさず、spec の末尾の付録にまとめました。しかも推測では書かず、現物を直接確認した結果として、いつ・どの時点の何を確認したかを添えて書き出します。本文も plan も同じ値を書き直さず、付録を参照するだけにしてあります。

同じ事実を二箇所に書くと、いつか片方だけが古くなって食い違うからです。一箇所に集約しておけば、要約で記憶が薄れても、付録にあたれば一次情報へ戻れます。「メモリにあるから知っている」と感じたときほど、手を止めて現物を取り直します。

04 / 自動要約に入る前に、自分からクリアして仕切り直す

要約は自動で起きますが、その中身はこちらで選べません。抱える文脈が大きくなるほど注意が散らばるので、きりのいいところで自分から区切ります。

自動要約に委ねる場合と自分で区切る場合を比べた図。自動要約は何が残り何が落ちるかを選べず文脈が膨らむほど注意が散らばるが、自分でクリアすればどこで区切るかと何を持ち越すかを決められて身軽な状態から始められる

図4:委ねるか、自分で区切るか

深掘り:もったいないようで、扱いやすい

クリアすればコンテキストはまっさらに戻り、モデルは身軽な状態で本来の力を出せます。ぼんやり要約された長い一本のセッションを引きずるより、きれいに区切られた短いセッションを重ねるほうが、制御が効いて質も保てるはずです。文脈が膨らんだ状態は、散らかった机で考えごとをするようなものです。

05 / 引き継ぎはファイルへ逃がし、git に乗せる

クリアする前に、次のセッションへの引き継ぎを残します。git に乗せておけば、別のPCでも別のオフィスでも、pull すれば同じ学びがそのまま手に入ります。

引き継ぎの2つの仕組みを示した図。ひとつは作業ログを日ごとや直近数日の単位で束ねて次の開始時に読み戻す短期記憶の役割、もうひとつは長く効く事実を種類ごとに分類して恒久のメモリへ書きgitへコミットする役割

図5:短期の作業ログと、長く効く事実の置き場

深掘り:会話は持ち運べないが、ファイルは持ち運べる

残すのは、プロジェクトの規約、進行中の作業の状態、そして何より過去の失敗とその教訓です。「この書き方をすると、ここで壊れる」「この前提は間違っていた」と一度書いておけば、次のセッションのAIは、どの場所から再開しても同じ罠を踏みません。会話のコンテキストは持ち運べませんが、ファイルへ逃がした事実は、どこからでも手繰り直せます。

06 / 手を動かす作業は任せ、事実の保持は任せない

コンテキストの壁は消えません。だから「全部ずっと覚えていてくれる」前提では使いません。

任せることと任せないことを分けた図。手を動かす作業はAIに任せるが、覚えておくべき事実の保持は任せず、specとplanとメモリという外側に置く

図6:忘れることを前提に、忘れて困るものを外へ置く

深掘り:この割り切りができて、初めて走り続けられる

覚えておくべき事実は、AI の記憶ではなく外に置きます。AI に任せるのは、その事実をもとにした作業のほうです。地味ですが、これが長時間AI開発の、いちばん現実的な作法でした。

こうした工夫を積み重ねて作っているのが PentaTrail / CTEM です。同じ「AIで継続的に見張る」発想は、会社の攻撃面にもそのまま使えます。

付録:文書の役割と、残すもの

表1:正とする文書

文書 何を決めるか
spec(仕様) 何を作るか。設計の意図と、守るべき契約(画面とサーバーのやり取りの形、列の定義、関数の入出力)
plan(実装手順) どの順番で実装するか。各段階の完了を、数値やコマンドで先に書く
付録 契約にかかわる値を一箇所だけに集める。現物を確認した時点を添える

表2:引き継ぎに残すもの

種類 中身
作業ログ どこまでやったかを素早く取り戻すための、短期の記録
規約 プロジェクト固有のコーディングの決まりごと
進行中の状態 いま何がどこまで進んでいるか
失敗と教訓 どう書くと壊れるか、どの前提が間違っていたか

表3:任せる/任せない

扱い 対象
任せる 事実をもとに手を動かす作業
任せない 覚えておくべき事実の保持(spec・plan・メモリへ置く)

PentaTrail CTEM/ASMで攻撃面を可視化しませんか?

CTEMフレームワークに基づき、外部攻撃面の発見から脆弱性検証・対応推進までを一気通貫で実現します。

お申し込みはこちら

料金を見る/他サービスとの比較・選び方