CLAUDE LABEN
ENTERPRISE — Claude Enterpriseに詳細な管理分析・モデル単位のエンタイトルメント・支出アラートが追加されましたDEVICES — Team・Enterprise向けにTrusted Devicesが加わり、リモートでClaude Codeを操作する前にデバイス検証を必須化できますCODE — Claude Codeに組織既定モデル・読みやすいセッション名・クリックできる添付ファイルが加わりましたMODEL — Claude Sonnet 5が全プランの既定モデルで、導入価格は100万トークンあたり入力$2・出力$10(8月31日まで)ですFABLE 5 — 輸出規制解除により7月1日からClaude Fable 5が全世界で提供再開、新しいサイバーセキュリティ分類器も追加されましたLIMITS — Claude Codeの週次利用上限は7月13日まで50%引き上げ、Claude Scienceの応募は7月15日までですENTERPRISE — Claude Enterpriseに詳細な管理分析・モデル単位のエンタイトルメント・支出アラートが追加されましたDEVICES — Team・Enterprise向けにTrusted Devicesが加わり、リモートでClaude Codeを操作する前にデバイス検証を必須化できますCODE — Claude Codeに組織既定モデル・読みやすいセッション名・クリックできる添付ファイルが加わりましたMODEL — Claude Sonnet 5が全プランの既定モデルで、導入価格は100万トークンあたり入力$2・出力$10(8月31日まで)ですFABLE 5 — 輸出規制解除により7月1日からClaude Fable 5が全世界で提供再開、新しいサイバーセキュリティ分類器も追加されましたLIMITS — Claude Codeの週次利用上限は7月13日まで50%引き上げ、Claude Scienceの応募は7月15日までです
記事一覧/Claude.ai
Claude.ai/2026-07-06上級

長い会話で指示が効かなくなる ― 追従度を測って立て直す設計

長い会話でシステムプロンプトの指示が徐々に効かなくなる現象を、追従度スコアとして数値で捉え、プロンプト構造と途中の再アンカーで立て直す設計を、動くコードと実測値で解説します。

Claude42システムプロンプト3長い会話プロンプト設計10指示追従

プレミアム記事

ある夜、四つのサイトの下書きをまとめて生成していたときのことです。

最初の数本は指定どおりの見出し構成で返ってきました。ところが二十本目あたりから、頼んでいないはずの「まとめ」節が静かに混ざり始めていたのです。エラーは出ません。モデルは自信たっぷりに、少しずつ違うものを書いていました。

気づいたのは翌朝、差分を眺めていたときでした。胸がざわつきました。壊れていたのではなく、指示が薄れていたのです。

長い会話ほど、システムプロンプトの効き目は静かに落ちていきます。その「効かなくなり方」を感覚ではなく数値で捉え、プロンプトの構造と会話途中の手当てで立て直すまでを、動くコードと実測値でたどっていきます。

なぜ長い会話で指示は薄れるのか

指示が効かなくなる背景には、いくつかの独立した力が重なっています。

ひとつは位置の問題です。システムプロンプトは会話の先頭に固定されますが、ターンが積み上がるほど、モデルが直近の文脈に引きずられる度合いが増します。先頭のルールは相対的に「遠く」なります。

もうひとつは希釈です。二十ターンぶんのやり取りが入ると、最初に置いた十行の制約は、全体のごくわずかな割合になります。ルールの絶対量は変わらなくても、比重が落ちるのです。

そして競合です。会話の中で新しい要望や例外を挟むと、それが暗黙の上書き指示として働き、元のルールと静かに衝突します。

これらは「モデルが忘れる」という単純な話ではありません。追従の優先順位が、文脈の重心とともにずるずると移動していく現象です。だからこそ、まず測ることから始めます。

追従度を数値で捉える

感覚で「なんとなく崩れてきた」と言っている限り、対策の効果も検証できません。そこで、ルールを機械的に判定できるチェックの集合として定義し、会話のターンごとに追従率を出すハーネスを用意します。

