わかるでしょう。最初は切れ味のよかったチャットも、40個目のメッセージに達する頃には、指示の半分を無視する回答を返したり、10個前のメッセージで自分が言ったことと矛盾したり、1時間前に修正した一般的なデフォルト設定に戻ったりします。何かが「壊れた」わけではありません。モデルの性能が落ちたわけでもありません。変わったのは、あなたに返答する前にモデルが読まなければならないテキストの山です。
長いチャットの内部で実際に起きていること
AIモデルがあなたに返すすべての返信は、その時点までの会話全体を読み取って生成されます。元の指示、すべての追加質問、すべての修正、すべての脱線、すべての「そういえば、これもできますか...」が含まれ、次に何が来るべきかを予測するのです。この会話全体の記録はコンテキストウィンドウと呼ばれ、会話が長くなっても小さくはなりません。メッセージごとに大きくなり、開始時よりもはるかに多くのテキストを抱えるようになります。
チャットの初期段階では、あなたの指示がコンテキストのほぼすべてです。モデルの仕事は簡単です。明確な概要を読み、それに従えばよいのです。30個目のメッセージまで進むと、元の概要ははるかに長い文書のごく一部になり、特定の編集、特定の数字、特定の一度限りの依頼についてのやり取りが何十件も重なった下に埋もれます。モデルは技術的には元の指示をコンテキスト内に「持って」います。しかし今やそれらは薄まり、より大量の、より最近で、より具体的で、しばしば矛盾するテキストと注意を奪い合っています。
だから長いチャットは一気に破綻するわけではありません。徐々に劣化します。モデルは初期のメッセージよりも最近のメッセージを重く評価し始めます(これは多くの場合、正しい判断です。最近の情報は通常、関連性を示すからです)。しかし、土台となるルールが同じく古くなっていくスレッド内にあると、「最近」と「重要」が混同されます。5分前の何気ないコメントが、トランスクリプト内での位置だけを理由に、1時間前の基準を定める指示よりも優先されることがあるのです。
もう1つ、より目立たないコストがあります。モデルは、より複雑になった文書から、毎回あなたの意図を再導出しなければなりません。「あなたはシニアグロース戦略担当者で、常にXの形式で出力し、常にYを避ける」と明確な指示として読む代わりに、言い換えや、会話の途中で認めた例外、1つの特定のタスクにしか適用されなかった編集を通して、同じ内容を読み取ることになります。すり合わせるテキストが増えるほど、モデルが内容を平均化したり、曖昧にしたり、一度も繰り返されなかった制約をひそかに取り落としたりする余地が増えます。
人々が取りがちな2つの対策と、どちらも情報を失う理由
1つ目の対策: 上にスクロールして元の指示をもう一度貼り付ける
これは最も一般的な応急処置です。最初のメッセージまでさかのぼり、最初に送った概要をコピーして、40番目のメッセージあたりに「念のため、これに従ってください」といった文言とともに貼り直します。5回ほどの返信には効果があります。しかし、コンテキストウィンドウの仕組み自体は何も変えていないため、同じずれがまた起こります。すでに膨れ上がった記録に指示のコピーをもう一つ追加しただけなので、チャットはさらに長くなり、シグナルとノイズの比率は改善されず、プロジェクトの残りの期間も、時々この作業を続けることになります。
対策2:まったく新しいチャットを始め、すべてを入力し直す
もう一つよくある方法は、より思い切ったものです。スレッドを放棄して、新しく始めることです。これは希薄化の問題を解決します。新しいチャットはコンテキストが短く整理されているため、指示が再び明確に読まれます。しかし、ノイズと一緒に、価値あるものまで捨てることになります。そのプロジェクトに対してAIがうまく機能していた理由である、タスク固有の有用なコンテキストです。教え込んだ例、すでに確認したエッジケース、一緒に決めた方針。そのすべてが失われます。ゼロから作り直すことになり、チャットの外のどこにも保存していないかもしれない指示を、記憶や古いメッセージの捜索に頼って再構築することにもなります。
どちらの対策も症状には対処します。しかし、根本的な問題は解決していません。ROLE、FORMAT、STANDARDSが、増え続けるやり取りの山の中以外にはどこにも存在していないことです。
シニアグロース戦略家の役割、出力形式、基準を固定する、コンパクトで再利用可能なSkillファイル。新しいチャットを白紙から始めるのではなく、最初から的確に始められます。
Sofia - グロースマーケティング戦略家を見る →より良い解決策:シグナルとノイズを分ける
本当の解決策は、スクロールの工夫でも、やり直しでもありません。指示を置く場所を構造的に変えることです。増え続けるスレッドの最初のメッセージ内にROLE、FORMAT、STANDARDSを置く代わりに、小さな独立ファイルであるSkillに置きます。必要なときにそのファイルを新しいチャットやClaude/ChatGPTのプロジェクトに読み込めば、その後の会話は目の前のタスクだけに集中できます。
会話を、これまで絡み合っていた2つの層に分けると考えてみてください。
- シグナル - 決して変わらず、薄まってもいけないもの。AIが何者として振る舞うのか、出力を正確にどうフォーマットするのか、常に適用される基準や制約は何か。これはチャットの外にあるSkillファイルに置きます。
- ノイズ - このタスク、この週、この一連のやり取りに固有のもの。「もっと短くして」「このクライアントの数字を使って」「いや、もう一つのバージョンで」。これはチャット内に存在し、長くなっても問題ありません。モデルの注意を、核となる指示と奪い合うものではないからです。
この2つの層を分離すると、長期プロジェクトは1つの長く劣化していくチャットではなくなります。skillファイルから読み込んだまったく同じ鋭い指示セットで毎回開始する、整理されたチャットの連続になります。それぞれのチャットでは、何が「良い成果」なのかを再び議論する必要なく、実際の作業に必要なだけ自由に長く取り組めます。新しいチャットとクリーンなコンテキストという対処法2の新鮮さを、記憶からすべてを再入力するという対処法2のコストなしで得られます。指示がそもそも古いスレッドに閉じ込められていなかったからです。
これは、2つのよくない対処法ではどちらも解決できない問題、つまりセッション間の一貫性も解決します。基準が頭の中にあり、その都度少しずつ違う形で再入力していると、品質は1つのチャット内だけでなく、プロジェクトごとにもぶれていきます。skillファイルなら毎回同じファイルを使えます。一度バージョン管理し、新しいことを学んだら改善すれば、その改善が今後のすべてのチャットに即座に引き継がれます。
アナリティクスのスレッドは長くなります。ダッシュボード、イベントスキーマ、レポートの実施頻度などです。Rafaはskillファイルで分析基準を固定しているため、プロジェクトの6週目も初日と同じ厳密さに従います。
Rafa - Marketing Analytics Specialistを見る →実際には次のようになります
数週間にわたる業務、たとえば成長監査、継続的なアナリティクス構築、クライアントとのコンサルティングプロジェクトを進めているとします。話の筋を少しずつ見失う1つの長大なチャットではなく、次のような形になります。
- あなたのROLE/FORMAT/STANDARDSはskillファイル(システムプロンプトやClaude/ChatGPTのプロジェクト指示として貼り付けるような、短く構造化されたドキュメント)に記載します。
- 各作業セッション、またはプロジェクトの新しいフェーズごとに、そのskillファイルを読み込んだ新しいチャットを開始します。
- 基盤となる指示が同じ記録の中でより新しいテキストに押し流されることがないため、チャット自体は実際のタスクに必要なだけ長く、複雑になって構いません。
- 今後のすべてのセッションに適用すべきこと、たとえば書式の好みや、何度も繰り返し伝えなければならない制約を学んだら、今後のすべてのチャットではなく、skillファイルを一度編集します。
その結果、長期プロジェクト全体で品質が右肩下がりになるのではなく、一定に保たれます。コンテキストウィンドウと格闘しているわけではありません。そもそも常設の指示を記憶し続けるという、決して得意ではなかった仕事をAIに求めていないだけです。
マッキンゼーで鍛えられた構造化思考を、毎回のセッションに新しく読み込みます。これにより、長期のコンサルティング案件が、過負荷になった1つのチャットスレッドのドリフトを引き継ぐことはありません。
Thomas - ビジネスコンサルタントを見る →あなたやチームが実際にAIチャットをどう使っているかを入力し、再度promptを作成する場合と永続的なSkillファイルを使う場合の、月間トークン浪費量と費用を正確に見積もれます。登録不要、メール不要。この投稿の計算をあなたの数値に当てはめるだけです。
計算機を試す →よくある質問
同じチャットで以前に伝えた指示を、AIが「忘れた」ように見えるのはなぜですか?
文字どおり忘れたわけではありません。テキストは今もコンテキストウィンドウ内にあります。しかし会話が長くなるにつれて、元の指示がモデルの考慮すべき情報全体に占める割合はどんどん小さくなり、より最近のメッセージが応答に大きな影響を与えやすくなります。忘れたように見える結果は、実際には希釈です。
新しいチャットを始めるのが一番簡単な解決策ではありませんか?
新しいチャットのクリーンなコンテキストという利点を得ながら、メモリーの負担は生じません。常設指示がチャットの外部に完全に保存されるからです。
Skillファイルと、より長く詳細なpromptの違いは何ですか?
長いpromptもチャット内に残り、他のメッセージと同じように時間とともに古くなるため、長いスレッドでは同じ希釈の影響を受けます。Skillファイルは特定の会話から独立しているため、新しいチャットやプロジェクトの開始時に毎回新しく読み込めます。そのため、最近のメッセージとモデルの注意を奪い合うことも、特定のタスクのノイズを蓄積することもありません。