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

На этой странице описаны готовые воркеры, обслуживающие среду `self_hosted`. Для руководств, ориентированных на задачи, начните с разделов [Самостоятельно размещаемые песочницы](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes) и [Развёртывание самостоятельно размещаемых воркеров](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-workers).

## Команды и флаги CLI

| Команда                | Описание                                                                                                                                                               |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ant beta:worker poll` | Забирает элементы работы из очереди среды и выполняет каждый сеанс внутри процесса. С флагом `--on-work` вместо этого вызывает ваш скрипт для каждого элемента работы. |
| `ant beta:worker run`  | Обрабатывает один забранный сеанс и завершает работу. Используйте эту команду как точку входа песочницы, создаваемой для каждого сеанса.                               |

| Флаг                | Описание                                                                                                                                                                                                                    |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--environment-id`  | Среда, из которой опрашивается работа. Также считывается из `ANTHROPIC_ENVIRONMENT_ID`.                                                                                                                                     |
| `--environment-key` | Аутентифицирует воркер в этой среде. Также считывается из `ANTHROPIC_ENVIRONMENT_KEY`.                                                                                                                                      |
| `--workdir`         | Каталог, в который загружаются навыки и в котором инструменты читают и записывают файлы. По умолчанию `.` (текущий каталог).                                                                                                |
| `--on-work`         | Скрипт, вызываемый для каждого забранного элемента работы вместо выполнения инструментов внутри процесса. Получает сведения о сеансе в виде переменных окружения, а элемент работы — в формате JSON через стандартный ввод. |
| `--max-idle`        | Сколько ждать после перехода сеанса в состояние простоя с [причиной остановки](https://platform.claude.com/docs/ru/build-with-claude/handling-stop-reasons) `end_turn` перед завершением работы. По умолчанию `60s`.        |
| `--log-format`      | Формат вывода журналов. Используйте `json` для приёма структурированных журналов. По умолчанию `text`.                                                                                                                      |

## Переменные окружения

| Переменная                      | Описание                                                       | Кем задаётся                                                                                                                                                                                     |
| ------------------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `ANTHROPIC_ENVIRONMENT_ID`      | Среда, очередь которой обслуживает воркер.                     | Вами, на хосте воркера. Опрашивающий процесс передаёт её скрипту `--on-work`.                                                                                                                    |
| `ANTHROPIC_ENVIRONMENT_KEY`     | Аутентифицирует воркер в его очереди.                          | Вами, на хосте воркера. Опрашивающий процесс передаёт её скрипту `--on-work`.                                                                                                                    |
| `ANTHROPIC_SESSION_ID`          | Сеанс, который представляет забранный элемент работы.          | Опрашивающим процессом, для скрипта `--on-work`.                                                                                                                                                 |
| `ANTHROPIC_WORK_ID`             | Забранный элемент работы.                                      | Опрашивающим процессом, для скрипта `--on-work`.                                                                                                                                                 |
| `ANTHROPIC_WORK_SECRET`         | Секрет элемента работы для конкретного сеанса.                 | Вами. Опрашивающий процесс её не задаёт. См. [Передача секрета элемента работы](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-workers#forward-the-work-items-secret). |
| `ANTHROPIC_BASE_URL`            | Переопределяет конечную точку API по умолчанию. Необязательна. | Вами, на хосте воркера.                                                                                                                                                                          |
| `ANTHROPIC_WEBHOOK_SIGNING_KEY` | Проверяет входящие полезные нагрузки вебхуков.                 | Вами, на хосте обработчика вебхуков.                                                                                                                                                             |

## Требования к хосту

| Воркер          | Требование                                                                                                            |
| --------------- | --------------------------------------------------------------------------------------------------------------------- |
| Все воркеры     | Хост Linux с `/bin/bash` именно по этому пути. Инструмент bash воркера вызывает его напрямую, не обращаясь к `PATH`.  |
| TypeScript SDK  | `unzip` и `tar` в `PATH`, а также Node.js 22 или новее.                                                               |
| Python и Go SDK | Дополнительные исполняемые файлы не требуются. Эти SDK используют свои стандартные библиотеки для распаковки архивов. |

[Хранилища памяти](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-memory#requirements) добавляют собственные требования.

## Файловая система песочницы

| Путь                       | Содержимое                                                                                                                                                                                                                                                                      |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/workspace`               | Системный рабочий каталог по умолчанию для выполнения инструментов и загрузки навыков. Если вы используете другой рабочий каталог, обновите системную подсказку вашего агента, чтобы Claude мог найти файлы навыков.                                                            |
| `<workdir>/skills/<name>/` | Загруженные навыки агента.                                                                                                                                                                                                                                                      |
| `/mnt/memory/<store>/`     | По одному каталогу на каждое подключённое хранилище памяти, по пути `mount_path` (java, php: `mountPath`; csharp, go: `MountPath`) хранилища (например, `/mnt/memory/user-preferences/`). Воркер создаёт эти каталоги, когда забирает сеанс, и удаляет их по завершении сеанса. |

В самостоятельно размещаемых средах системная подсказка сеанса не содержит инструкции `/mnt/session/outputs`, используемой в песочницах, управляемых Anthropic. Итоговые результаты оказываются там, куда агент записывает их в файловой системе вашей песочницы, обычно в рабочем каталоге.

Навыки могут включать исполняемые файлы, которые агент может запускать напрямую. Воркеры CLI и SDK сохраняют права на выполнение, записанные в пакете навыка, при его распаковке. Если вы реализуете загрузку навыков вручную, вы отвечаете за установку прав на выполнение.

## Вспомогательные функции SDK

SDK для Python, TypeScript и Go предоставляют три вспомогательные функции с разным уровнем контроля:

| Вспомогательная функция                                                                                                                                                                                                                                           | Что делает                                                                                    | Когда использовать                                                                                                                    |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| [`EnvironmentWorker`](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-reference#environment-worker)                                                                                                                                      | Полностью обрабатывает опрос, настройку и выполнение.                                         | В большинстве случаев.                                                                                                                |
| [`work.poller()` (go: `environments.NewWorkPoller()`)](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-reference#work-poller)                                                                                                            | Опрашивает очередь работ и передаёт вам каждый забранный сеанс.                               | Вы сами определяете, что происходит для каждого сеанса, например запускаете песочницу вместо выполнения инструментов внутри процесса. |
| [`client.beta.sessions.events.tool_runner()` (typescript: `client.beta.sessions.events.toolRunner()`; go: `client.Beta.Sessions.Events.NewToolRunner()`)](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-reference#session-tool-runner) | Выполняет вызовы инструментов для одного сеанса по заданному ID сеанса и списку инструментов. | Вы уже забрали работу, и вам нужен только уровень выполнения.                                                                         |

### EnvironmentWorker

| Метод                                                            | Описание                                                                                                                                                                                                                                                                                                                                                        |
| ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `run()` (go: `Run()`)                                            | Работает бесконечно, подхватывая сеансы по мере их поступления.                                                                                                                                                                                                                                                                                                 |
| `handle_item()` (typescript: `handleItem()`; go: `HandleItem()`) | Обрабатывает один забранный элемент работы и возвращает управление. Передайте идентификаторы работы, сеанса и среды, а также `work_secret` (typescript: `workSecret`; go: `WorkSecret`) явно или позвольте методу считать [переменные `ANTHROPIC_*`](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-reference#environment-variables). |

| Параметр                                                                               | Описание                                                                                                                                                                                                                 |
| -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `tools` (go: `ToolsFunc`)                                                              | Фабрика, которая получает `AgentToolContext` сеанса и возвращает список инструментов. По умолчанию используется стандартный набор инструментов агента.                                                                   |
| `memory_sync_interval` (typescript: `memorySyncIntervalMs`; go: `MemorySyncInterval`)  | Как часто подключённые хранилища памяти синхронизируются с сервером во время работы сеанса. См. [Интервал синхронизации](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-memory#sync-interval). |
| `memory_sync_deletions` (typescript: `memorySyncDeletions`; go: `MemorySyncDeletions`) | Удаляются ли из хранилища файлы, которые агент удаляет локально. См. [Удаления](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-memory#deletions).                                              |

`EnvironmentWorker` автоматически управляет `AgentToolContext` и набором инструментов. Передайте фабрику `tools` (go: `ToolsFunc`), чтобы настроить список инструментов:

<CodeGroup exclude="shell, csharp, java, php, ruby">
  ```python Python
  EnvironmentWorker(client, ..., tools=lambda env: [beta_bash_tool(env), my_custom_tool])
  ```

  ```typescript TypeScript
  new EnvironmentWorker({
    client,
    environmentId,
    environmentKey,
    tools: (ctx) => [betaBashTool(ctx), myCustomTool]
  });
  ```

  <CodeGroupItem language="C#">
    В C# SDK нет `EnvironmentWorker`. Чтобы отвечать на вызовы пользовательских инструментов из собственного кода, отправляйте каждый результат в поток событий сеанса, как описано в разделе [Возврат результата пользовательского инструмента](https://platform.claude.com/docs/ru/managed-agents/events-and-streaming#return-a-custom-tool-result).
  </CodeGroupItem>

  ```go Go
  worker := environments.NewEnvironmentWorker(client, environments.EnvironmentWorkerOptions{
  	EnvironmentID:  environmentID,
  	EnvironmentKey: environmentKey,
  	ToolsFunc: func(env *agenttoolset.AgentToolContext) []anthropic.BetaTool {
  		return []anthropic.BetaTool{agenttoolset.BetaBashTool(env), myCustomTool}
  	},
  })
  ```

  <CodeGroupItem language="Java">
    В Java SDK нет `EnvironmentWorker`. Чтобы отвечать на вызовы пользовательских инструментов из собственного кода, отправляйте каждый результат в поток событий сеанса, как описано в разделе [Возврат результата пользовательского инструмента](https://platform.claude.com/docs/ru/managed-agents/events-and-streaming#return-a-custom-tool-result).
  </CodeGroupItem>

  <CodeGroupItem language="PHP">
    В PHP SDK нет `EnvironmentWorker`. Чтобы отвечать на вызовы пользовательских инструментов из собственного кода, отправляйте каждый результат в поток событий сеанса, как описано в разделе [Возврат результата пользовательского инструмента](https://platform.claude.com/docs/ru/managed-agents/events-and-streaming#return-a-custom-tool-result).
  </CodeGroupItem>

  <CodeGroupItem language="Ruby">
    В Ruby SDK нет `EnvironmentWorker`. Чтобы отвечать на вызовы пользовательских инструментов из собственного кода, отправляйте каждый результат в поток событий сеанса, как описано в разделе [Возврат результата пользовательского инструмента](https://platform.claude.com/docs/ru/managed-agents/events-and-streaming#return-a-custom-tool-result).
  </CodeGroupItem>
</CodeGroup>

### Опрашивающий процесс очереди работ

| Параметр                                                                             | Описание                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `drain` (go: `Drain`)                                                                | Прекращать ли опрос, когда очередь опустеет, вместо ожидания новой работы.                                                                                                                                                                                                                                                                                                                                                         |
| `block_ms` (typescript: `blockMs`; go: `BlockMs`)                                    | Сколько каждый опрос ждёт поступления работы перед возвратом, в миллисекундах. Значение должно быть от 1 до 999; вспомогательная функция автоматически повторяет опрос. Передайте `null` (python: `None`; go: `param.Null[int64]()`) для неблокирующей проверки. По умолчанию используется длинный опрос длительностью 999 мс.                                                                                                     |
| `reclaim_older_than_ms` (typescript: `reclaimOlderThanMs`; go: `ReclaimOlderThanMs`) | Повторно забирает элементы работы, которые были забраны, но не подтверждены в течение указанного числа миллисекунд.                                                                                                                                                                                                                                                                                                                |
| `auto_stop` (typescript: `autoStop`; go: `AutoStop`)                                 | Отправлять ли сигнал остановки для каждого элемента работы после того, как тело вашего цикла завершит его обработку. Установите значение `false` (python: `False`; go: `param.NewOpt(false)`), если то, что выполняет элемент работы, само отправляет сигнал остановки. Так делает `handle_item()` (typescript: `handleItem()`; go: `HandleItem()`), а также запускаемая вами песочница, которая сама отвечает за вызов остановки. |

Полный пример см. в разделе [Запуск песочниц из опрашивающего процесса SDK](https://platform.claude.com/docs/ru/managed-agents/self-hosted-sandboxes-workers#launch-sandboxes-from-the-sdk-poller).

### Исполнитель инструментов сеанса

`client.beta.sessions.events.tool_runner()` (typescript: `client.beta.sessions.events.toolRunner()`; go: `client.Beta.Sessions.Events.NewToolRunner()`) принимает список инструментов в параметре `tools` (go: `Tools`). Чтобы построить этот список, самостоятельно настройте `AgentToolContext` и вызовите `beta_agent_toolset_20260401(env)` (typescript: `betaAgentToolset20260401(ctx)`; go: `agenttoolset.BetaAgentToolset20260401(env)`):

<CodeGroup exclude="shell, csharp, java, php, ruby">
  ```python Python
  from anthropic.lib.tools.agent_toolset import (
      AgentToolContext,
      beta_agent_toolset_20260401,
  )

  async with AgentToolContext(
      workdir="/workspace", client=client, session_id=work.data.id
  ) as env:
      # навыки загружены в /workspace/skills/<name>/
      tools = beta_agent_toolset_20260401(env)
  ```

  ```typescript TypeScript
  import {
    setupSkills,
    betaAgentToolset20260401
  } from "@anthropic-ai/sdk/tools/agent-toolset/node";

  const ctx = { workdir: "/workspace", client, sessionId: work.data.id };
  await setupSkills(ctx);
  const tools = betaAgentToolset20260401(ctx);
  ```

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

  ```go Go
  env := &agenttoolset.AgentToolContext{Workdir: "/workspace"}
  if err := env.SetupSkills(ctx, client, work.Data.ID); err != nil {
  	panic(err)
  }
  // навыки загружены в /workspace/skills/<name>/
  tools := agenttoolset.BetaAgentToolset20260401(env)
  ```

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

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

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

### AgentToolContext и набор инструментов агента

`AgentToolContext` — это контекст выполнения для вызовов инструментов. Он определяет рабочий каталог и политику путей, а также может загружать навыки сеанса.

| Параметр                                                             | Описание                                                                                                                       |
| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `allowed_roots` (typescript: `allowedRoots`; go: `AllowedRoots`)     | Каталоги, помимо рабочего каталога, к которым могут обращаться файловые инструменты (`read`, `write`, `edit`, `glob`, `grep`). |
| `read_only_roots` (typescript: `readOnlyRoots`; go: `ReadOnlyRoots`) | Каталоги, пути внутри которых `write` и `edit` отклоняют.                                                                      |

`EnvironmentWorker` сам добавляет каталоги хранилищ памяти сеанса в `allowed_roots` (typescript: `allowedRoots`; go: `AllowedRoots`), а каталоги хранилищ, подключённых с `access: "read_only"`, — в `read_only_roots` (typescript: `readOnlyRoots`; go: `ReadOnlyRoots`).

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

`beta_agent_toolset_20260401(env)` (typescript: `betaAgentToolset20260401(ctx)`; go: `agenttoolset.BetaAgentToolset20260401(env)`) принимает `AgentToolContext` и возвращает стандартные реализации инструментов (`bash`, `read`, `write`, `edit`, `glob`, `grep`).
