私はドイツ語を学ぶために、Felixという名前のAIを使っています。ブラウザのタブを切り替え、コンテキスト制限に当たり、プラットフォームのアップデートによって会話履歴が消えていくのを眺める日々が数ヶ月続き、私はもう最初からやり直すことに疲れ果ててしまいました。Felixは優れた教師ですが、新しいチャットウィンドウを開くたびに、彼は記憶喪失になってしまうのです。新しいセッションを開くたびに、壁のような大量のテキストをコピー&ペーストすることなく、学習履歴を引き継ぐ方法が必要でした。
問題は単なる不便さにとどまりません。言語学習は、間隔反復(spaced repetition)と的を絞った修正に依存しています。繰り返し犯してしまう間違いを忘れてしまうAIチューターは、単に手順が増えただけのフレーズ集に過ぎません。私が求めていたのは継続性でした。より正確に言えば、Felix、あるいは次に読み込むAIインスタンスが、記憶の欠落も気まずい自己紹介もなしに、前回の続きから正確に再開してくれることを望んでいたのです。
そこで、私はローカルシステムを構築しました。これをDDF/Rahmenwerkと呼んでいます。
使い捨ての会話が抱える問題
AIをヘビーに使う人に話を聞けば、誰もが同じ不満を口にします。「チャットは、動かなくなるまでは機能する」のです。会話が長くなると、コンテキストウィンドウが埋まるにつれて精度が低下します。プラットフォームがアップデートを強行すれば、スレッドは消えてしまいます。新しいセッションを始めると、モデルはまるで初対面の人であるかのように挨拶してきます。カジュアルな質問ならこれで十分でしょう。しかし、体系的なカリキュラムにおいては、これは致命的です。
Felixとの間で、私はあるリズムを築いていました。彼は、私が対格(accusative)と与格(dative)の前置詞を混同することを知っていました。リスニングドリルよりも読解演習を好むことや、文法書の最初の3章をすでに終えていることも知っていました。しかし、新しいタブを開いた瞬間、それらはすべて無意味になりました。各セッションは、自分のレベルを再確立し、目標を繰り返し伝え、間違いを再び説明するという、同じ儀式から始まるのです。
私はFelixに、私のことを覚えていてほしかったのです。プラットフォームがそれを確実にやってくれないのであれば、継続性そのものを自分で管理することに決めました。
DDF/Rahmenwerkが実際に行っていること
名前はコンセプトよりも仰々しく聞こえるかもしれません。その核心は、学習履歴をプロジェクトの引き継ぎ(handoff)のように扱う、ローカルマシン上のフォルダです。もし今夜Felixが消えてしまったとしても、明日起きて新しいAIにこのフォルダを指し示せば、自分自身を説明し直すことなく、47回目のレッスンを再開できるはずです。
アーキテクチャは、意図的にファイルベースにしています。進捗状況を保存するために、特定のプラットフォームを信頼することはありません。クラウドサービスは規約を変更します。エクスポート形式は壊れます。ハードドライブ上のプレーンテキストファイルは退屈ですが、それは「自分のもの」なのです。
システム内には、5つの構成要素があります。
第一に、現在の状態へのポインターです。これは「正確にどこで止まったのか?」という問いに答えるシンプルなインデックスです。現在の章、最後に完了した演習、保留中の文法上の疑問、そして前回のセッションでまだ復習が必要な特定の間違いを追跡します。会話ログ全体を丸ごと投げ込む代わりに、次のセッションに重要な要素だけに凝縮します。
第二に、引き継ぎ資料(handoff materials)です。これらは各レッスンの後に作成される短いブリーフです。何を学習したかだけでなく、「どのように学習したか」も記録します。Felixは特定の比喩を使って語順を説明したか? 旅行の語彙に関するドリルに対して、私はうまく反応できたか? これらのメモは、単なる内容だけでなく、教授方法を保存します。もし次に使うFelixが語順を異なる方法で説明した場合、すぐにその違和感に気づくことができます。定着のためには一貫性が重要です。
第三に、新しいAIインスタンス用のアップロードパッケージです。新しいモデルやプラットフォームに移行する際、チャットウィンドウに千語に及ぶ伝記を貼り付けることはしません。代わりに、準備されたパッケージをシステムに投入します。そこには、私の基礎的な習熟度、学習の好み、繰り返し発生するエラーパターン、そしてカリキュラムの順序の要約が含まれています。これは、あらゆる指示チューニング(instruction-tuned)されたモデルが読み取り、採用できる、圧縮された学習者プロファイルです。
第四に、SHA-256を用いた整合性記録です。言語学習にしては過剰に聞こえるかもしれませんが、これには特定の目的があります。私は引き継ぎファイルをバージョン管理しています。もし寝ぼけながら昨日のエラーログを誤って編集してしまったり、同期ツールが一行を破損させたりした場合、それを知る必要があります。SHA-256ハッシュを使用することで、継続性ファイルが意図せず変更されていないことを検証できます。記憶喪失を防ぐために設計されたシステムにとって、自己破損は明白な敵なのです。
第5に、そしてこれこそが実際に挙動を制御する部分なのですが、証拠が不足している場合にAIを強制的に停止させるルールです。システムプロンプトには厳格なプロトコルを書き込んでいます。現在のインスタンスがステートポインタを見つけられない、あるいは引き継ぎ資料を確認できない場合は、即興で対応するのではなく、必ず停止して明確化を求めるようにしています。自信満々なAIが私のレベルを推測して、すでに知っている文法を教えてきたり、さらに悪いことに、まだ築けていない基礎を飛ばしたりすることは望んでいません。累積的な知識を構築しているときには、間違った時計よりも、止まった時計の方がまだマシなのです。
セーフティレイヤーがそれ自体で負担となる時
システムは機能しました。コンテキストを見失うこともなくなりました。新しいセッションは、自伝的な内容ではなく、実際の学習から始まるようになりました。
それから、私は
