Loading...
    • 開発者ガイド
    • APIリファレンス
    • MCP
    • リソース
    • リリースノート
    Search...
    ⌘K
    最初のステップ
    Claudeの紹介クイックスタート
    モデルと価格
    モデル概要モデルの選択Claude 4.5の新機能Claude 4.5への移行モデルの廃止予定価格
    Claudeで構築
    機能概要Messages APIの使用コンテキストウィンドウプロンプトのベストプラクティス
    機能
    プロンプトキャッシングコンテキスト編集拡張思考エフォートストリーミングメッセージバッチ処理引用多言語サポートトークンカウント埋め込みビジョンPDFサポートFiles API検索結果構造化出力
    ツール
    概要ツール使用の実装方法トークン効率的なツール使用細粒度ツールストリーミング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がセッションとセッション再開をどのように処理するかを理解する

    セッション管理

    Claude Agent SDKは、会話状態と再開を処理するためのセッション管理機能を提供します。セッションを使用すると、完全なコンテキストを維持しながら、複数のやり取りにわたって会話を継続できます。

    セッションの仕組み

    新しいクエリを開始すると、SDKは自動的にセッションを作成し、初期システムメッセージでセッションIDを返します。このIDをキャプチャして、後でセッションを再開できます。

    セッションIDの取得

    import { query } from "@anthropic-ai/claude-agent-sdk"
    
    let sessionId: string | undefined
    
    const response = query({
      prompt: "Webアプリケーションの構築を手伝ってください",
      options: {
        model: "claude-sonnet-4-5"
      }
    })
    
    for await (const message of response) {
      // 最初のメッセージは、セッションIDを含むシステム初期化メッセージです
      if (message.type === 'system' && message.subtype === 'init') {
        sessionId = message.session_id
        console.log(`セッションが開始されました。ID: ${sessionId}`)
        // このIDを後で再開するために保存できます
      }
    
      // 他のメッセージを処理...
      console.log(message)
    }
    
    // 後で、保存されたsessionIdを使用して再開できます
    if (sessionId) {
      const resumedResponse = query({
        prompt: "中断したところから続けてください",
        options: {
          resume: sessionId
        }
      })
    }

    セッションの再開

    SDKは以前の会話状態からのセッション再開をサポートし、継続的な開発ワークフローを可能にします。セッションIDとresumeオプションを使用して、以前の会話を継続します。

    import { query } from "@anthropic-ai/claude-agent-sdk"
    
    // IDを使用して以前のセッションを再開
    const response = query({
      prompt: "中断したところから認証システムの実装を続けてください",
      options: {
        resume: "session-xyz", // 以前の会話からのセッションID
        model: "claude-sonnet-4-5",
        allowedTools: ["Read", "Edit", "Write", "Glob", "Grep", "Bash"]
      }
    })
    
    // 会話は以前のセッションからの完全なコンテキストで継続されます
    for await (const message of response) {
      console.log(message)
    }

    SDKは、セッションを再開する際に会話履歴とコンテキストの読み込みを自動的に処理し、Claudeが中断したところから正確に継続できるようにします。

    セッションのフォーク

    セッションを再開する際、元のセッションを継続するか、新しいブランチにフォークするかを選択できます。デフォルトでは、再開は元のセッションを継続します。forkSessionオプション(TypeScript)またはfork_sessionオプション(Python)を使用して、再開状態から開始する新しいセッションIDを作成します。

    セッションをフォークするタイミング

    フォークは以下の場合に有用です:

    • 同じ開始点から異なるアプローチを探索する
    • 元のセッションを変更せずに複数の会話ブランチを作成する
    • 元のセッション履歴に影響を与えずに変更をテストする
    • 異なる実験のために別々の会話パスを維持する

    フォーク vs 継続

    動作forkSession: false(デフォルト)forkSession: true
    セッションID元のセッションと同じ新しいセッションIDが生成される
    履歴元のセッションに追加再開ポイントから新しいブランチを作成
    元のセッション変更される変更されずに保持される
    使用例線形会話を継続代替案を探索するためにブランチ

    例:セッションのフォーク

    import { query } from "@anthropic-ai/claude-agent-sdk"
    
    // まず、セッションIDをキャプチャ
    let sessionId: string | undefined
    
    const response = query({
      prompt: "REST APIの設計を手伝ってください",
      options: { model: "claude-sonnet-4-5" }
    })
    
    for await (const message of response) {
      if (message.type === 'system' && message.subtype === 'init') {
        sessionId = message.session_id
        console.log(`元のセッション: ${sessionId}`)
      }
    }
    
    // セッションをフォークして異なるアプローチを試す
    const forkedResponse = query({
      prompt: "今度はこれをGraphQL APIとして再設計しましょう",
      options: {
        resume: sessionId,
        forkSession: true,  // 新しいセッションIDを作成
        model: "claude-sonnet-4-5"
      }
    })
    
    for await (const message of forkedResponse) {
      if (message.type === 'system' && message.subtype === 'init') {
        console.log(`フォークされたセッション: ${message.session_id}`)
        // これは異なるセッションIDになります
      }
    }
    
    // 元のセッションは変更されず、まだ再開できます
    const originalContinued = query({
      prompt: "REST APIに認証を追加してください",
      options: {
        resume: sessionId,
        forkSession: false,  // 元のセッションを継続(デフォルト)
        model: "claude-sonnet-4-5"
      }
    })
    • セッションIDの取得
    • フォーク vs 継続