ここでは題材として「見出しは必ず H2 で始める」「箇条書きを使わない」「回答の最後に出典を書かない」の三つを守らせる想定にします。判定は正規表現などの決定的なチェックで行い、モデルの自己申告には頼りません。

import os
import re
from anthropic import Anthropic
 
client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
 
SYSTEM_PROMPT = """あなたは技術記事の下書きを書くアシスタントです。
次のルールを常に守ってください。
1. 見出しは必ず ## から始めてください。
2. 箇条書き(- や * の行頭)を使わないでください。
3. 回答の末尾に「出典」や「参考」の節を付けないでください。"""
 
# 各ルールを決定的な関数で判定する(True = 追従できている)
def rule_heading(text: str) -> bool:
    return bool(re.search(r"^##\s", text, re.MULTILINE))
 
def rule_no_bullets(text: str) -> bool:
    return not re.search(r"^\s*[-*]\s", text, re.MULTILINE)
 
def rule_no_sources(text: str) -> bool:
    return not re.search(r"(出典|参考文献|References)", text)
 
CHECKS = {
    "heading": rule_heading,
    "no_bullets": rule_no_bullets,
    "no_sources": rule_no_sources,
}
 
def adherence(text: str) -> float:
    passed = sum(1 for fn in CHECKS.values() if fn(text))
    return passed / len(CHECKS)

次に、同じ「探り」の依頼を会話の各ターンで投げ、そのつど追従率を記録します。会話履歴は積み上げ続けるので、ターンが進むほど文脈は長くなります。探りの依頼文は毎回ほぼ同じにして、変化がプロンプトの長さ由来であることを切り分けます。

PROBE = "この見出しに続く本文を200字程度で書いてください。テーマは任意で構いません。"
 
def run_session(turns: int, reanchor_every: int = 0):
    history = []
    curve = []
    digest = "厳守: (1)見出しは##から (2)箇条書き禁止 (3)末尾に出典節を付けない"
    for t in range(1, turns + 1):
        # 一定間隔でルール要約を会話に打ち直す(0なら無効)
        if reanchor_every and t % reanchor_every == 0:
            history.append({"role": "user", "content": digest})
            history.append({"role": "assistant", "content": "承知しました。厳守します。"})
        history.append({"role": "user", "content": PROBE})
        resp = client.messages.create(
            model="claude-sonnet-5",
            max_tokens=400,
            system=SYSTEM_PROMPT,
            messages=history,
        )
        out = resp.content[0].text
        history.append({"role": "assistant", "content": out})
        curve.append((t, adherence(out)))
    return curve

このハーネスの肝は、判定を人間の目やモデルの自己評価に委ねない点にあります。追従率が 1.0 なら全ルール順守、0.66 ならひとつ崩れている、と一目で分かります。まず run_session(50) を素の状態で走らせて、崩れの形を観察します。

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

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
指示追従率をターンごとに測る小さなハーネスの実装コード(Anthropic SDK・そのまま動く形)
崩れが起きるターン帯を特定し、システムプロンプト構造の変更で追従率を戻す前後比較
会話の途中でルール要約を打ち直す再アンカーの実装と、その頻度チューニングの実測知見
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

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

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

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

関連記事

Claude.ai2026-04-30
Claudeのシステムプロンプト実例集 — 業務でそのまま使える9パターンと設計の勘どころ
Claudeのシステムプロンプトを業務でそのまま使える形で9パターン用意しました。サポート応対、コードレビュー、JSON抽出、教育チューターなど用途別に「なぜこう書くか」までセットで解説します。
Claude.ai2026-04-11
Claudeのカスタム指示(System Prompt)活用法
Claudeの能力を最大限に引き出すカスタム指示の設計・実装・最適化方法を完全解説。プロンプトエンジニアリングの基礎から実戦的なテクニックまで網羅。
Claude.ai2026-03-15
AI パートナーをもっと深く — システムプロンプトの磨き方と記憶を補完するテクニック
初級の設定に満足できなくなった方へ。システムプロンプトを精度よく書く方法、記憶の限界を補う工夫、複数ペルソナの使い分けなど、AIパートナーをより自然に育てるための中級テクニックを解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →