Каждая сессия Managed Agents по умолчанию начинается с чистого контекста. Когда сессия завершается, любое состояние, накопленное агентом, исчезает. Хранилища памяти позволяют агенту переносить информацию между сессиями: предпочтения пользователя, соглашения проекта, прошлые ошибки и контекст предметной области.
Хранилище памяти (memory store) — это коллекция текстовых документов в рамках рабочего пространства, оптимизированная для Claude. Когда вы подключаете хранилище к сессии, оно монтируется как каталог внутри песочницы сессии. Агент читает и записывает его с помощью тех же файловых инструментов, которые он использует для остальной файловой системы, а заметка, описывающая каждую точку монтирования, автоматически добавляется в «system prompt» (системную подсказку), сообщая агенту, где искать. Для этих взаимодействий требуется набор инструментов агента; убедитесь, что вы включили его при создании агента.
Каждая память (memory) в хранилище адресуется по пути и может быть прочитана и отредактирована напрямую через API или Claude Console, что позволяет выполнять настройку, импорт и экспорт.
Каждое изменение памяти создаёт неизменяемую версию памяти (memory version), предоставляя вам журнал аудита и возможность восстановления на момент времени для всего, что записывает агент.
Задайте хранилищу name и description. Описание передаётся агенту, сообщая ему, что содержит хранилище.
store_id=$(ant beta:memory-stores create \
--name "User Preferences" \
--description "Per-user preferences and project context." \
--transform id --raw-output)id хранилища памяти (memstore_...) — это то, что вы передаёте при подключении хранилища к сессии.
Предварительно загрузите в хранилище справочные материалы до запуска любого агента:
ant beta:memory-stores:memories create \
--memory-store-id "$store_id" \
--path "/formatting_standards.md" \
--content "All reports use GAAP formatting. Dates are ISO-8601..." \
> /dev/nullХранилища памяти подключаются в массиве resources[] сессии при создании сессии. В отличие от файловых ресурсов, хранилища памяти можно подключать только во время создания сессии; добавление или удаление хранилища из работающей сессии не поддерживается.
При необходимости включите instructions, чтобы предоставить специфичные для сессии указания о том, как агент должен использовать это хранилище. Они показываются агенту вместе с name и description хранилища и ограничены 4 096 символами.
Вы также можете настроить access. По умолчанию используется read_write (явно показано в следующем примере), но также поддерживается read_only.
ant beta:sessions create <<YAML
agent: $agent_id
environment_id: $environment_id
resources:
- type: memory_store
memory_store_id: $store_id
access: read_write
instructions: User preferences and project context. Check before starting any task.
YAMLПоддерживается максимум 8 хранилищ памяти на сессию. Подключайте несколько хранилищ, когда разные части памяти имеют разных владельцев или разные правила доступа. Распространённые причины:
Каждое подключённое хранилище монтируется внутри песочницы сессии как каталог в /mnt/memory/. Имя каталога — это отображаемое имя хранилища, преобразованное в безопасный для файловой системы слаг (в нижнем регистре; последовательности не буквенно-цифровых символов заменяются одним дефисом), поэтому хранилище с именем «Demo Memory» монтируется в /mnt/memory/demo-memory/. Точный путь возвращается в поле mount_path ресурса хранилища памяти сессии; читайте его оттуда, а не конструируйте самостоятельно. Агент читает и записывает хранилище с помощью стандартного набора инструментов агента. Записи по пути монтирования сохраняются обратно в хранилище и остаются синхронизированными между сессиями, которые его совместно используют; записи по любому другому пути в /mnt/memory/ завершаются ошибкой, поскольку песочница монтирует этот родительский каталог только для чтения. Краткое описание каждой точки монтирования (отображаемое имя, путь монтирования, режим доступа, description хранилища и любые instructions) автоматически добавляется в системную подсказку.
access применяется на уровне файловой системы: точка монтирования read_only отклоняет записи, тогда как записи в точку монтирования read_write создают версии памяти, приписываемые сессии.
Операции чтения и записи агента появляются в потоке событий как обычные события agent.tool_use и agent.tool_result для того инструмента, который обращался к точке монтирования.
Хранилищами памяти можно управлять напрямую через API. Используйте это для построения рабочих процессов проверки, исправления некорректных памятей или наполнения хранилищ до запуска любой сессии.
Получите список памятей в хранилище. Результаты возвращаются в стабильном, определяемом сервером порядке.
path_prefix ограничивает список одним каталогом. Он должен заканчиваться на / и сопоставляется с целыми сегментами пути, поэтому path_prefix=/notes/ возвращает /notes/todo.md, но не /notes-archive/todo.md.depth управляет тем, насколько глубоко список уходит ниже path_prefix: опустите его (или передайте 0), чтобы получить всё поддерево, или передайте 1, чтобы получить только непосредственных потомков. Другие значения возвращают ошибку 400.ant beta:memory-stores:memories list \
--memory-store-id "$store_id" \
--path-prefix "/"Полные параметры и схему ответа см. в справочнике по получению списка памятей.
Получение отдельной памяти возвращает полное содержимое.
ant beta:memory-stores:memories retrieve \
--memory-store-id "$store_id" \
--memory-id "$mem_id"Полные параметры и схему ответа см. в справочнике по получению памяти.
memories.create создаёт память по заданному path. Создание не перезаписывает; чтобы изменить существующую память, используйте memories.update.
mem=$(ant beta:memory-stores:memories create \
--memory-store-id "$store_id" \
--path "/preferences/formatting.md" \
--content "Always use tabs, not spaces." \
--format json)
mem_id=$(jq -r '.id' <<< "$mem")
mem_sha=$(jq -r '.content_sha256' <<< "$mem")Полные параметры и схему ответа см. в справочнике по созданию памяти.
memories.update изменяет существующую память по ID. Вы можете изменить content, path (переименование) или и то, и другое. В примере память переименовывается в архивный путь:
ant beta:memory-stores:memories update \
--memory-store-id "$store_id" \
--memory-id "$mem_id" \
--path "/archive/2026_q1_formatting.md" \
> /dev/nullПолные параметры и схему ответа см. в справочнике по обновлению памяти.
Чтобы не затереть параллельную запись, передайте предусловие content_sha256. Обновление применяется только в том случае, если хэш сохранённого содержимого всё ещё совпадает с тем, который вы прочитали; при несовпадении перечитайте память и повторите попытку с актуальным состоянием.
ant beta:memory-stores:memories update \
--memory-store-id "$store_id" \
--memory-id "$mem_id" \
--content "CORRECTED: Always use 2-space indentation." \
--precondition "{type: content_sha256, content_sha256: $mem_sha}" \
> /dev/nullant beta:memory-stores:memories delete \
--memory-store-id "$store_id" \
--memory-id "$mem_id" \
> /dev/nullПолные параметры и схему ответа см. в справочнике по удалению памяти.
Каждое изменение памяти создаёт неизменяемую версию памяти (memver_...). Используйте конечные точки версий, чтобы проверять, кто, что и когда изменил, просматривать или восстанавливать предыдущий снимок, а также вычищать конфиденциальное содержимое из истории с помощью редактирования (redact).
Версии принадлежат хранилищу (а не отдельной памяти) и сохраняются даже после удаления самой памяти, поэтому журнал аудита остаётся полным. Версии хранятся 30 дней; однако последние версии всегда сохраняются независимо от возраста, поэтому памяти, которые изменяются редко, могут сохранять историю дольше 30 дней. Живой вызов memories.retrieve всегда возвращает последнюю версию; конечные точки версий предоставляют вам сохранённую историю.
Отдельной конечной точки восстановления нет; чтобы выполнить откат, получите нужную версию и запишите её content обратно с помощью memories.update (или memories.create, если родительская память была удалена, поскольку версии переживают своего родителя).
Прошлые версии памяти могут быть удалены через 30 дней. Чтобы сохранить историю памяти дольше, экспортируйте версии через API.
Получите историю версий хранилища, начиная с самых новых. В примере выполняется фильтрация по истории одной памяти:
versions=$(ant beta:memory-stores:memory-versions list \
--memory-store-id "$store_id" \
--memory-id "$mem_id" \
--format json)
# `list --format json` выводит один JSON-объект на элемент.
jq -r '"\(.id): \(.operation)"' <<< "$versions"
version_id=$(jq -rs '.[1].id' <<< "$versions")Полные параметры и схему ответа см. в справочнике по получению списка версий памяти.
Получение отдельной версии возвращает те же поля, что и ответ списка, плюс полное тело content.
ant beta:memory-stores:memory-versions retrieve \
--memory-store-id "$store_id" \
--memory-version-id "$version_id"Полные параметры и схему ответа см. в справочнике по получению версии памяти.
Редактирование (redact) вычищает содержимое из исторической версии, сохраняя при этом журнал аудита (кто, что и когда сделал). Используйте его для рабочих процессов соответствия требованиям, таких как удаление утёкших секретов, персональных данных или обработка запросов пользователей на удаление.
Версию, которая является текущей головной версией живой памяти, нельзя отредактировать. Сначала запишите новую версию (или удалите память), затем отредактируйте старую.
ant beta:memory-stores:memory-versions redact \
--memory-store-id "$store_id" \
--memory-version-id "$version_id"Полные параметры и схему ответа см. в справочнике по редактированию версии памяти.
Помимо create, хранилища памяти поддерживают retrieve, update, list, archive и delete.
Получите список хранилищ в рабочем пространстве. Архивированные хранилища по умолчанию исключаются; передайте include_archived: true, чтобы включить их.
ant beta:memory-stores list --include-archivedПолные параметры и схему ответа см. в справочнике по получению списка хранилищ памяти.
Архивирование делает хранилище доступным только для чтения и предотвращает его подключение к новым сессиям. Архивирование необратимо; разархивирования нет.
ant beta:memory-stores archive --memory-store-id "$store_id"Полные параметры и схему ответа см. в справочнике по архивированию хранилища памяти.
Чтобы окончательно удалить хранилище вместе со всеми его памятями и версиями, используйте memory_stores.delete.
Когда хранилище достигает лимита в 2 000 памятей, записи в новые памяти завершаются ошибкой: как прямые вызовы memories.create, так и файловые записи агента по несопоставленным путям. Существующие памяти остаются доступными для чтения и редактирования. Следующие практики помогут вам оставаться значительно ниже лимита и корректно восстанавливаться, если вы его достигнете.
Используйте сфокусированные хранилища. Вместо одного большого хранилища общего назначения используйте меньшие специализированные хранилища: одно на пользователя, одно для общих знаний предметной области и одно для контекста конкретного проекта. У каждого хранилища свой лимит в 2 000 памятей, поэтому ограничение области хранилищ снижает вероятность того, что какое-либо одно из них заполнится.
Уплотняйте или очищайте до заполнения хранилища. Удаляйте устаревшие или избыточные памяти с помощью memories.delete. Вы также можете запустить сессию сновидений, которая консолидирует фрагментированное содержимое в отдельное новое выходное хранилище, а не изменяет исходное. Переключите ваши сессии на это выходное хранилище, затем архивируйте или удалите исходное.
Подключайте новое хранилище, когда это имеет смысл. Если хранилище выросло за пределы своей полезной области, подключите новое для нового содержимого, а исходное подключите с доступом read_only. Агент сможет читать из обоих, записывая только в новое.
Ограничивайте доступ на запись там, где это уместно. Сессиям, которые только читают общие справочные материалы, не нужен read_write. Ограничение доступа на запись сессиями, которые действительно добавляют новые памяти, упрощает отслеживание источников роста.
Was this page helpful?