Loading...
    • 開発者ガイド
    • APIリファレンス
    • MCP
    • リソース
    • リリースノート
    Search...
    ⌘K
    最初のステップ
    Claudeの紹介クイックスタート
    モデルと価格
    モデル概要モデルの選択Claude 4.5の新機能Claude 4.5への移行モデルの廃止予定価格
    Claudeで構築
    機能概要Messages APIの使用コンテキストウィンドウプロンプトのベストプラクティス
    機能
    プロンプトキャッシングコンテキスト編集拡張思考エフォートストリーミングメッセージバッチ処理引用多言語サポートトークンカウント埋め込みビジョンPDFサポートFiles API検索結果構造化出力Google Sheetsアドオン
    ツール
    概要ツール使用の実装方法トークン効率的なツール使用細粒度ツールストリーミングBashツールコード実行ツールプログラマティックツール呼び出しコンピュータ使用ツールテキストエディタツールWebフェッチツールWeb検索ツールメモリツールツール検索ツール
    エージェントスキル
    概要クイックスタートベストプラクティスAPIでスキルを使用
    エージェントSDK
    概要TypeScript SDKPython SDK移行ガイド
    ガイド
    ストリーミング入力権限の処理セッション管理SDKの構造化出力エージェントSDKのホスティングシステムプロンプトの変更SDKのMCPカスタムツールSDKのサブエージェントSDKのスラッシュコマンドSDKのエージェントスキルコストと使用状況の追跡ToDoリストSDKのプラグイン
    APIのMCP
    MCPコネクタリモートMCPサーバー
    サードパーティプラットフォームのClaude
    Amazon BedrockMicrosoft FoundryVertex AI
    プロンプトエンジニアリング
    概要プロンプトジェネレータプロンプトテンプレートを使用プロンプト改善ツール明確で直接的に例を使用(マルチショットプロンプティング)Claudeに考えさせる(CoT)XMLタグを使用Claudeに役割を与える(システムプロンプト)Claudeの応答を事前入力複雑なプロンプトをチェーン長いコンテキストのヒント拡張思考のヒント
    テストと評価
    成功基準を定義テストケースを開発評価ツールの使用レイテンシの削減
    ガードレールを強化
    ハルシネーションを削減出力の一貫性を向上ジェイルブレイクを軽減ストリーミング拒否プロンプトリークを削減Claudeをキャラクターに保つ
    管理とモニタリング
    Admin API概要使用状況とコストAPIClaude Code Analytics API
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

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

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • 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
    • Catalog
    • 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
    ガイド

    ストリーミング入力

    Claude Agent SDKの2つの入力モードとそれぞれの使用場面について理解する

    概要

    Claude Agent SDKは、エージェントとやり取りするための2つの異なる入力モードをサポートしています:

    • ストリーミング入力モード(デフォルト&推奨) - 永続的でインタラクティブなセッション
    • 単一メッセージ入力 - セッション状態と再開を使用するワンショットクエリ

    このガイドでは、各モードの違い、利点、使用例について説明し、アプリケーションに適したアプローチを選択するのに役立ちます。

    ストリーミング入力モード(推奨)

    ストリーミング入力モードは、Claude Agent SDKを使用する推奨方法です。エージェントの機能へのフルアクセスを提供し、豊富でインタラクティブな体験を可能にします。

    エージェントが長時間実行されるプロセスとして動作し、ユーザー入力を受け取り、割り込みを処理し、許可リクエストを表示し、セッション管理を処理することを可能にします。

    動作原理

    利点

    画像アップロード

    視覚的分析と理解のためにメッセージに直接画像を添付

    キューイングされたメッセージ

    順次処理される複数のメッセージを送信、割り込み可能

    ツール統合

    セッション中のすべてのツールとカスタムMCPサーバーへのフルアクセス

    フックサポート

    様々なポイントで動作をカスタマイズするためのライフサイクルフックを使用

    リアルタイムフィードバック

    最終結果だけでなく、生成される応答をリアルタイムで確認

    コンテキストの永続化

    複数のターンにわたって会話コンテキストを自然に維持

    実装例

    import { query } from "@anthropic-ai/claude-agent-sdk";
    import { readFileSync } from "fs";
    
    async function* generateMessages() {
      // 最初のメッセージ
      yield {
        type: "user" as const,
        message: {
          role: "user" as const,
          content: "このコードベースをセキュリティ問題について分析してください"
        }
      };
      
      // 条件またはユーザー入力を待機
      await new Promise(resolve => setTimeout(resolve, 2000));
      
      // 画像付きのフォローアップ
      yield {
        type: "user" as const,
        message: {
          role: "user" as const,
          content: [
            {
              type: "text",
              text: "このアーキテクチャ図をレビューしてください"
            },
            {
              type: "image",
              source: {
                type: "base64",
                media_type: "image/png",
                data: readFileSync("diagram.png", "base64")
              }
            }
          ]
        }
      };
    }
    
    // ストリーミング応答を処理
    for await (const message of query({
      prompt: generateMessages(),
      options: {
        maxTurns: 10,
        allowedTools: ["Read", "Grep"]
      }
    })) {
      if (message.type === "result") {
        console.log(message.result);
      }
    }

    単一メッセージ入力

    単一メッセージ入力はより簡単ですが、より制限があります。

    単一メッセージ入力を使用する場合

    以下の場合に単一メッセージ入力を使用してください:

    • ワンショット応答が必要な場合
    • 画像添付、フックなどが不要な場合
    • ラムダ関数などのステートレス環境で動作する必要がある場合

    制限事項

    単一メッセージ入力モードは以下をサポートしません:

    • メッセージ内の直接的な画像添付
    • 動的メッセージキューイング
    • リアルタイム割り込み
    • フック統合
    • 自然な複数ターン会話

    実装例

    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    // シンプルなワンショットクエリ
    for await (const message of query({
      prompt: "認証フローを説明してください",
      options: {
        maxTurns: 1,
        allowedTools: ["Read", "Grep"]
      }
    })) {
      if (message.type === "result") {
        console.log(message.result);
      }
    }
    
    // セッション管理で会話を継続
    for await (const message of query({
      prompt: "次に認可プロセスを説明してください",
      options: {
        continue: true,
        maxTurns: 1
      }
    })) {
      if (message.type === "result") {
        console.log(message.result);
      }
    }