Claude Platform Docs
  • メッセージ
  • マネージドエージェント
  • 管理

Search...
⌘K
はじめに
Claudeの紹介クイックスタート
Claudeで構築する
機能の概要Messages APIの使用停止理由とフォールバック拒否とフォールバックフォールバッククレジット
モデルの機能
拡張思考適応型思考エフォートタスク予算(ベータ版)高速モード(リサーチプレビュー)構造化出力引用メッセージのストリーミングバッチ処理検索結果拒否のストリーミング多言語サポート埋め込み
ツール
概要ツール使用の仕組みチュートリアル:ツールを使うエージェントの構築ツールの定義ツール呼び出しの処理並列ツール使用Tool Runner(SDK)厳密なツール使用プロンプトキャッシングを使ったツール使用サーバーツールトラブルシューティングWeb検索ツールWeb取得ツールコード実行ツールアドバイザーツールメモリツールBashツールコンピュータ使用ツールテキストエディタツール
ツールインフラストラクチャ
ツールリファレンスツールコンテキストの管理ツールの組み合わせツール検索プログラムによるツール呼び出しきめ細かいツールストリーミング
コンテキスト管理
コンテキストウィンドウコンパクションコンテキスト編集プロンプトキャッシング会話途中のシステムメッセージオーケストレーションモードの構築キャッシュ診断(ベータ版)トークンカウント
ファイルの操作
Files APIPDFサポート画像とビジョン
スキル
概要クイックスタートベストプラクティスエンタープライズ向けスキルAPIでのスキル
MCP
リモートMCPサーバーMCPコネクタ
クラウドプラットフォーム上のClaude
Amazon BedrockAmazon Bedrock(レガシー)AWS上のClaude PlatformMicrosoft FoundryVertex AI

Log in
拒否のストリーミング
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
メッセージ/モデルの機能

ストリーミングの拒否

ストリーミングレスポンスにおける拒否のstop reasonを検出して処理し、拒否されたリクエストをフォールバックモデルで再試行します。

Claude 4モデル以降、ClaudeのAPIからのストリーミングレスポンスは、ストリーミング分類器が潜在的なポリシー違反を処理するために介入した場合に stop_reason: "refusal" を返します。この安全機能は、リアルタイムストリーミング中のコンテンツコンプライアンスの維持に役立ちます。



このページでは、ストリーミングレスポンスにおける拒否の表示方法について説明します。すべてのstop_reason値とその処理方法については、stop reasonとフォールバックを参照してください。拒否されたリクエストを別のClaudeモデルで再試行するには、拒否とフォールバックを参照してください。

APIレスポンスの形式

ストリーミング分類器がAnthropicのポリシーに違反するコンテンツを検出すると、APIは次のレスポンスを返します。

{
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello.."
    }
  ],
  "stop_reason": "refusal"
}


追加の拒否メッセージは含まれません。レスポンスを処理し、適切なユーザー向けメッセージを提供する必要があります。

拒否後のコンテキストのリセット

stop_reason: refusal を受け取った場合、続行する前に会話のコンテキストをリセットする必要があります。拒否をトリガーしたターンを削除または言い換えるか、会話履歴を完全にクリアすることができます。リセットせずに続行しようとすると、拒否が継続されます。



レスポンスが拒否された場合でも、使用量メトリクスはレスポンスに含まれます。

Claudeが出力を生成する前に拒否が到着した場合、Claude APIではそのリクエストに対して課金されず、そのレスポンス内の使用量カウントは情報提供のみを目的としています。Claudeが拒否の前に出力を生成した場合、そのリクエストに対して課金されます。



コンテキストのリセットだけが回復方法ではありません。拒否されたリクエストを別のClaudeモデルで再試行することもできます。拒否とフォールバックのページでは、サーバーサイドフォールバック、SDKミドルウェア、または手動での再試行を使用してこれを設定する方法を説明しています。

実装ガイド

アプリケーションでストリーミングの拒否を検出して処理する方法は次のとおりです。

現在の拒否タイプ

APIは現在、3つの異なる方法で拒否を処理します。

