Сны
Позвольте Claude просматривать прошлые сессии, чтобы упорядочивать память агента и выявлять новые идеи.
Агенты записывают данные в свои хранилища памяти (memory stores) в процессе работы, но эти записи локальны и инкрементальны: за множество сессий в хранилище памяти накапливаются дубликаты, противоречия и устаревшие записи.
Dreams (сны) позволяют Claude навести в этом порядок. Сон читает существующее хранилище памяти вместе с транскриптами прошлых сессий, а затем создаёт новое, реорганизованное хранилище памяти: дубликаты объединены, устаревшие или противоречивые записи заменены актуальными значениями, а новые инсайты выявлены.
Входное хранилище никогда не изменяется, поэтому вы можете просмотреть результат и отбросить его, если он вам не понравится.
Как это работает
Сон (dream) — это асинхронное задание, которое принимает:
- уже существующее хранилище памяти: хранилище, которое Claude проверяет, дедуплицирует и реорганизует, и
- от 1 до 100 сессий: прошлые транскрипты, в которых Claude ищет закономерности и инсайты, чтобы включить их в результат.
Сон создаёт ещё одно выходное хранилище памяти, отдельное от входного. Идентификатор выходного хранилища появляется в массиве 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-5-5",
instructions="Focus on coding-style preferences; ignore one-off debugging notes.",
)
print(dream.id) # drm_01...Входные данные сновидения включают уже существующее хранилище памяти и массив сессий. Выбранная модель выполняет конвейер сновидения. В период исследовательского предварительного просмотра поддерживаются claude-opus-5-5, claude-fable-5-1, claude-opus-5, claude-fable-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-5-5, 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-5-5" },
"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 для общих указаний по синтезу, таких как области фокуса («сосредоточься на предпочтениях стиля кода»), содержимое, которое нужно сохранить без изменений, или соглашения для результата, которые должны применяться ко всему хранилищу. Конвейер — это проход синтеза по входным данным, а не редактор, применяемый к тексту хранилища, поэтому императивные указания, нацеленные на конкретные строки («измени предложение X на Y», «исправь число в разделе Z»), как правило, не приводят ни к каким изменениям. Чтобы вносить точечные правки в отдельные воспоминания, используйте 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 ссылается на полностью заполненное хранилище. Это обычное хранилище памяти в вашем рабочем пространстве. Просмотрите его с помощью API хранилищ памяти или в Claude 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 в canceled. Отмена уже отменённого (canceled) сна — идемпотентная операция без эффекта; отмена сна в состоянии completed или failed возвращает 400.
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-5-5, claude-fable-5-1, claude-opus-5, claude-fable-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-5-5, claude-sonnet-5, claude-sonnet-4-6 |
Пока эта функция находится в стадии исследовательского предварительного просмотра, к созданию снов применяются ограничения скорости по умолчанию. Обратитесь в службу поддержки, если вам нужны более высокие лимиты.
Was this page helpful?