Claude Platform Docs
Managed AgentsСоздание постоянной памяти

Сны

Позвольте 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-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, чтобы направлять процесс сновидения. См. Управление с помощью инструкций.

Ответ представляет собой полный ресурс 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
}

Управление с помощью инструкций

Необязательное поле 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, а затем либо:

# После завершения сна вывод содержит перестроенное хранилище памяти
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
Длина instructions4 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?