Loading...
    • 개발자 가이드
    • API 레퍼런스
    • MCP
    • 리소스
    • 릴리스 노트
    Search...
    ⌘K
    시작하기
    Claude 소개빠른 시작
    모델 및 가격
    모델 개요모델 선택Claude 4.6의 새로운 기능마이그레이션 가이드모델 지원 중단가격
    Claude로 구축하기
    기능 개요Messages API 사용중지 사유 처리프롬프트 모범 사례
    컨텍스트 관리
    컨텍스트 윈도우압축컨텍스트 편집
    기능
    프롬프트 캐싱확장 사고적응형 사고노력 수준메시지 스트리밍배치 처리인용다국어 지원토큰 카운팅임베딩비전PDF 지원Files API검색 결과구조화된 출력
    도구
    개요도구 사용 구현 방법세분화된 도구 스트리밍Bash 도구코드 실행 도구프로그래밍 방식 도구 호출컴퓨터 사용 도구텍스트 편집기 도구웹 페치 도구웹 검색 도구메모리 도구도구 검색 도구
    Agent Skills
    개요빠른 시작모범 사례엔터프라이즈용 SkillsAPI로 Skills 사용
    Agent SDK
    개요빠른 시작TypeScript SDKTypeScript V2 (미리보기)Python SDK마이그레이션 가이드
    스트리밍 입력실시간 응답 스트리밍중지 사유 처리권한 처리사용자 승인 및 입력훅으로 실행 제어세션 관리파일 체크포인팅SDK에서 구조화된 출력Agent SDK 호스팅AI 에이전트 안전한 배포시스템 프롬프트 수정SDK에서 MCP커스텀 도구SDK에서 서브에이전트SDK에서 슬래시 명령어SDK에서 Agent Skills비용 및 사용량 추적할 일 목록SDK에서 플러그인
    API에서 MCP
    MCP 커넥터원격 MCP 서버
    서드파티 플랫폼의 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    프롬프트 엔지니어링
    개요프롬프트 생성기프롬프트 템플릿 사용프롬프트 개선기명확하고 직접적으로 작성예시 사용 (멀티샷 프롬프팅)Claude에게 생각하게 하기 (CoT)XML 태그 사용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: "Help me build a web application",
      options: {
        model: "claude-opus-4-6"
      }
    })
    
    for await (const message of response) {
      // 첫 번째 메시지는 세션 ID가 포함된 시스템 초기화 메시지입니다
      if (message.type === 'system' && message.subtype === 'init') {
        sessionId = message.session_id
        console.log(`Session started with ID: ${sessionId}`)
        // 나중에 재개하기 위해 이 ID를 저장할 수 있습니다
      }
    
      // 다른 메시지 처리...
      console.log(message)
    }
    
    // 나중에 저장된 sessionId를 사용하여 재개할 수 있습니다
    if (sessionId) {
      const resumedResponse = query({
        prompt: "Continue where we left off",
        options: {
          resume: sessionId
        }
      })
    }

    세션 재개

    SDK는 이전 대화 상태에서 세션을 재개하는 것을 지원하여 지속적인 개발 워크플로우를 가능하게 합니다. 이전 대화를 계속하려면 세션 ID와 함께 resume 옵션을 사용하세요.

    import { query } from "@anthropic-ai/claude-agent-sdk"
    
    // 세션 ID를 사용하여 이전 세션 재개
    const response = query({
      prompt: "Continue implementing the authentication system from where we left off",
      options: {
        resume: "session-xyz", // 이전 대화의 세션 ID
        model: "claude-opus-4-6",
        allowedTools: ["Read", "Edit", "Write", "Glob", "Grep", "Bash"]
      }
    })
    
    // 이전 세션의 전체 컨텍스트와 함께 대화가 계속됩니다
    for await (const message of response) {
      console.log(message)
    }

    SDK는 세션을 재개할 때 대화 기록과 컨텍스트 로딩을 자동으로 처리하여 Claude가 중단된 곳에서 정확히 계속할 수 있도록 합니다.

    세션 간 파일 변경 사항을 추적하고 되돌리려면 파일 체크포인팅을 참조하세요.

    세션 포크

    세션을 재개할 때 원래 세션을 계속하거나 새 브랜치로 포크할 수 있습니다. 기본적으로 재개하면 원래 세션이 계속됩니다. 재개된 상태에서 시작하는 새 세션 ID를 생성하려면 forkSession 옵션(TypeScript) 또는 fork_session 옵션(Python)을 사용하세요.

    세션을 포크해야 하는 경우

    포크는 다음과 같은 경우에 유용합니다:

    • 동일한 시작점에서 다른 접근 방식을 탐색하고 싶을 때
    • 원본을 수정하지 않고 여러 대화 브랜치를 만들고 싶을 때
    • 원래 세션 기록에 영향을 주지 않고 변경 사항을 테스트하고 싶을 때
    • 다른 실험을 위해 별도의 대화 경로를 유지하고 싶을 때

    포크 vs 계속

    동작forkSession: false (기본값)forkSession: true
    세션 ID원본과 동일새 세션 ID 생성
    기록원래 세션에 추가재개 지점에서 새 브랜치 생성
    원래 세션수정됨변경 없이 보존
    사용 사례선형 대화 계속대안 탐색을 위한 브랜치

    예시: 세션 포크하기

    import { query } from "@anthropic-ai/claude-agent-sdk"
    
    // 먼저 세션 ID를 캡처합니다
    let sessionId: string | undefined
    
    const response = query({
      prompt: "Help me design a REST API",
      options: { model: "claude-opus-4-6" }
    })
    
    for await (const message of response) {
      if (message.type === 'system' && message.subtype === 'init') {
        sessionId = message.session_id
        console.log(`Original session: ${sessionId}`)
      }
    }
    
    // 다른 접근 방식을 시도하기 위해 세션을 포크합니다
    const forkedResponse = query({
      prompt: "Now let's redesign this as a GraphQL API instead",
      options: {
        resume: sessionId,
        forkSession: true,  // 새 세션 ID를 생성합니다
        model: "claude-opus-4-6"
      }
    })
    
    for await (const message of forkedResponse) {
      if (message.type === 'system' && message.subtype === 'init') {
        console.log(`Forked session: ${message.session_id}`)
        // 이것은 다른 세션 ID가 됩니다
      }
    }
    
    // 원래 세션은 변경되지 않으며 여전히 재개할 수 있습니다
    const originalContinued = query({
      prompt: "Add authentication to the REST API",
      options: {
        resume: sessionId,
        forkSession: false,  // 원래 세션 계속 (기본값)
        model: "claude-opus-4-6"
      }
    })

    Was this page helpful?

    • 세션 ID 가져오기
    • 포크 vs 계속