CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/Claude.ai
Claude.ai/2026-04-12初級

Claude が会話の途中で文脈を忘れる原因と、今日からできる5つの対策

Claude が長い会話で前の指示を忘れる・文脈を見失う問題の原因をコンテキストウィンドウの仕組みから解説し、すぐに実践できる5つの対策を紹介します。

troubleshooting61context-window6memory5tips3beginner6

30回やりとりした頃に「さっき言ったこと」が消えている

Claude と長くやりとりしていると、ある瞬間から前半の指示が反映されなくなります。「最初に頼んだフォーマットと違う」「さっき共有したデータを参照してくれない」——この現象に心当たりがあるなら、それは Claude の不具合ではなく、コンテキストウィンドウという仕組み上の制約が原因です。

Claude はチャットの「履歴」を人間のように記憶しているわけではありません。会話のたびに、これまでのやりとり全体をひとつのテキストとしてモデルに渡しています。このテキストの上限がコンテキストウィンドウで、Claude Sonnet 4.6 では約200Kトークン(日本語で概算15万文字程度)です。上限を超えると古いメッセージから順に切り落とされ、Claude は文字通り「見えなくなった部分」を参照できなくなります。

問題は、上限に達する前からパフォーマンスが落ちるという点にあります。実運用では、コンテキストの60〜70%を超えたあたりから、初期の指示への忠実度が下がり始める。これは注意機構(Attention)が長い入力の中で情報の優先度を判断する際、新しい情報に重みが偏るためです。

「忘れている」のか「見えていない」のかを切り分ける

対策を打つ前に、まず状況を正しく診断したい。Claude が文脈を失っているように見えるとき、原因は大きく3つに分かれます。

パターン1: コンテキストウィンドウの圧迫。会話が長すぎて、古いメッセージが切り落とされているケース。Claude の Web アプリでは、会話が長くなると自動的に古い部分が要約・省略されます。API 利用の場合はトークン数の管理が開発者に委ねられるため、意識しないと突然品質が落ちる。

パターン2: 指示の埋没。コンテキスト自体は残っているが、大量のやりとりの中で重要な指示が「薄まっている」ケース。100行の会話の中に1行だけ書いたルールは、モデルにとって見つけにくい。

パターン3: 矛盾する指示。会話の途中で前の指示と矛盾する依頼をしたケース。Claude は最新の指示を優先する傾向があるため、意図せず上書きしてしまうことがあります。

それぞれ対策が異なるので、まずどのパターンに該当するかを確認しよう。簡単な診断方法は、Claude に「この会話で私が最初にお願いしたことを要約してください」と聞くことです。正確に要約できれば指示の埋没か矛盾、要約できなければコンテキストの圧迫が原因と判断できます。

対策1: 重要な指示はシステムプロンプトかプロジェクトに置く

会話本文に書いた指示は、やりとりが進むほど埋もれていく。一方、システムプロンプト(API の system パラメータ)や Claude Projects のプロジェクト指示は、毎回のリクエストで最優先の位置に配置されます。

# API利用時: システムプロンプトに恒久的な指示を配置する
import anthropic
 
client = anthropic.Anthropic()
 
response = client.messages.create(
    model="claude-sonnet-4-6-20260312",
    max_tokens=1024,
    system="あなたはテクニカルライターです。回答は必ず以下のルールに従ってください:\n"
           "1. 見出しは## を使い、### 以下は使わない\n"
           "2. コード例には必ずコメントを付ける\n"
           "3. 1つの回答は500文字以内に収める",
    messages=[
        {"role": "user", "content": "Pythonのリスト内包表記について教えてください"}
    ]
)
 
print(response.content[0].text)
# → システムプロンプトのルール通りにフォーマットされた回答が返る

Web 版の Claude を使っているなら、Projects 機能を活用するのが最も手軽です。プロジェクトの「カスタム指示」欄に書いた内容は、そのプロジェクト内のすべての会話で自動的に適用されます。

対策2: 会話を「章」に分けて新しいチャットを始める

これは最もシンプルだが、最も効果的な方法です。1つの会話で何でも済ませようとせず、テーマや工程が変わるタイミングで新しい会話を始める。

たとえばコードレビューを依頼する場合、「設計の相談」「実装のレビュー」「テストの作成」を3つの会話に分ける。前の会話の結論を次の会話の冒頭に数行で要約して渡せば、文脈は十分に引き継げる。

私の経験では、1つの会話は 20〜30回のやりとり を目安に区切るのがバランスがよい。コードを多くペーストする会話ではもっと早く——10回程度で区切ることもあります。

対策3: 「リマインド」を会話の途中で挟む

長い会話を続けざるを得ない場合、10〜15回のやりとりごとに重要なルールを再提示するテクニックが有効です。

[通常のやりとりを10回ほど続けた後]

