Claude Platform Docs
Managed Agents영구 메모리 구축

드림

Claude가 과거 세션을 되돌아보며 에이전트의 메모리를 정리하고 새로운 인사이트를 도출하도록 합니다.

에이전트는 작업하면서 메모리 스토어에 기록하지만, 이러한 기록은 국소적이고 점진적입니다. 여러 세션을 거치면서 메모리 스토어에는 중복, 모순, 오래된 항목이 쌓이게 됩니다.

Dreams(드림)는 Claude가 이를 정리할 수 있게 합니다. 드림은 기존 메모리 스토어를 과거 세션 트랜스크립트와 함께 읽은 다음, 새롭게 재구성된 메모리 스토어를 생성합니다. 중복은 병합되고, 오래되었거나 모순된 항목은 최신 값으로 대체되며, 새로운 인사이트가 도출됩니다.

입력 스토어는 절대 수정되지 않으므로, 출력을 검토한 후 결과가 마음에 들지 않으면 폐기할 수 있습니다.

작동 방식

드림은 다음을 입력으로 받는 비동기 작업입니다.

  • 기존 메모리 스토어: Claude가 검증하고, 중복을 제거하고, 재구성하는 스토어
  • 1~100개의 세션: Claude가 패턴과 인사이트를 찾아내어 출력에 반영하기 위해 분석하는 과거 트랜스크립트

드림은 입력과 별개인 또 다른 출력 메모리 스토어를 생성합니다. 출력 스토어 ID는 드림이 running 상태가 된 직후, 워크플로가 입력 스토어를 복제하고 나면 드림의 outputs[]에 나타납니다. running 상태의 드림은 잠시 동안 빈 outputs[]를 보고할 수 있습니다.

드림 생성

dream = client.beta.dreams.create(
    inputs=[
        {"type": "memory_store", "memory_store_id": store_id},
        {"type": "sessions", "session_ids": [session_a, session_b]},
    ],
    model="claude-opus-4-8",
    instructions="Focus on coding-style preferences; ignore one-off debugging notes.",
)
print(dream.id)  # drm_01...

드리밍 입력에는 기존 메모리 스토어와 세션 배열이 포함됩니다. 선택한 모델이 드리밍 파이프라인을 실행합니다. 리서치 프리뷰 기간 동안에는 claude-opus-5, claude-fable-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-5, claude-sonnet-4-6이 지원됩니다. 선택적으로 instructions를 전달하여 드리밍 프로세스를 조정할 수 있습니다. instructions로 조정하기를 참조하세요.

응답은 status: "pending"인 전체 dream 리소스입니다.

{
  "type": "dream",
  "id": "drm_01AbCDefGhIjKlMnOpQrStUv",
  "status": "pending",
  "inputs": [
    { "type": "memory_store", "memory_store_id": "memstore_01Hx..." },
    { "type": "sessions", "session_ids": ["sesn_01...", "sesn_02..."] }
  ],
  "outputs": [],
  "model": { "id": "claude-opus-4-8" },
  "instructions": "Focus on coding-style preferences; ignore one-off debugging notes.",
  "session_id": null,
  "created_at": "2026-04-29T17:04:10Z",
  "ended_at": null,
  "archived_at": null,
  "usage": {
    "input_tokens": 0,
    "output_tokens": 0,
    "cache_read_input_tokens": 0,
    "cache_creation_input_tokens": 0
  },
  "error": null
}

instructions로 조정하기

선택 사항인 instructions 필드는 드리밍 파이프라인이 무엇을 종합할지 조정합니다. 이는 파이프라인 전반에 걸쳐 적용됩니다. 무엇을 자세히 읽을지, 무엇을 병합하거나 제거할지, 출력 스토어를 어떻게 구조화할지 등입니다.

instructions는 집중 영역("코딩 스타일 선호도에 집중"), 변경 없이 보존할 콘텐츠, 스토어 전체에 적용하려는 출력 규칙과 같은 상위 수준의 종합 지침에 사용하세요. 파이프라인은 입력에 대한 종합 과정이지 스토어의 텍스트에 적용되는 편집기가 아니므로, 특정 줄을 대상으로 하는 명령형 지시("문장 X를 Y로 변경", "섹션 Z의 개수 수정")는 일반적으로 아무런 변화를 일으키지 않습니다. 개별 메모리를 대상으로 편집하려면 출력 스토어에 직접 Memory Stores API를 사용하세요.

진행 상황 추적

드림은 비동기적으로 실행되며, 입력 트랜스크립트 수에 따라 일반적으로 몇 분에서 몇 시간이 걸립니다. ID로 드림을 폴링하여 상태를 확인하세요.

while dream.status in ("pending", "running"):
    time.sleep(10)
    dream = client.beta.dreams.retrieve(dream.id)
    print(f"status={dream.status} input_tokens={dream.usage.input_tokens}")

수명 주기

status의미
pending드림이 성공적으로 생성되어 대기열에 추가되었습니다.
running파이프라인이 처리 중입니다. 작업이 진행됨에 따라 usage가 업데이트됩니다.
completed성공적으로 완료되었습니다. outputs[] 값이 새 메모리 스토어입니다.
failed드리밍 실행이 오류로 종료되었습니다. 출력 메모리 스토어는 실패 전에 기록된 내용 그대로 남아 있습니다.
canceled드리밍 실행이 취소되었습니다. 출력 메모리 스토어는 그대로 남아 있습니다.

파이프라인 실행 관찰

드림이 running 상태가 되면, session_id 필드는 파이프라인을 실행하는 기반 세션을 가리킵니다. 해당 세션의 이벤트를 스트리밍하여 드림이 무엇을 읽고 쓰는지 실시간으로 관찰할 수 있습니다. 드림이 종료 상태에 도달하면 세션은 (삭제되지 않고) 아카이브되므로, 이후에도 트랜스크립트를 계속 사용할 수 있습니다.

출력 사용

statuscompleted에 도달하면, outputs[]memory_store 항목은 완전히 채워진 스토어를 참조합니다. 이는 워크스페이스에 있는 일반적인 메모리 스토어입니다. Memory Stores API 또는 Console에서 검토한 다음, 다음 중 하나를 수행하세요.

# dream이 종료된 후 출력에는 재구성된 메모리 저장소가 담깁니다
output_store_id = next(
    output.memory_store_id for output in dream.outputs if output.type == "memory_store"
)

session = client.beta.sessions.create(
    agent=agent_id,
    environment_id=environment_id,
    resources=[
        {"type": "memory_store", "memory_store_id": output_store_id},
    ],
)

드림 자체는 입력을 절대 삭제하거나 수정하지 않습니다. failed 또는 canceled 상태에서는 출력 스토어가 부분적인 내용과 함께 유지되므로 중단 전에 생성된 내용을 검사할 수 있습니다. 필요하지 않다면 Memory Stores API를 통해 정리하세요.

드림 취소

취소는 pending 또는 running 상태의 드림을 즉시 canceled로 전환합니다. 이미 canceled 상태인 드림을 취소하는 것은 멱등적인 무동작(no-op)이며, completed 또는 failed 상태의 드림을 취소하면 400이 반환됩니다.

client.beta.dreams.cancel(dream.id)

드림 아카이브

아카이브는 종료 상태(completed, failed 또는 canceled)에 도달한 드림에 archived_at을 설정하며, status는 변경되지 않습니다. 아카이브된 드림은 기본 목록 응답에서 제외되지만 ID로는 계속 읽을 수 있습니다. 이미 아카이브된 드림을 아카이브하는 것은 멱등적인 무동작(no-op)입니다. pending 또는 running 상태의 드림을 아카이브하면 400이 반환되므로, 먼저 취소하세요. 아카이브 해제 기능은 없습니다.

client.beta.dreams.archive(dream.id)

드림을 아카이브해도 출력 메모리 스토어에는 영향을 주지 않습니다. 출력 메모리 스토어는 Memory Stores API를 통해 별도로 관리하세요.

드림 목록 조회

워크스페이스의 아카이브되지 않은 모든 드림을 최신순으로 반환합니다. limit(기본값 20, 최대 100)과 page 커서를 사용하여 페이지를 나누세요. 아카이브된 드림을 포함하려면 include_archived=true를 전달하세요.

for listed_dream in client.beta.dreams.list(limit=20):
    print(listed_dream.id, listed_dream.status)

오류

발생 가능한 드리밍 오류의 일부 목록은 다음과 같습니다.

error.type발생 시점
timeout파이프라인이 실행 시간 예산을 초과했습니다.
internal_error분류되지 않은 파이프라인 실패입니다.
memory_store_org_limit_exceeded파이프라인이 작업용 스토리지를 프로비저닝하는 동안 조직이 메모리 스토어 한도에 도달했습니다.
input_memory_store_too_large입력 메모리 스토어가 파이프라인의 크기 제한을 초과합니다.
input_memory_store_unavailable드림이 생성된 후 입력 메모리 스토어가 아카이브되거나 삭제되었습니다.
input_session_unavailable드림이 생성된 후 입력 세션이 삭제되었습니다.

요금 청구

드림은 선택한 모델의 표준 API 토큰 요금으로 청구되며, 리소스의 usage가 정확한 총계를 보고합니다. 비용은 입력 세션의 수와 길이에 따라 대략 선형적으로 증가합니다. 소량의 세션으로 시작한 다음, 정리 품질에 만족하면 규모를 늘리세요.

제한

제한
드림당 세션 수100
instructions 길이4,096자
지원 모델claude-opus-5, claude-fable-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-5, claude-sonnet-4-6

이 기능이 리서치 프리뷰 단계에 있는 동안 드림 생성에는 기본 속도 제한이 적용됩니다. 더 높은 한도가 필요하면 지원팀에 문의하세요.

Was this page helpful?