Was this page helpful?
Среды определяют конфигурацию контейнера, в котором работает ваш агент. Вы создаёте среду один раз, а затем ссылаетесь на её ID каждый раз, когда начинаете сеанс. Несколько сеансов могут использовать одну и ту же среду, но каждый сеанс получает свой собственный изолированный экземпляр контейнера.
Все запросы Managed Agents API требуют заголовка бета-версии managed-agents-2026-04-01. SDK автоматически устанавливает заголовок бета-версии.
environment=$(curl -fsS https://api.anthropic.com/v1/environments \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01" \
-H "content-type: application/json" \
--data @- <<'EOF'
{
"name": "python-dev",
"config": {
"type": "cloud",
"networking": {"type": "unrestricted"}
}
}
EOF
)
environment_id=$(jq -r '.id' <<< "$environment")
echo "Environment ID: $environment_id"Параметр name должен быть уникальным в пределах вашей организации и рабочей области.
Передайте ID среды в виде строки при создании сеанса.
Поле packages предварительно устанавливает пакеты в контейнер перед запуском агента. Пакеты устанавливаются их соответствующими менеджерами пакетов и кэшируются в сеансах, которые используют одну и ту же среду. Когда указаны несколько менеджеров пакетов, они запускаются в алфавитном порядке (apt, cargo, gem, go, npm, pip). Вы можете опционально закрепить конкретные версии; по умолчанию используется последняя версия.
Поддерживаемые менеджеры пакетов:
| Поле | Менеджер пакетов | Пример |
|---|---|---|
apt | Системные пакеты (apt-get) | "ffmpeg" |
cargo | Rust (cargo) | "[email protected]" |
gem | Ruby (gem) | "rails:7.1.0" |
go | Go модули | "golang.org/x/tools/cmd/goimports@latest" |
npm | Node.js (npm) | "[email protected]" |
Поле networking управляет исходящим сетевым доступом контейнера. Это не влияет на разрешённые домены инструментов web_search или web_fetch.
| Режим | Описание |
|---|---|
unrestricted | Полный исходящий сетевой доступ, за исключением общего списка блокировки безопасности. Это значение по умолчанию. |
limited | Ограничивает сетевой доступ контейнера списком allowed_hosts. Дополнительный доступ включается через логические параметры allow_package_managers и allow_mcp_servers. |
Для развёртываний в производстве используйте limited сетевое взаимодействие с явным списком allowed_hosts. Следуйте принципу наименьших привилегий, предоставляя только минимальный сетевой доступ, необходимый вашему агенту, и регулярно проверяйте разрешённые домены.
При использовании limited сетевого взаимодействия:
allowed_hosts указывает домены, к которым может получить доступ контейнер. Они должны быть с префиксом HTTPS.allow_mcp_servers разрешает исходящий доступ к конечным точкам MCP-сервера, настроенным на агенте, помимо тех, которые указаны в массиве allowed_hosts. По умолчанию false.allow_package_managers разрешает исходящий доступ к общедоступным реестрам пакетов (PyPI, npm и т. д.) помимо тех, которые указаны в массиве allowed_hosts. По умолчанию false.Облачные контейнеры включают общие среды выполнения из коробки. Полный список предустановленных языков, баз данных и утилит см. в разделе Справочник контейнера.
session=$(curl -fsS https://api.anthropic.com/v1/sessions \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01" \
-H "content-type: application/json" \
--data @- <<EOF
{
"agent": "$agent_id",
"environment_id": "$environment_id"
}
EOF
)environment=$(curl -fsS https://api.anthropic.com/v1/environments \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01" \
-H "content-type: application/json" \
--data @- <<'EOF'
{
"name": "data-analysis",
"config": {
"type": "cloud",
"packages": {
"pip": ["pandas", "numpy", "scikit-learn"],
"npm": ["express"]
},
"networking": {"type": "unrestricted"}
}
}
EOF
)pip | Python (pip) | "pandas==2.2.0" |
config=$(cat <<'EOF'
{
"type": "cloud",
"networking": {
"type": "limited",
"allowed_hosts": ["api.example.com"],
"allow_mcp_servers": true,
"allow_package_managers": true
}
}
EOF
)# List environments
environments=$(curl -fsS https://api.anthropic.com/v1/environments \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01")
# Retrieve a specific environment
env=$(curl -fsS "https://api.anthropic.com/v1/environments/$environment_id" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01")
# Archive an environment (read-only, existing sessions continue)
curl -fsS -X POST "https://api.anthropic.com/v1/environments/$environment_id/archive" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01"
# Delete an environment (only if no sessions reference it)
curl -fsS -X DELETE "https://api.anthropic.com/v1/environments/$environment_id" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01"