드리밍은 연구 프리뷰 기능입니다. 사용해 보려면 액세스를 요청하세요.
에이전트는 작업하면서 메모리 스토어에 기록하지만, 이러한 기록은 국소적이고 점진적입니다. 여러 세션을 거치면서 메모리 스토어에는 중복, 모순, 오래된 항목이 누적됩니다.
**드림(Dreams)**은 Claude가 이를 정리할 수 있게 합니다. 드림은 기존 메모리 스토어를 과거 세션 트랜스크립트와 함께 읽은 다음, 새롭게 재구성된 메모리 스토어를 생성합니다. 중복은 병합되고, 오래되었거나 모순되는 항목은 최신 값으로 대체되며, 새로운 인사이트가 드러납니다.
입력 스토어는 절대 수정되지 않으므로, 출력을 검토한 후 결과가 마음에 들지 않으면 폐기할 수 있습니다.
드림 엔드포인트는 dreaming-2026-04-21 베타 헤더로 제한됩니다. managed-agents-2026-04-01 헤더만으로는 드림에 대한 액세스가 부여되지 않습니다. 이 페이지의 드림 엔드포인트 예제는 두 헤더를 모두 전송합니다. 세션 및 메모리 스토어 호출에는 managed-agents-2026-04-01만 필요합니다. SDK는 이를 자동으로 설정합니다.
드림은 다음을 입력으로 받는 비동기 작업입니다:
드림은 입력과 별개인 또 다른 출력 메모리 스토어를 생성합니다. 출력 스토어 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-fable-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-5, claude-sonnet-4-6이 지원됩니다. 선택적으로 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
}세션 트랜스크립트만 있고 기존 스토어가 없는 경우, 먼저 빈 메모리 스토어를 생성한 다음 이를 memory_store 입력으로 전달하세요.
선택적 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 필드는 파이프라인을 실행하는 기반 세션을 가리킵니다. 해당 세션의 이벤트를 스트리밍하여 드림이 실시간으로 무엇을 읽고 쓰는지 관찰할 수 있습니다. 드림이 종료 상태에 도달하면 세션은 보관(삭제되지 않음)되므로, 이후에도 트랜스크립트를 계속 사용할 수 있습니다.
status가 completed에 도달하면, outputs[]의 memory_store 항목은 완전히 채워진 스토어를 참조합니다. 이는 워크스페이스의 일반적인 메모리 스토어입니다. Memory Stores API 또는 Console에서 검토한 다음, 다음 중 하나를 수행하세요:
memory_store 리소스로 향후 세션에 연결하거나,# 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 상태인 동안, 400 가드는 드림 자체의 보관에 적용되며 해당 스토어에는 적용되지 않습니다. 실행 중에 입력 메모리 스토어를 보관하거나 삭제하면(또는 입력 세션을 삭제하면) 드림이 input_memory_store_unavailable 또는 input_session_unavailable 오류로 실패합니다.
취소는 pending 또는 running 상태의 드림을 즉시 canceled로 전환합니다. 이미 canceled 상태인 드림을 취소하는 것은 멱등적인 no-op입니다. completed 또는 failed 상태의 드림을 취소하면 400이 반환됩니다.
취소 후에도 진행 중인 작업이 마무리되는 동안 드림의 usage 필드가 몇 초간 계속 업데이트될 수 있습니다. 최종 수치가 필요하면 usage가 안정될 때까지 드림을 폴링하세요.
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-fable-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-5, claude-sonnet-4-6 |
이 기능이 연구 프리뷰 상태인 동안 드림 생성에는 기본 속도 제한이 적용됩니다. 더 높은 제한이 필요하면 지원팀에 문의하세요.
Was this page helpful?