«Dreaming» (сновидение) — это функция в режиме исследовательского предпросмотра. Запросите доступ, чтобы попробовать её.
Агенты записывают данные в свои хранилища памяти по мере работы, но эти записи локальны и инкрементальны: за множество сессий в хранилище памяти накапливаются дубликаты, противоречия и устаревшие записи.
Сны позволяют Claude навести в этом порядок. Сон считывает существующее хранилище памяти вместе с транскриптами прошлых сессий, а затем создаёт новое, реорганизованное хранилище памяти: дубликаты объединены, устаревшие или противоречивые записи заменены актуальными значениями, а новые инсайты выявлены.
Входное хранилище никогда не изменяется, поэтому вы можете просмотреть результат и отбросить его, если он вам не понравится.
Все запросы к Managed Agents API требуют бета-заголовка managed-agents-2026-04-01. Сны дополнительно требуют бета-заголовка dreaming-2026-04-21. SDK устанавливает их автоматически.
Сон — это асинхронное задание, которое принимает:
Сон создаёт отдельное выходное хранилище памяти, независимое от входного. Идентификатор выходного хранилища появляется в поле outputs[] сна, как только он переходит в состояние running.
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-4-8, claude-opus-4-7 и 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_creation_input_tokens": 0,
"cache_read_input_tokens": 0
},
"error": null
}Если у вас есть только транскрипты сессий и нет существующего хранилища, сначала создайте пустое хранилище памяти и передайте его в качестве входного параметра memory_store.
Необязательное поле instructions управляет тем, что синтезирует конвейер сновидения. Оно применяется на всех этапах конвейера: что внимательно читать, что объединять или отбрасывать и как структурировать выходное хранилище.
Используйте instructions для высокоуровневых указаний по синтезу, таких как области фокусировки («сосредоточься на предпочтениях стиля кодирования»), содержимое, которое нужно сохранить без изменений, или соглашения о формате вывода, которые вы хотите применить ко всему хранилищу. Конвейер — это проход синтеза по входным данным, а не редактор, применяемый к тексту хранилища, поэтому императивные директивы, нацеленные на конкретные строки («измени предложение X на Y», «исправь число в разделе Z»), как правило, не дают никаких изменений. Для точечного редактирования отдельных воспоминаний используйте Memory Stores API непосредственно для выходного хранилища.
Сны выполняются асинхронно и обычно занимают от нескольких минут до десятков минут в зависимости от размера входных данных. Опрашивайте сон по идентификатору, чтобы проверить статус:
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 вместо входного хранилища памяти (или вместе с ним), либо# After the dream ends, the output holds the rebuilt 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 остаётся без изменений. Заархивированные сны исключаются из ответов списка по умолчанию, но остаются доступными для чтения по идентификатору. Архивирование уже заархивированного сна — идемпотентная операция без эффекта. Архивирование сна в состоянии 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-4-8, claude-opus-4-7, claude-sonnet-4-6 |
К созданию снов применяются стандартные ограничения скорости, пока эта функция находится в бета-версии. Обратитесь в поддержку, если вам нужны более высокие лимиты.
Was this page helpful?