ユーザー: 続きの作業に入る前に、この会話のルールを確認させてください。
- 出力フォーマット: Markdown、見出しは##のみ
- 文字数制限: 500文字以内
- コード例には必ずコメントを付ける
これを踏まえて、次のタスクに進みましょう。[次の依頼内容]

ポイントは、リマインドを独立したメッセージにせず、次の依頼と一緒に送ること。こうすることで Claude は「ルールの再確認」と「新しいタスク」をセットで処理するため、指示の反映率が大幅に上がる。

対策4: API利用時はトークン数を監視して会話を自動分割する

API で Claude を使っている場合、usage フィールドでトークン消費量を追跡できます。閾値を設けて自動的に会話をリセットする仕組みを入れておくと、品質劣化を未然に防げる。

# 会話のトークン数を監視し、閾値で自動リセット
MAX_CONTEXT_RATIO = 0.6  # コンテキストの60%を超えたらリセット
MAX_TOKENS = 200000  # Claude Sonnet 4.6のコンテキスト上限
THRESHOLD = int(MAX_TOKENS * MAX_CONTEXT_RATIO)
 
conversation_history = []
 
def chat(user_message: str) -> str:
    conversation_history.append({"role": "user", "content": user_message})
 
    response = client.messages.create(
        model="claude-sonnet-4-6-20260312",
        max_tokens=1024,
        system="あなたのシステムプロンプト",
        messages=conversation_history
    )
 
    assistant_message = response.content[0].text
    conversation_history.append({"role": "assistant", "content": assistant_message})
 
    # トークン使用量をチェック
    total_tokens = response.usage.input_tokens + response.usage.output_tokens
    if total_tokens > THRESHOLD:
        # 会話の要約を生成してリセット
        summary = summarize_conversation(conversation_history)
        conversation_history.clear()
        conversation_history.append({
            "role": "user",
            "content": f"前の会話の要約: {summary}\n\n続きをお願いします。"
        })
        print(f"⚠ コンテキスト {total_tokens}/{MAX_TOKENS} トークン — 会話をリセットしました")
 
    return assistant_message

このパターンでは input_tokens の値が重要です。output_tokens はレスポンス分なので、実際にコンテキストを圧迫するのは input_tokens の方です。閾値は控えめに60%としているが、用途に応じて調整してほしい。Prompt Caching を併用すれば、リセット後も頻出コンテンツのキャッシュが効くためコストも抑えられます。詳しくはPrompt Caching によるコスト最適化ガイドを参照してほしい。

対策5: Claude Code ユーザーは CLAUDE.md を活用する

Claude Code を使っている場合、プロジェクトルートの CLAUDE.md ファイルが自動的にコンテキストに含まれます。ここにプロジェクト固有のルール——コーディング規約、ディレクトリ構成、禁止事項などを書いておけば、セッションをまたいでも一貫した応答が得られます。

# CLAUDE.md の実践的な書き方の例
 
## コーディング規約
- TypeScript strict モードを使用
- エラーは try-catch で必ずハンドリングする
- console.log はデバッグ後に削除する
 
## このプロジェクトの構成
- src/api/ — APIルート(Hono.js)
- src/lib/ — 共通ユーティリティ
- src/components/ — React コンポーネント
 
## 禁止事項
- any 型の使用禁止
- 既存のテストを削除しない

CLAUDE.md に書いた内容はセッションが変わっても毎回読み込まれるため、「前のセッションで決めたルールが反映されない」という問題を根本的に解消できます。詳しい設計パターンはCLAUDE.md 設計パターンガイドで解説しています。

次のアクション: まず「診断」から始める

Claude が文脈を忘れているように感じたら、すぐに対策を講じる前に「この会話で最初にお願いしたことを要約して」と聞いてみてほしい。原因がわかれば、5つの対策のうちどれが効くかは自然と見えてくる。

プログラミングにおけるデバッグと同じで、「何が起きているか」を正確に把握することが、最も早い解決への近道です。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Claude.ai2026-04-27
Claude の Web 検索が動かないときに見直したい7つのチェックポイント
Claude の Web 検索が反応しない・古い情報しか返らない・特定サイトを取得できない、といった症状を実例ベースで一つずつ切り分けます。
Claude.ai2026-07-09
Claudeのクレジットカード拒否・課金エラーを完全解決する方法
Claudeのサブスクリプション登録や更新でクレジットカードが拒否される・課金エラーが発生するときの原因と対処法を徹底解説。海外決済ブロックからStripe決済エラー、請求住所の不一致まで実際の解決手順を紹介します。
Claude.ai2026-06-15
長時間走るエージェントの文脈が静かに劣化する — コンテキスト予算と圧縮の設計
夜通し走るエージェントの判断が朝には雑になる。原因は文脈の蓄積による希釈です。コンテキストを予算として配り、劣化を計測し、圧縮で健全に保つ設計を、動くコードと実測の勘所つきで扱います。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →