Справочник по конфигурации
Узнайте, где находятся настройки самостоятельно размещённого сервера Claude Managed Agents, и найдите для каждого параметра его ключ, переменную окружения, значение по умолчанию и назначение.
На этой странице показано, где находятся настройки самостоятельно размещённого сервера Claude Managed Agents, и приведён их перечень. Чтобы настроить функцию, см. разделы Единый вход, Идентификация агентов и учётные данные и Провайдер инференса.
Где находятся настройки
Сервер считывает свои настройки из одного файла YAML, а свои учётные данные — из своего окружения.
- Docker Compose: Файл — это
compose.config.yaml, расположенный рядом сdocker-compose.ymlв распакованном архиве. Отредактируйте его, затем выполнитеdocker compose restart cma-serverиз этого каталога. - Kubernetes: Файл — это значение
server.configHelm-чарта сервера. Отредактируйте его в своём файле значений, выполнитеhelm upgrade, а затем перезапустите серверы командойkubectl -n cma-server rollout restart deployment -l anthropic.com/role=server. См. раздел Развёртывание в Kubernetes.
Если сервер отклоняет параметр, показанный на страницах о самостоятельном размещении, обновите сервер. Файл cma-server.example.yaml в корне архива снабжает общие ключи пояснениями.
Учётные данные никогда не указываются в файле. Сервер считывает их из переменных окружения или из удостоверения, которое ваше облако прикрепляет к хосту.
Передача учётных данных в стек Compose
В стеке Compose контейнер сервера получает только переменные из списка environment: службы cma-server в docker-compose.yml. Чтобы передать ещё одну:
- Добавьте её имя в этот список и задайте её значение в
.env. - Если учётные данные представляют собой файл, поместите файл рядом с
docker-compose.ymlи добавьте строку, например- ./gcp-key.json:/etc/cma-server/gcp-key.json:ro, в списокx-server-mountsвdocker-compose.yml. Путь после первого двоеточия — это путь к файлу внутри контейнера. Используйте этот путь как значение переменной в.envили как значение параметра, указывающего этот файл. - Выполните
docker compose up -d. Перезапуск не перечитывает.env.
Обновление заменяет docker-compose.yml, поэтому повторите эти изменения в файле нового выпуска, прежде чем запускать его стек.
Как читать таблицы
У каждого параметра есть ключ в файле настроек, и у большинства параметров также есть переменная окружения. Переменная переопределяет файл, а файл переопределяет значение по умолчанию. Сервер не запускается, если в его файле настроек есть неизвестный ключ, и в сообщении об ошибке указывается, где находится этот ключ.
- Ключи: Каждая точка в ключе — это уровень вложенности в файле. Например,
server.addr— это ключaddrв разделеserver. - Переменные: Имя переменной — это
CMA_, за которым следует ключ заглавными буквами, где каждая точка заменена двумя символами подчёркивания. - Только файл: У параметра нет переменной.
- Только окружение: Сервер не запускается, если параметр указан в файле.
- Только
bedrockи аналогичные метки: Параметр работает только с этим провайдером, хранилищем или менеджером секретов. Если вы задаёте его, используя другой, сервер не запускается. - Списки: Список — это список YAML в файле и строка с разделителями-запятыми в переменной.
- Длительности: Длительность — это число с единицей измерения, например
30s,5mили1h. - Целые числа: Целое число состоит только из цифр, без знака, ведущего нуля или символа подчёркивания.
При запуске сервер записывает в журнал заданные вами параметры и большинство значений по умолчанию, указывая для каждого, откуда взято его значение, например server.addr=0.0.0.0:8400 (file). Вместо секрета он записывает ***, за исключением серверного ключа API, который он сгенерировал сам.
Сервер и журналирование
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
server.addrCMA_SERVER__ADDR | 127.0.0.1:8400 | Адрес, который прослушивает сервер. |
server.api_keyCMA_SERVER__API_KEY | Нет | Серверный ключ API. Обязателен при store.backend: postgres, если только auth.refuse_server_api_key не равен true. При memory сервер генерирует ключ, если вы его не задали, и записывает его в журнал при запуске. |
server.id_markerCMA_SERVER__ID_MARKER | local | То, что следует за префиксом в каждом ID, создаваемом сервером. local даёт sesn_local_01…, а none даёт sesn_01…, как в размещённом сервисе. |
server.shutdown_delayCMA_SERVER__SHUTDOWN_DELAY | 0s | Как долго сервер продолжает обслуживать запросы после сигнала остановки, пока его проверка готовности отвечает not_ready. Максимум — 5m. |
server.max_connectionsCMA_SERVER__MAX_CONNECTIONS | 0 | Максимальное число подключений, которые сервер одновременно держит открытыми на server.addr. 0 означает отсутствие ограничения. При достижении ограничения новое подключение ожидает, пока другое не закроется или его клиент не прекратит попытку. Учитываются потоки событий, опросы воркеров и проверки работоспособности. В Kubernetes kubelet перезапускает под, проверки которого ждут слишком долго. |
logging.formatCMA_LOGGING__FORMAT | text | Формат журнала, text или json. |
logging.levelCMA_LOGGING__LEVEL | info | Самый низкий уровень, который записывает сервер. Значения: debug, info, warn и error. |
logging.errorsCMA_LOGGING__ERRORS | false | Включает ли журнал сообщения об ошибках ответов 4xx и 5xx. Сообщение может цитировать значение, отправленное клиентом. |
health.check_intervalCMA_HEALTH__CHECK_INTERVAL | 60s | Как часто сервер проверяет свои учётные данные для инференса для проверки готовности. Минимум — 5s. |
health.upstream_affects_readinessCMA_HEALTH__UPSTREAM_AFFECTS_READINESS | true | Отвечает ли проверка готовности 503, пока провайдер инференса отклоняет учётные данные сервера. |
База данных
Каждый параметр в этой таблице, кроме store.backend, применяется только при store.backend: postgres.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
store.backendCMA_STORE__BACKEND | memory | Где сервер хранит свои данные. Значения: memory, которое стирается при перезапуске, и postgres. |
store.database_urlCMA_STORE__DATABASE_URL | Нет | Строка подключения PostgreSQL. Обязательна при postgres. |
store.control_database_urlCMA_STORE__CONTROL_DATABASE_URL | Значение store.database_url | Строка подключения для служебных подключений самого сервера, например для его сигнала активности. |
store.listen_database_urlCMA_STORE__LISTEN_DATABASE_URL | Значение store.database_url | Строка подключения для единственного подключения, на котором сервер прослушивает уведомления. Пул подключений в режиме транзакций не может обслуживать это подключение. |
store.migrate_database_urlCMA_STORE__MIGRATE_DATABASE_URL | Значение store.database_url | Строка подключения, которую использует команда сервера migrate. Пул подключений в режиме транзакций не может обслуживать это подключение. |
store.pool_max_connsCMA_STORE__POOL_MAX_CONNS | 24 | Максимальное число подключений к базе данных, которое открывает пул одного сервера. Минимум — 4. |
store.event_poll_intervalCMA_STORE__EVENT_POLL_INTERVAL | 25ms | Как часто каждый сервер запрашивает у базы данных последние события в сеансах, которые его клиенты получают в режиме «streaming» (потоковой передачи). Событие, записанное другим сервером, ожидает не дольше примерно этого времени, прежде чем попасть в поток. |
store.credentials_encryption_keyCMA_STORE__CREDENTIALS_ENCRYPTION_KEYТолько окружение | Нет | Ключ, которым шифруются хранимые учётные данные в базе данных, в виде 32 случайных байтов в base64. Установки Docker Compose и Kubernetes задают его. Без него сервер не запускается, если только store.allow_unencrypted_credentials не равен true. |
store.allow_unencrypted_credentialsCMA_STORE__ALLOW_UNENCRYPTED_CREDENTIALS | false | Может ли сервер запускаться без store.credentials_encryption_key. Без ключа он хранит учётные данные в базе данных в открытом виде. true не действует, если git.allowed_hostnames содержит хост или если вы выполняете установку с помощью Docker Compose или Helm-чарта сервера. |
store.credentials_encryption_keys_retiringCMA_STORE__CREDENTIALS_ENCRYPTION_KEYS_RETIRINGТолько окружение | Нет | Прежние ключи шифрования, которыми сервер ещё может расшифровывать данные во время ротации ключей. Этому параметру нужен store.credentials_encryption_key. |
Провайдер инференса
Чтобы настроить провайдера, см. раздел Провайдер инференса.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
inference.providerCMA_INFERENCE__PROVIDER | anthropic | Куда сервер отправляет вызовы модели. Значения: anthropic, bedrock, vertex, foundry и gateway. |
inference.headersТолько файл | Нет | Заголовки запроса, которые сервер добавляет к каждому вызову модели, в виде сопоставления имени заголовка со значением. Заключайте каждое значение в кавычки. Сервер отказывается запускаться при значении без кавычек, которое YAML не читает как текст, например true или 0042. При gateway значением также может быть { from: request_id } или { from: session_id }. |
inference.model_fallbackCMA_INFERENCE__MODEL_FALLBACK | true | Только anthropic. Запрашивают ли вызовы модели резервный вариант на стороне сервера. Такие вызовы содержат поле fallbacks и заголовок anthropic-beta: server-side-fallback-2026-07-01. Прокси, указанный вами в ANTHROPIC_BASE_URL, может отклонить это поле или заголовок. Если он отвечает кодом 400 или 422, сервер повторно отправляет вызов без них. |
inference.metadata.user_idCMA_INFERENCE__METADATA__USER_ID | Нет | Только anthropic и foundry или gateway с format: anthropic-messages. Единый идентификатор, который сервер отправляет как metadata.user_id с каждым вызовом модели. Журнал запуска выводит его. Без этого параметра сервер отправляет метку cma-server. Отключить metadata.user_id нельзя. Если провайдер или прокси отклоняет его, каждый вызов модели завершается ошибкой. См. раздел Что покидает вашу сеть. |
Облачные провайдеры
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
inference.regionCMA_INFERENCE__REGION | Нет | Только bedrock и vertex. Регион AWS или расположение в Google Cloud’s Agent Platform. Обязателен при vertex. Без него bedrock использует регион, который находит цепочка по умолчанию AWS SDK. |
inference.project_idCMA_INFERENCE__PROJECT_ID | Нет | Только vertex. Проект Google Cloud, в котором выполняются вызовы. Обязателен, если в учётных данных Google не указан проект. |
inference.apiCMA_INFERENCE__API | invoke_model | Только bedrock. API Amazon Bedrock, через который идут вызовы, invoke_model или messages. messages — это конечная точка, которую описывает Claude in Amazon Bedrock (bedrock-mantle). При нём роли AWS сервера нужно bedrock-mantle:CreateInference вместо bedrock:InvokeModel и bedrock:InvokeModelWithResponseStream. |
inference.list_modelsCMA_INFERENCE__LIST_MODELS | true | Только bedrock. Считывает ли сервер списки моделей Claude в Amazon Bedrock. Благодаря этим спискам агенты могут использовать модель, вышедшую после выпуска вашего сервера. |
inference.model_id_prefixCMA_INFERENCE__MODEL_ID_PREFIX | us.anthropic. | Только bedrock. Текст, который сервер ставит перед каждым ID модели. При inference.api: messages значение по умолчанию — anthropic.. |
inference.model_id_overridesТолько файл | Нет | Только bedrock, vertex и foundry. Сопоставление ID модели с точным ID, который ожидает провайдер. При foundry этот ID является именем развёртывания. |
inference.foundry.resourceCMA_INFERENCE__FOUNDRY__RESOURCE | Нет | Только foundry. Имя ресурса Foundry. Задайте этот параметр или inference.foundry.base_url, но не оба. |
inference.foundry.base_urlCMA_INFERENCE__FOUNDRY__BASE_URL | Нет | Только foundry. По умолчанию вызовы отправляются на https://<resource>.services.ai.azure.com/anthropic. Чтобы обращаться к ресурсу по другому адресу, например через прокси, укажите здесь этот URL. Он оканчивается на /anthropic. |
Шлюз моделей
Эти параметры применяются только при inference.provider: gateway. См. раздел Шлюз моделей.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
inference.gateway.urlCMA_INFERENCE__GATEWAY__URL | Нет | Обязателен. URL, который принимает вызовы модели. При bedrock-invoke и vertex-raw-predict {model} отмечает место, куда подставляется ID модели. При vertex-raw-predict URL должен оканчиваться на /{model}:rawPredict. |
inference.gateway.formatCMA_INFERENCE__GATEWAY__FORMAT | Нет | Обязателен. Формат запроса, который принимает шлюз: bedrock-invoke, anthropic-messages или vertex-raw-predict. |
inference.gateway.model_mapТолько файл | Нет | Обязателен. Сопоставление каждого ID модели, который могут указывать агенты, с ID, который ожидает шлюз. Заключайте каждое значение в кавычки, как для inference.headers. |
inference.gateway.streamingCMA_INFERENCE__GATEWAY__STREAMING | false | Отправляет ли сервер потоковый вызов этого формата, чтобы ответы приходили по мере их генерации моделью. При bedrock-invoke этот вызов отправляется на тот же URL с добавленным -with-response-stream. При vertex-raw-predict этот вызов отправляется на тот же URL, в котором :streamRawPredict стоит вместо :rawPredict. Оставьте :rawPredict в inference.gateway.url. |
inference.credentials.supplierCMA_INFERENCE__CREDENTIALS__SUPPLIER | Нет | Обязателен. Откуда берутся учётные данные шлюза. env означает один долгоживущий ключ, oauth_exchange — краткосрочные токены, а azure — токены Microsoft Entra ID, выдаваемые собственному удостоверению Azure сервера. |
inference.credentials.env.varCMA_INFERENCE__CREDENTIALS__ENV__VAR | Нет | Обязателен при env. Имя переменной окружения, которая содержит ключ. |
inference.credentials.azure.scopeCMA_INFERENCE__CREDENTIALS__AZURE__SCOPE | Нет | Обязателен при azure. Область, для которой сервер запрашивает токены: URI ID приложения или ID приложения из регистрации приложения вашего шлюза, за которым следует /.default. |
inference.credentials.send_as.headerCMA_INFERENCE__CREDENTIALS__SEND_AS__HEADER | Authorization | Заголовок запроса, который передаёт учётные данные. |
inference.credentials.send_as.schemeCMA_INFERENCE__CREDENTIALS__SEND_AS__SCHEME | Bearer | Слово, которое предшествует учётным данным в заголовке. Для любого заголовка, кроме Authorization, по умолчанию схема отсутствует. |
inference.credentials.renew_beforeCMA_INFERENCE__CREDENTIALS__RENEW_BEFORE | 90s | При oauth_exchange — насколько заранее сервер заменяет токен. Он перестаёт использовать кэшированный токен за это время до истечения срока действия токена и получает новый для следующего вызова модели. Держите значение меньше срока жизни ваших токенов. Сервер отклоняет любой токен, который действителен меньше этого значения. |
Краткосрочные токены шлюза
Эти параметры применяются только при inference.credentials.supplier: oauth_exchange. См. раздел Краткосрочные токены. Параметры exchange как группа необязательны. Без них сервер отправляет шлюзу то, что возвращает обратный вызов.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
inference.credentials.assertion.urlCMA_INFERENCE__CREDENTIALS__ASSERTION__URL | Нет | Обязателен. URL HTTP-обратного вызова, который возвращает подписанное утверждение. |
inference.credentials.assertion.auth.typeCMA_INFERENCE__CREDENTIALS__ASSERTION__AUTH__TYPE | Нет | Обязателен. Как сервер проходит аутентификацию в обратном вызове, mtls или bearer_file. |
inference.credentials.assertion.auth.cert_fileCMA_INFERENCE__CREDENTIALS__ASSERTION__AUTH__CERT_FILE | Нет | Обязателен при mtls. Путь к клиентскому сертификату сервера. |
inference.credentials.assertion.auth.key_fileCMA_INFERENCE__CREDENTIALS__ASSERTION__AUTH__KEY_FILE | Нет | Обязателен при mtls. Путь к закрытому ключу клиентского сертификата. |
inference.credentials.assertion.auth.token_fileCMA_INFERENCE__CREDENTIALS__ASSERTION__AUTH__TOKEN_FILE | Нет | Обязателен при bearer_file. Путь к файлу, содержащему токен bearer. |
inference.credentials.assertion.auth.ca_fileCMA_INFERENCE__CREDENTIALS__ASSERTION__AUTH__CA_FILE | Нет | Путь к файлу PEM с центрами сертификации, которым сервер доверяет для обратного вызова. |
inference.credentials.assertion.forward_metadataCMA_INFERENCE__CREDENTIALS__ASSERTION__FORWARD_METADATA | Нет | Ключи метаданных сеанса, значения которых сервер отправляет в обратный вызов. Они поступают как session.metadata в теле запроса. Значения — это то, что записала вызывающая сторона API, поэтому сверяйте их с собственными записями. |
inference.credentials.exchange.token_urlCMA_INFERENCE__CREDENTIALS__EXCHANGE__TOKEN_URL | Нет | Обязателен для обмена. Конечная точка токенов OAuth, в которой сервер обменивает утверждение на токен. |
inference.credentials.exchange.grant_typeCMA_INFERENCE__CREDENTIALS__EXCHANGE__GRANT_TYPE | Нет | Обязателен для обмена. grant_type, который отправляет сервер, например urn:ietf:params:oauth:grant-type:jwt-bearer. |
inference.credentials.exchange.encodingCMA_INFERENCE__CREDENTIALS__EXCHANGE__ENCODING | form | Как сервер кодирует запрос обмена, form или multipart. |
inference.credentials.exchange.expiryCMA_INFERENCE__CREDENTIALS__EXCHANGE__EXPIRY | expires_in | Откуда сервер считывает срок жизни токена. expires_in означает более раннее из значений expires_in в ответе и утверждения exp токена. jwt_exp означает только утверждение exp. |
inference.credentials.exchange.headersТолько файл | Нет | Дополнительные заголовки запроса для конечной точки токенов в виде сопоставления имени заголовка со значением. Заключайте каждое значение в кавычки, как для inference.headers. |
inference.credentials.exchange.ca_fileCMA_INFERENCE__CREDENTIALS__EXCHANGE__CA_FILE | Нет | Путь к файлу PEM с центрами сертификации, которым сервер доверяет для конечной точки токенов. |
Единый вход
Чтобы настроить вход, см. раздел Единый вход.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
auth.issuersТолько файл | Нет | Издатели OpenID Connect, токены которых принимает сервер. См. раздел Записи издателей. |
auth.refuse_server_api_keyТолько файл | false | Отклоняет ли сервер серверный ключ API на каждом маршруте. Для true нужен хотя бы один издатель. После этого каждая команда административного CLI, принимающая ключ, завершается ошибкой. |
Записи издателей
Каждая запись auth.issuers принимает следующие поля:
| Поле | По умолчанию | Описание |
|---|---|---|
name | Нет | Обязательно. Метка издателя в строках журнала. Сервер также записывает её как часть создателя каждого ресурса. |
issuer_url | Нет | Обязательно. URL издателя, в точности как в утверждении iss его токенов. Сервер загружает ключи подписи с этого хоста и с хоста jwks_uri, который указывает документ обнаружения издателя. Если ваша сеть ограничивает исходящие подключения, разрешите оба хоста. |
audiences | Нет | Обязательно. Значения, которые может содержать утверждение aud токена. Если приложения пересылают токены, которые у них уже есть, укажите ID клиента каждого приложения. |
roles | Нет | Список пар group и role. Группа сопоставляется точно или как шаблон, в котором * обозначает любую последовательность символов, а ? — один символ. Роль — это admin, developer или user. Побеждает самая высокая совпавшая роль. Задайте roles, default_role или оба. |
default_role | Нет | Роль вызывающей стороны, группы которой не соответствуют ни одной записи roles. Задавайте её, только если доступ должен быть у всех, кто может получить токен для этой аудитории. |
subject_claim | sub | Утверждение, которое идентифицирует вызывающую сторону. Имя, начинающееся с /, является указателем JSON Pointer во вложенные утверждения. |
stable_subject | false | Применяется, только если subject_claim указывает утверждение, отличное от sub или oid. Задайте true, чтобы подтвердить, что ваш провайдер никогда не изменяет значение этого утверждения для человека и никогда не передаёт его кому-либо другому. Сервер это не проверяет. При false токены агентов не содержат утверждений actor_sub и actor_iss. |
groups_claim | groups | Утверждение, в котором перечислены группы вызывающей стороны. Имя, начинающееся с /, является указателем JSON Pointer во вложенные утверждения. |
jwks_file | Нет | Путь к файлу JSON Web Key Set. Сервер считывает из него ключи подписи и никогда не обращается к издателю. |
login_client_id | Нет | ID клиента приложения, которое использует вход из терминала. Его может задать только один издатель. |
login_scopes | [openid] | Области, которые запрашивает вход. Этому полю нужен login_client_id. |
Менеджер секретов
Чтобы настроить хранилище, см. раздел Менеджер секретов.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
secret_store.typeCMA_SECRET_STORE__TYPE | Нет | Менеджер секретов, в котором хранятся учётные данные хранилища. Значения: aws_secrets_manager, gcp_secret_manager, azure_key_vault и hashicorp_vault. Без него учётные данные хранилища остаются в базе данных. |
secret_store.prefixCMA_SECRET_STORE__PREFIX | Нет | Обязателен при secret_store.type. Начало имени каждого секрета, создаваемого сервером. Он должен оканчиваться на / для aws_secrets_manager и hashicorp_vault, на - или _ для gcp_secret_manager и на - для azure_key_vault. |
secret_store.regionCMA_SECRET_STORE__REGION | Нет | Только aws_secrets_manager, и там обязателен. Регион AWS, в котором хранятся секреты. |
secret_store.projectCMA_SECRET_STORE__PROJECT | Нет | Только gcp_secret_manager, и там обязателен. ID проекта Google Cloud, в котором хранятся секреты. |
secret_store.vault_urlCMA_SECRET_STORE__VAULT_URL | Нет | Только azure_key_vault, и там обязателен. URL хранилища ключей, например https://my-vault.vault.azure.net. |
HashiCorp Vault
Эти параметры применяются только при secret_store.type: hashicorp_vault. Задайте ровно один метод входа: token_file, kubernetes или approle.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
secret_store.addressCMA_SECRET_STORE__ADDRESS | Нет | Обязателен. URL https:// сервера Vault. |
secret_store.namespaceCMA_SECRET_STORE__NAMESPACE | Нет | Пространство имён Vault Enterprise, содержащее точку монтирования и метод входа. |
secret_store.mountCMA_SECRET_STORE__MOUNT | secret | Путь к механизму секретов KV версии 2. |
secret_store.ca_cert_fileCMA_SECRET_STORE__CA_CERT_FILE | Нет | Путь к файлу PEM с центром сертификации, подписавшим сертификат Vault. |
secret_store.token_fileCMA_SECRET_STORE__TOKEN_FILE | Нет | Путь к файлу с токеном Vault, который поддерживает в актуальном состоянии другой процесс, например Vault Agent. |
secret_store.kubernetes.roleCMA_SECRET_STORE__KUBERNETES__ROLE | Нет | Обязателен при kubernetes. Роль Vault, под которой входит сервер. Привяжите её к учётной записи службы сервера. |
secret_store.kubernetes.mount_pathCMA_SECRET_STORE__KUBERNETES__MOUNT_PATH | kubernetes | Где Vault монтирует метод входа Kubernetes. |
secret_store.kubernetes.service_account_token_fileCMA_SECRET_STORE__KUBERNETES__SERVICE_ACCOUNT_TOKEN_FILE | /var/run/secrets/kubernetes.io/serviceaccount/token | Путь к токену учётной записи службы, который сервер предъявляет при каждом входе. |
secret_store.approle.role_idCMA_SECRET_STORE__APPROLE__ROLE_ID | Нет | Обязателен при approle. ID роли AppRole, под которой входит сервер. |
secret_store.approle.secret_id_fileCMA_SECRET_STORE__APPROLE__SECRET_ID_FILE | Нет | Обязателен при approle. Путь к файлу с secret_id роли. |
secret_store.approle.mount_pathCMA_SECRET_STORE__APPROLE__MOUNT_PATH | approle | Где Vault монтирует метод входа AppRole. |
Идентификация агентов
Чтобы настроить токены агентов, см. раздел Идентификация агентов. Любой параметр в этой таблице включает эту функцию. После этого серверу нужны agent_identity.issuer и ровно одно место для ключа подписи: key_file, key_secret или kms_key.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
agent_identity.issuerCMA_AGENT_IDENTITY__ISSUER | Нет | URL https://, который токены агентов содержат в качестве утверждения iss. |
agent_identity.key_fileCMA_AGENT_IDENTITY__KEY_FILE | Нет | Путь к закрытому ключу PEM, которым подписываются токены. |
agent_identity.key_secretCMA_AGENT_IDENTITY__KEY_SECRET | Нет | Имя секрета, содержащего закрытый ключ PEM в вашем менеджере секретов, без secret_store.prefix. |
agent_identity.kms_key.providerCMA_AGENT_IDENTITY__KMS_KEY__PROVIDER | Нет | Служба управления ключами, в которой хранится ключ подписи, aws_kms или gcp_kms. |
agent_identity.kms_key.keyCMA_AGENT_IDENTITY__KMS_KEY__KEY | Нет | Обязателен при kms_key.provider. ARN ключа для aws_kms или имя ресурса одной версии ключа для gcp_kms. |
agent_identity.published_key_filesCMA_AGENT_IDENTITY__PUBLISHED_KEY_FILES | Нет | Пути к дополнительным открытым ключам PEM для набора ключей. Сервер публикует эти ключи, но никогда не подписывает ими. Используйте этот параметр при ротации ключа подписи. |
agent_identity.token_lifetimeCMA_AGENT_IDENTITY__TOKEN_LIFETIME | 5m | Время от утверждения iat токена до его утверждения exp. Уже отправленный токен остаётся действительным до своего exp. Минимум — limits.mcp_call_timeout плюс 1m, максимум — 15m. |
agent_identity.jwks_uriCMA_AGENT_IDENTITY__JWKS_URI | <issuer>/.well-known/jwks.json | URL, который документ обнаружения издателя указывает для набора ключей. Задавайте его, только если вы размещаете набор ключей в другом месте, а не под URL издателя. |
agent_identity.direct.audiencesТолько файл | Нет | Получатели, которые могут получить токен. Каждая запись содержит URL audience и urls — префиксы URL серверов MCP этого получателя. |
agent_identity.actor.enabledCMA_AGENT_IDENTITY__ACTOR__ENABLED | true | Добавляет ли сервер утверждения actor_sub и actor_iss в токен вызова инструмента. actor_sub — это субъект вызывающей стороны, создавшей сеанс. actor_iss — это issuer_url записи auth.issuers, через которую вошла вызывающая сторона. Ни одно из этих утверждений не означает, что вызывающая сторона одобрила вызов. |
Шлюз исходящего трафика
Чтобы настроить шлюз, см. раздел Учётные данные в переменных окружения. Задавайте остальные параметры в этой таблице только при egress.gateway_enabled: true. Без этого сервер не запускается, если задан любой из них.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
egress.gateway_enabledCMA_EGRESS__GATEWAY_ENABLED | false | Работает ли сервер со шлюзом исходящего трафика и принимает ли учётные данные хранилища environment_variable. |
egress.allowed_hostnamesCMA_EGRESS__ALLOWED_HOSTNAMES | Нет | Точные публичные имена хостов, к которым песочницы могут обращаться через шлюз. Запись без порта, например api.example.com, разрешает порт 443 для URL https и порт 80 для URL http. Запись с портом, например api.example.com:8443, разрешает только этот порт. |
egress.swap_header_namesCMA_EGRESS__SWAP_HEADER_NAMES | Authorization | Заголовки запроса, в которые шлюз может поместить значение учётных данных. Ваш собственный список заменяет значение по умолчанию, поэтому включите в него Authorization. |
egress.gateway_listenCMA_EGRESS__GATEWAY_LISTEN | :8410 | Адрес второго прослушивателя сервера, который обслуживает только шлюз. Значение по умолчанию прослушивает все интерфейсы. |
egress.gateway_key_fileCMA_EGRESS__GATEWAY_KEY_FILE | Нет | Обязателен. Путь к файлу с ключом, который шлюз предъявляет серверу. |
egress.ca_cert_fileCMA_EGRESS__CA_CERT_FILE | Нет | Обязателен. Путь к сертификату PEM центра сертификации шлюза. |
egress.gateway_proxy_addressCMA_EGRESS__GATEWAY_PROXY_ADDRESS | Нет | Обязателен. host:port, по которому песочницы обращаются к порту прокси шлюза. |
Серверы MCP
См. раздел Серверам MCP нужна запись в списке разрешённых.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
mcp.allowed_hostnamesCMA_MCP__ALLOWED_HOSTNAMES | Нет | Точные имена хостов серверов MCP, к которым может подключаться сервер. Без него сервер ни к одному не подключается. |
mcp.private_hostnamesТолько файл | Нет | Имена хостов из mcp.allowed_hostnames, которые могут разрешаться в частный адрес. |
mcp.max_result_bytesCMA_MCP__MAX_RESULT_BYTES | 102400 (100 KiB) | Максимальное число байтов одного результата инструмента MCP, которое видит модель. Минимум — 1024. |
Репозитории Git
См. раздел Репозиториям Git нужна запись в списке разрешённых.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
git.allowed_hostnamesCMA_GIT__ALLOWED_HOSTNAMES | Нет | Хосты Git, на которых могут находиться репозитории сеанса. Имена хостов сопоставляются точно, без подстановочных знаков, и запись не охватывает свои поддомены. Запись разрешает порт 443 или тот единственный порт, который она указывает, как в git.example.com:8443. Без этого параметра сервер не принимает никакие репозитории. |
git.private_hostnamesТолько файл | Нет | Имена хостов из git.allowed_hostnames, которые разрешаются в частный адрес, указанные без порта. Для любого другого имени хоста сервер подключается только к его публичным адресам. |
git.allowed_push_refsCMA_GIT__ALLOWED_PUSH_REFS | Нет | Ветки, в которые агенты могут выполнять push, каждая в refs/heads/. Запись, оканчивающаяся на /, разрешает все ветки под ней. Любая другая запись разрешает эту единственную ветку. Без этого параметра агенты не могут выполнять push. |
git.commit_author_nameCMA_GIT__COMMIT_AUTHOR_NAME | Claude | Имя автора в коммитах агента. Задавайте его вместе с git.commit_author_email. |
git.commit_author_emailCMA_GIT__COMMIT_AUTHOR_EMAIL | noreply@anthropic.com | Адрес электронной почты автора в коммитах агента. Задавайте его вместе с git.commit_author_name. |
git.max_concurrent_transfersCMA_GIT__MAX_CONCURRENT_TRANSFERS | 32 | Максимальное число запросов Git, которые один сервер обрабатывает одновременно. Минимум — 1. |
git.max_session_transfer_bytesCMA_GIT__MAX_SESSION_TRANSFER_BYTES | 8589934592 (8 GiB) | Максимальный объём трафика Git в байтах, который один сервер передаёт для одного сеанса, включая и отправку, и загрузку. Счётчик обнуляется каждый раз, когда песочница подхватывает сеанс. При достижении ограничения сервер отклоняет следующие запросы Git этого сеанса с кодом 403. 0 означает отсутствие ограничения. В остальных случаях минимум — 1048576. |
git.max_push_bytesCMA_GIT__MAX_PUSH_BYTES | 2147483648 (2 GiB) | Максимальное число байтов, которое может отправить один push. Минимум — 1048576. |
К репозиториям Git применяются следующие ограничения:
- Протоколы: Сервер не поддерживает SSH и Git LFS и отклоняет перенаправления, например для переименованного репозитория.
- Токены: Хост Git должен принимать токен как пароль аутентификации HTTP Basic с именем пользователя
x-access-token. - URL: URL репозитория содержит одного владельца и одно имя репозитория, поэтому нельзя использовать репозиторий в подгруппе GitLab.
- Хосты: Для URL на хосте, который не указан в
git.allowed_hostnames, сервер возвращает400. В сообщении об ошибке говорится, что URL должен находиться наgithub.com, даже если вы указали другие хосты. - Push: Сервер всегда отклоняет push, который удаляет ветку или изменяет что-либо кроме ветки, например тег.
Веб-инструменты и навыки
См. раздел Веб-инструментам нужен параметр сервера.
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
web_tools.enabledCMA_WEB_TOOLS__ENABLED | false | Могут ли агенты использовать инструменты web_search и web_fetch. Если вы задали другой параметр web_tools, значение по умолчанию — true. |
web_tools.allowed_domainsCMA_WEB_TOOLS__ALLOWED_DOMAINS | Нет | Единственные домены, которые агенты могут читать через веб-инструменты. Запись охватывает свои поддомены. |
web_tools.blocked_domainsCMA_WEB_TOOLS__BLOCKED_DOMAINS | Нет | Домены, которые ни один агент не может читать через веб-инструменты. Задайте этот параметр или web_tools.allowed_domains, но не оба. |
web_tools.max_content_tokensCMA_WEB_TOOLS__MAX_CONTENT_TOKENS | Нет | Максимальное число токенов одной загруженной страницы, которое web_fetch возвращает модели. |
skills.max_name_charsCMA_SKILLS__MAX_NAME_CHARS | 64 | Максимальная длина name, которую может иметь файл SKILL.md. Максимум — 255. |
skills.max_description_charsCMA_SKILLS__MAX_DESCRIPTION_CHARS | 1024 | Максимальная длина description, которую может иметь файл SKILL.md. |
Ограничения, тайм-ауты и планирование
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
limits.max_active_sessionsCMA_LIMITS__MAX_ACTIVE_SESSIONS | 64 | Только store.backend: memory. Максимальное число сеансов, выполняющих ход одновременно. 0 означает отсутствие ограничения. |
limits.max_live_subagent_threadsCMA_LIMITS__MAX_LIVE_SUBAGENT_THREADS | 25 | Максимальное число потоков субагентов, которые один сеанс может удерживать одновременно. Поток учитывается, пока он не архивирован или не завершён, поэтому простаивающий поток тоже учитывается. При достижении ограничения агент не может запустить ещё один субагент. Минимум — 1, максимум — 4000. |
scheduler.max_concurrent_turnsCMA_SCHEDULER__MAX_CONCURRENT_TURNS | 64 | Только store.backend: postgres. Максимальное число ходов, которые один сервер выполняет одновременно. Минимум — 1. Сервер резервирует дополнительные слоты только для ходов субагентов. Их число составляет четверть от этого значения, но не менее 4. При значении по умолчанию один сервер может выполнять 64 хода плюс 16 ходов субагентов. |
scheduler.claim_poll_intervalCMA_SCHEDULER__CLAIM_POLL_INTERVAL | 1s | Только store.backend: postgres. Как часто сервер со свободным слотом для хода ищет в базе данных ожидающую работу. Минимум — 50ms. |
scheduler.sandbox_claimCMA_SCHEDULER__SANDBOX_CLAIM | immediate | Когда воркер может запустить песочницу сеанса. immediate означает сразу после создания сеанса, поэтому первый вызов инструмента ожидает меньше всего. tool_call означает при первом вызове инструмента в сеансе, которому нужна песочница, поэтому сеанс, не выполняющий таких вызовов, не использует песочницу. |
limits.model_call_timeoutCMA_LIMITS__MODEL_CALL_TIMEOUT | 20m | Как долго может выполняться один вызов модели, включая повторные попытки, прежде чем сервер его отменит. |
limits.stream_idle_timeoutCMA_LIMITS__STREAM_IDLE_TIMEOUT | 5m | Как долго ответ на вызов модели может ничего не передавать, прежде чем сервер прекратит эту попытку. |
limits.mcp_call_timeoutCMA_LIMITS__MCP_CALL_TIMEOUT | 4m | Как долго может выполняться один вызов инструмента MCP, прежде чем сервер его прекратит. |
Модели и сжатие
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
models.settingsТолько файл | Нет | Изменения встроенного каталога моделей сервера с ключами по ID модели. См. раздел Записи моделей. |
compaction.triggersТолько файл | Около 90% «context window» (контекстного окна) каждой модели | Размер контекста в токенах, при котором ход на модели сжимает свою историю, с ключами по ID модели. Минимум — 50000. Каждая модель должна поддерживать сжатие. |
Записи моделей
Каждая запись models.settings изменяет модель в каталоге или добавляет новую. Для модели в каталоге поле, которое вы не указали, сохраняет своё встроенное значение.
| Поле | Описание |
|---|---|
fast_supported | Принимает ли модель speed: "fast". Обязательно для добавляемой вами модели. |
inference_geo_supported | Принимает ли модель inference_geo. |
forced_tool_choice_supported | Принимает ли модель запрос, который принуждает её вызвать один инструмент. Сервер отправляет такой запрос, только чтобы выполнить одобренный вызов web_search или web_fetch. При false он никогда не принуждает эту модель к вызову инструмента. |
effort_supported | Принимает ли модель уровень усилий. |
effort_levels | Уровни усилий, которые принимает модель, из low, medium, high, xhigh и max. Обязательно при effort_supported: true для модели без встроенных уровней. |
effort_default | Уровень усилий сеанса, агент которого его не указывает. Должен быть одним из effort_levels. Обязательно при effort_supported: true для модели без встроенного значения по умолчанию. |
thinking | Режим «thinking» (размышлений), который запрашивает сервер, enabled или adaptive. |
thinking_budget | Бюджет размышлений в токенах, который сервер отправляет при thinking: enabled. |
max_tokens | Значение max_tokens для каждого вызова модели. |
Консоль на вашем сервере
| Параметр Переменная окружения | По умолчанию | Описание |
|---|---|---|
console.serveCMA_CONSOLE__SERVE | true | Обслуживать ли консоль на вашем сервере. |
Эта страница была полезной?