---
title: Хранилища памяти в самостоятельно размещаемых песочницах
url: https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-memory
description: "Подключайте хранилища памяти к сеансам Claude Managed Agents, работающим в самостоятельно размещаемых песочницах: подготовьте хост, настройте синхронизацию и обрабатывайте хранилища только для чтения и конфликты."
featureMetadata:
  topic:
    title: Managed Agents
    url: https://platform.claude.com/docs/en/managed-agents/overview
  status: beta
  betaHeader: managed-agents-2026-04-01
---

Сеансы в самостоятельно размещаемой среде подключают [хранилища памяти](https://platform.claude.com/docs/ru/managed-agents/memory) точно так же, как сеансы в облачных средах. Перечислите их в `resources` (csharp, go: `Resources`) при создании сеанса, как показано в разделе [Подключение хранилища памяти к сессии](https://platform.claude.com/docs/ru/managed-agents/memory#attach-a-memory-store-to-a-session). Сеанс принимает до 8 хранилищ памяти.

Разница в том, кто материализует хранилище. В самостоятельно размещаемой среде ваш «worker» (воркер), а не инфраструктура Anthropic, загружает каждое хранилище в песочницу и синхронизирует изменения агента обратно.

## Требования

* **Воркер, который монтирует хранилища памяти:** используйте `ant` CLI версии 1.33.0 или новее либо `EnvironmentWorker` из Python, TypeScript или Go SDK.
* **Файловая система POSIX:** хосты Windows не поддерживаются, поскольку воркеру требуется `O_NOFOLLOW` при открытии файлов памяти. Рекомендуется файловая система с учётом регистра, чтобы пути памяти, различающиеся только регистром, не конфликтовали.
* **Доступный для записи каталог `/mnt/memory`:** см. раздел [Подготовка хоста](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-memory#prepare-the-host).
* **Секрет элемента работы:** если вы запускаете воркер из собственного кода, [передайте ему секрет элемента работы](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-workers#forward-the-work-items-secret).

<Note>
  Хранилища памяти нельзя подключать к сеансам в самостоятельно размещаемых средах на [Claude Platform on AWS](https://platform.claude.com/docs/ru/build-with-claude/claude-platform-on-aws).
</Note>

## Подготовка хоста

Перед запуском воркера создайте родительский каталог и сделайте его доступным для записи пользователю, от имени которого работает воркер:

```bash
sudo mkdir -p /mnt/memory && sudo chown "$USER" /mnt/memory
```

Не создавайте каталоги для отдельных хранилищ самостоятельно. Воркер создаёт каталог `mount_path` (java, php: `mountPath`; csharp, go: `MountPath`) каждого хранилища (например, `/mnt/memory/user-preferences`) при запуске сеанса и удаляет его по завершении сеанса. Если по этому пути уже что-то существует, воркер отказывается начинать работу сеанса.

В [шаблоне «одна песочница на сеанс»](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-workers#run-one-sandbox-per-session) образу песочницы нужен доступный для записи `/mnt/memory`. Вам не нужно монтировать каталоги памяти на хост через bind-mount, поскольку воркер загружает их содержимое в хранилище до завершения песочницы.

### Изоляция сеансов, использующих общее хранилище

Два сеанса не могут одновременно монтировать одно и то же хранилище на одном хосте, поскольку обоим нужен один и тот же путь. Если ваши сеансы подключают одно и то же хранилище, запускайте по одному сеансу на файловую систему. Предоставление каждому сеансу [собственной песочницы](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-workers#run-one-sandbox-per-session) удовлетворяет этому правилу.

## Как воркер обрабатывает память

Когда воркер забирает элемент работы, к сеансу которого подключены хранилища памяти, он:

1. **Загружает каждое хранилище в его `mount_path` (java, php: `mountPath`; csharp, go: `MountPath`).** Это тот же каталог в `/mnt/memory/`, который используют облачные сеансы, и системная подсказка сеанса описывает его агенту. Например, хранилище с именем «User Preferences» размещается в `/mnt/memory/user-preferences/`.
2. **Открывает эти каталоги для файловых инструментов.** Агент работает с памятью с помощью тех же файловых инструментов, которые он использует в рабочем каталоге.
3. **Согласовывает изменения после вызовов инструментов** не чаще одного раза за интервал синхронизации (по умолчанию 15 секунд). Записи памяти, изменившиеся в хранилище, записываются на диск, а файлы, изменённые агентом, загружаются в хранилище.
4. **Выполняет финальную синхронизацию при завершении сеанса.** В течение не более 30 секунд он завершает все ещё ожидающие загрузки, а затем удаляет созданные им каталоги.

Хранилище памяти на стороне Anthropic остаётся источником истины. [Версии памяти](https://platform.claude.com/docs/ru/managed-agents/memory#audit-memory-changes), редактирование конфиденциальных данных, а также просмотр и изменение памяти в Console работают так же, как для облачных сеансов. Операции чтения и записи памяти агентом отображаются в [потоке событий](https://platform.claude.com/docs/ru/managed-agents/events-and-streaming) как обычные события инструментов.

Поскольку каждый воркер синхронизируется с определённым интервалом, изменение, записанное в одном сеансе, становится видимым другому работающему сеансу только после того, как оба выполнят синхронизацию. При интервале по умолчанию это обычно занимает значительно меньше минуты. Сеансы в облачных песочницах видят изменения друг друга почти мгновенно.

Каждый каталог хранилища содержит файл-маркер с именем `.anthropic-memory-store`, который связывает каталог с его хранилищем. Не удаляйте его: воркер не синхронизирует каталог, маркер которого отсутствует или изменён.

<Warning>
  Воркер, который был принудительно завершён, а не остановлен, не выполняет очистку, поэтому несинхронизированные изменения теряются, а каталоги хранилищ остаются. См. раздел [Корректная остановка воркеров](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-operations#stop-workers-gracefully).
</Warning>

## Настройка синхронизации

Поведением памяти управляют два параметра `EnvironmentWorker`. Задавайте их везде, где вы создаёте воркер, в том числе в обработчике вебхуков. Воркер `ant` CLI всегда использует значения по умолчанию.

### Интервал синхронизации

`memory_sync_interval` (typescript: `memorySyncIntervalMs`; go: `MemorySyncInterval`) задаёт, как часто подключённые хранилища согласуются с сервером во время работы сеанса.

| Параметр                   | Значение                                            |
| -------------------------- | --------------------------------------------------- |
| По умолчанию               | 15 секунд                                           |
| Минимум                    | 5 секунд                                            |
| Пример (10 секунд)         | `10` (typescript: `10_000`; go: `10 * time.Second`) |
| Отключить поддержку памяти | `None` (typescript: `null`; go: `-1`)               |

Более короткий интервал сужает окно, в течение которого другой сеанс видит устаревшую память, ценой большего числа запросов к хранилищу памяти.

Отключайте поддержку памяти только на воркерах, сеансы которых не подключают хранилища памяти. Воркер с отключённой поддержкой не загружает и не синхронизирует хранилища, поэтому сеанс с подключёнными хранилищами работает без них, хотя его системная подсказка по-прежнему их описывает.

Пока поддержка памяти включена, элемент работы, поступивший без `secret` (csharp, go: `Secret`) для сеанса с подключёнными хранилищами, завершается ошибкой, а не выполняется без памяти. См. раздел [Хранилища памяти не монтируются](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-operations#memory-stores-fail-to-mount).

### Удаления

`memory_sync_deletions` (typescript: `memorySyncDeletions`; go: `MemorySyncDeletions`) определяет, удаляется ли из хранилища файл, который агент удалил локально. На загрузку и скачивание это не влияет.

| Значение                                                                   | Поведение                                                                                                                                                                                      |
| -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `"enabled"` (go: `environments.MemorySyncDeletionsEnabled`) (по умолчанию) | Удаляет запись памяти из хранилища, как только последующая синхронизация подтвердит, что файл по-прежнему отсутствует.                                                                         |
| `"log_only"` (go: `environments.MemorySyncDeletionsLogOnly`)               | Выполняет те же проверки, но только записывает в журнал то, что было бы удалено. Используйте этот режим, чтобы отследить, что удаляли бы ваши воркеры, прежде чем доверять включённому режиму. |
| `"disabled"` (go: `environments.MemorySyncDeletionsDisabled`)              | Никогда не удаляет из хранилища.                                                                                                                                                               |

Например, чтобы синхронизировать каждые 10 секунд и только записывать в журнал удаления, которые выполнил бы воркер:

<CodeGroup exclude="shell, csharp, java, php, ruby">
  ```python Python
  worker = EnvironmentWorker(
      client,
      environment_id=environment_id,
      environment_key=environment_key,
      workdir="/workspace",
      memory_sync_interval=10,  # seconds
      memory_sync_deletions="log_only",
  )
  ```

  ```typescript TypeScript
  const worker = new EnvironmentWorker({
    client,
    environmentId,
    environmentKey,
    workdir: "/workspace",
    memorySyncIntervalMs: 10_000,
    memorySyncDeletions: "log_only"
  });
  ```

  <CodeGroupItem language="C#">
    В C# SDK нет `EnvironmentWorker`.
  </CodeGroupItem>

  ```go Go
  worker := environments.NewEnvironmentWorker(client, environments.EnvironmentWorkerOptions{
  	EnvironmentID:       environmentID,
  	EnvironmentKey:      environmentKey,
  	Workdir:             "/workspace",
  	MemorySyncInterval:  10 * time.Second,
  	MemorySyncDeletions: environments.MemorySyncDeletionsLogOnly,
  })
  ```

  <CodeGroupItem language="Java">
    В Java SDK нет `EnvironmentWorker`.
  </CodeGroupItem>

  <CodeGroupItem language="PHP">
    В PHP SDK нет `EnvironmentWorker`.
  </CodeGroupItem>

  <CodeGroupItem language="Ruby">
    В Ruby SDK нет `EnvironmentWorker`.
  </CodeGroupItem>
</CodeGroup>

## Хранилища только для чтения и конфликты

Для хранилища, подключённого с `access: "read_only"`, инструменты `write` и `edit` отказываются изменять файлы в его каталоге. Воркер никогда ничего из него не выгружает.

Изменения, внесённые через `bash` или через пользовательский инструмент либо сервер MCP, который вы обслуживаете из песочницы, локально не блокируются. Они никогда не синхронизируются с хранилищем, и следующее удалённое изменение этой записи памяти перезаписывает их. Если сама локальная копия должна оставаться неизменной в течение сеанса:

* Отключите инструмент `bash` для этого агента и не предоставляйте ему пользовательских инструментов, которые записывают в файловую систему песочницы.
* Не монтируйте путь хранилища в режиме только для чтения. Воркер должен сам создать каталог и записать в него загруженные записи памяти.

Конфликты разрешаются в пользу хранилища. Предположим, агент изменяет файл памяти, который также изменился в хранилище с момента последней синхронизации сеанса. При следующей синхронизации воркер сохраняет версию из хранилища, перезаписывает ею локальный файл и записывает предупреждение в журнал. Сами инструменты `write` и `edit` выполняются успешно, и агент не получает никакой ошибки. Если изменение агента по-прежнему актуально, он может повторно прочитать файл после синхронизации и внести изменение снова.

## Устранение неполадок

Сообщения журнала воркера и способы устранения проблем см. в разделе [Хранилища памяти не монтируются](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-operations#memory-stores-fail-to-mount).
