Dreaming (сновидение) — это функция в стадии исследовательского превью. Запросите доступ, чтобы попробовать её.
Агенты записывают данные в свои хранилища памяти по мере работы, но эти записи локальны и инкрементальны: за множество сессий в хранилище памяти накапливаются дубликаты, противоречия и устаревшие записи.
Dreams (сны) позволяют Claude навести в этом порядок. Сон читает существующее хранилище памяти вместе с транскриптами прошлых сессий, а затем создаёт новое, реорганизованное хранилище памяти: дубликаты объединены, устаревшие или противоречащие записи заменены актуальными значениями, а новые инсайты выявлены.
Входное хранилище никогда не изменяется, поэтому вы можете просмотреть результат и отбросить его, если он вас не устраивает.
Эндпоинты снов доступны только с бета-заголовком dreaming-2026-04-21; заголовок managed-agents-2026-04-01 сам по себе не даёт доступа к снам. Примеры для эндпоинтов снов на этой странице отправляют оба заголовка; вызовам сессий и хранилищ памяти нужен только managed-agents-2026-04-01. SDK устанавливает их автоматически.
Dream (сон) — это асинхронная задача, которая принимает:
Сон создаёт другое выходное хранилище памяти, отдельное от входного. ID выходного хранилища появляется в outputs[] сна вскоре после того, как сон переходит в состояние running, как только рабочий процесс склонировал входное хранилище; сон в состоянии 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, чтобы направлять процесс сновидения; см. Управление с помощью инструкций.
Ответ — это полный ресурс dream со status: "pending":
{
"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, запись memory_store в outputs[] ссылается на полностью заполненное хранилище. Это обычное хранилище памяти в вашем рабочем пространстве. Просмотрите его с помощью Memory Stores API или в Console, а затем либо:
memory_store вместо входного хранилища памяти (или вместе с ним), либо# После завершения сна вывод содержит перестроенное хранилище памяти
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) сна — идемпотентная операция без эффекта; отмена сна в состоянии completed или failed возвращает 400.
После отмены поля usage сна могут продолжать обновляться в течение нескольких секунд, пока завершается текущая работа. Опрашивайте сон, пока usage не стабилизируется, если вам нужен окончательный подсчёт.
client.beta.dreams.cancel(dream.id)Архивирование устанавливает archived_at для сна, достигшего терминального состояния (completed, failed или canceled); status остаётся без изменений. Архивированные сны исключаются из ответов списка по умолчанию, но остаются доступными для чтения по ID. Архивирование уже архивированного сна — идемпотентная операция без эффекта. Архивирование сна в состоянии 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?