拒否タイプレスポンス形式発生タイミング
ストリーミング分類器による拒否stop_reason: refusalストリーミング中にコンテンツがポリシーに違反した場合
API入力および著作権の検証400エラーコード入力が検証チェックに失敗した場合
モデル生成による拒否標準テキストレスポンスモデル自体が拒否を判断した場合


将来のAPIバージョンでは、すべてのタイプで拒否処理を統一するために stop_reason: refusal パターンが拡張される予定です。

ベストプラクティス

  • 拒否を監視する: エラー処理に stop_reason: refusal のチェックを含めます
  • 自動的にリセットする: 拒否が検出されたときに自動的にコンテキストをリセットする機能を実装します
  • 別のモデルにフォールバックする: サーバーサイドフォールバックまたはSDKミドルウェアを設定し、拒否されたリクエストがユーザーに拒否として表示されるのではなく、別のClaudeモデルで再試行されるようにします
  • 手動再試行時にフォールバッククレジットを引き換える: 再試行を自分で構築する場合は、拒否のフォールバッククレジットトークンを渡して、再試行でプロンプトキャッシュのコストを二重に支払わないようにします
  • カスタムメッセージを提供する: 拒否が発生したときのUXを向上させるために、ユーザーフレンドリーなメッセージを作成します
  • 拒否パターンを追跡する: 拒否の頻度を監視して、プロンプトの潜在的な問題を特定します

移行に関する注意事項

この機能が最初にリリースされたときに拒否処理を構築した場合、または既存の統合に追加する場合は、以下を確認してください。

  • 拒否はエラーではなくレスポンスです。 拒否はstop_reason: "refusal"を含む成功したHTTP 200レスポンスとして到着するため、エラー率のみに基づいて構築された監視では検出されません。拒否を独自のシグナルとして追跡してください。
  • 新しいモデルはより詳細な情報を返します。 Claude Fable 5では、拒否には拒否の背後にあるポリシーカテゴリを識別するstop_detailsオブジェクトも含まれます。完全なレスポンス形式については、拒否とフォールバックを参照してください。
  • 別のモデルで再試行します。 拒否されたリクエストを同じモデルに再送信すると、通常は再び拒否されます。コンテキストをリセットするだけでなく、サーバーサイドフォールバック、SDKミドルウェア、または手動での再試行を使用してフォールバックモデルで再試行し、再試行を自分で構築する場合はフォールバッククレジットを引き換えてください。
  • バッチ結果で拒否を確認します。 Message Batch内の拒否されたリクエストは、エラー結果としてではなく、stop_reason: "refusal"を含む成功結果として返されます。
  • stop_reasonで処理を一元化します。 APIは引き続きstop_reason: "refusal"を中心に拒否処理を統合していくため、モデル固有の動作ではなくstop reasonに基づいて分岐してください。

次のステップ

拒否とフォールバック

拒否されたリクエストを、サーバーサイドまたはクライアントで別のClaudeモデルで再試行します。


stop reasonとフォールバック

すべてのstop_reason値とその処理方法。


ストリーミングメッセージ

レスポンスをストリーミングし、到着したmessage_deltaイベントからstop_reasonを読み取ります。

Was this page helpful?

  • APIレスポンスの形式
  • 拒否後のコンテキストのリセット
  • 実装ガイド
  • 現在の拒否タイプ
  • ベストプラクティス
  • 移行に関する注意事項
  • 次のステップ
client = anthropic.Anthropic()
messages = []


def reset_conversation():
    """Reset conversation context after refusal"""
    global messages
    messages = []
    print("Conversation reset due to refusal")


try:
    with client.messages.stream(
        max_tokens=1024,
        messages=messages + [{"role": "user", "content": "Hello"}],
        model="claude-opus-4-8",
    ) as stream:
        for event in stream:
            # メッセージデルタ内の拒否を確認
            if event.type == "message_delta":
                if event.delta.stop_reason == "refusal":
                    reset_conversation()
                    break
except Exception as e:
    print(f"Error: {e}")

多言語サポート

Claudeのクロスリンガル機能により、複数の言語でユーザーにサービスを提供します。