sidebar_position: 15 title: "Azure AI Foundry" description: "Use Hermes Agent with Azure AI Foundry — OpenAI-style and Anthropic-style endpoints, auto-detection of transport and deployed models" lang: ru


Azure AI Foundry

Агент Hermes поддерживает Azure AI Foundry (и Azure OpenAI) как первоклассного поставщика. На одном ресурсе Azure могут размещаться модели с двумя разными форматами проводов:

Мастер установки исследует вашу конечную точку и автоматически определяет, какой транспорт она использует, какие развертывания доступны, а также длину контекста каждой модели.

Предварительные условия

Быстрый старт

hermes model
# → Select "Azure Foundry"
# → Enter your endpoint URL
# → Enter your API key
# Hermes probes the endpoint and auto-detects transport + models
# → Pick a model from the list (or type a deployment name manually)

Мастер:

  1. Проанализируйте путь URL-адреса — URL-адреса, заканчивающиеся на /anthropic, распознаются как маршруты Azure Foundry Claude.
  2. Пробка GET <base>/models — если конечная точка возвращает список моделей в форме OpenAI, Hermes переключается на chat_completions и предварительно заполняет средство выбора возвращенными идентификаторами развертывания.
  3. Проверить форму антропных сообщений — запасной вариант для конечных точек, которые не предоставляют /models, но принимают формат антропных сообщений.
  4. Возврат к ручному вводу — частные/закрытые конечные точки, которые отклоняют все запросы, по-прежнему работают; вы выбираете режим API и вводите имя развертывания вручную.

Длина контекста для выбранной модели определяется с помощью стандартной цепочки метаданных Hermes (models.dev, метаданных поставщика и жестко запрограммированных резервных вариантов семейства) и сохраняется в config.yaml, чтобы модель могла правильно определить размер собственного контекстного окна.

Конфигурация (записано на config.yaml)

После запуска мастера вы увидите что-то вроде этого:

model:
  provider: azure-foundry
  base_url: https://my-resource.openai.azure.com/openai/v1
  api_mode: chat_completions         # or "anthropic_messages"
  default: gpt-5.4-mini              # your deployment / model name
  context_length: 400000             # auto-detected

И в ~/.hermes/.env:

AZURE_FOUNDRY_API_KEY=<your-azure-key>

Конечные точки в стиле OpenAI (GPT, Llama и т. д.)

Конечная точка Azure OpenAI v1 GA принимает стандартный клиент Python openai с минимальными изменениями:

model:
  provider: azure-foundry
  base_url: https://my-resource.openai.azure.com/openai/v1
  api_mode: chat_completions
  default: gpt-5.4

Важное поведение:

Конечные точки в антропном стиле (Клод через Azure Foundry)

Для развертываний Claude используйте маршрут в стиле Anthropic:

model:
  provider: azure-foundry
  base_url: https://my-resource.services.ai.azure.com/anthropic
  api_mode: anthropic_messages
  default: claude-sonnet-4-6

Важное поведение:

Альтернатива: provider: anthropic + базовый URL-адрес Azure.

Если у вас уже настроен provider: anthropic и вы просто хотите указать его на Azure AI Foundry для Claude, вы можете полностью пропустить поставщика azure-foundry:

model:
  provider: anthropic
  base_url: https://my-resource.services.ai.azure.com/anthropic
  key_env: AZURE_ANTHROPIC_KEY
  default: claude-sonnet-4-6

С AZURE_ANTHROPIC_KEY, установленным в ~/.hermes/.env. Hermes обнаруживает azure.com в базовом URL-адресе и замыкает цепочку токенов OAuth Claude Code, поэтому ключ Azure используется напрямую с аутентификацией x-api-key.

key_env — каноническое имя поля Snake_case; api_key_env (и верблюжий регистр keyEnv / apiKeyEnv) принимаются в качестве псевдонимов. Если установлены оба key_env и AZURE_ANTHROPIC_KEY/ANTHROPIC_API_KEY, то побеждает переменная env var с именем key_env.

Обнаружение модели

Azure не предоставляет конечную точку с чистым ключом API для вывода списка развертываний развернутой модели. Для перечисления развертывания требуется проверка подлинности Azure Resource Manager (az cognitiveservices account deployment list) с использованием субъекта Azure AD, а не ключа API вывода.

Что может Гермес:

Вы всегда можете ввести имя развертывания напрямую — Hermes не проверяет возвращаемый список.

Переменные среды

Переменная Цель
AZURE_FOUNDRY_API_KEY Первичный ключ API для Azure AI Foundry/Azure OpenAI
AZURE_FOUNDRY_BASE_URL URL-адрес конечной точки (устанавливается через hermes model; переменная env используется как запасной вариант)
AZURE_ANTHROPIC_KEY Используется provider: anthropic + базовый URL-адрес Azure (альтернатива ANTHROPIC_API_KEY)

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

401 Несанкционировано при развертывании gpt-5.x. Azure обслуживает gpt-5.x на /chat/completions, а не на /responses. Hermes обрабатывает это автоматически, если URL-адрес содержит openai.azure.com, но если вы видите 401 с телом Invalid API key, убедитесь, что api_mode в вашем config.yaml равен chat_completions.

404 на /v1/messages?api-version=.../v1/messages. Это ошибка неправильного URL-адреса в предварительных настройках Azure Anthropic. Обновите Hermes — параметр api-version теперь передается через default_query, а не встроен в базовый URL-адрес, поэтому SDK не сможет повредить его во время объединения URL-адресов.

Мастер сообщает: «Автоопределение не завершено». Конечная точка отклонила как проверку /models, так и проверку антропных сообщений. Это нормально для частных конечных точек, находящихся за брандмауэром или со списком разрешенных IP-адресов. Вернитесь к выбору режима API вручную и введите имя развертывания — все по-прежнему работает, Hermes просто не может предварительно заполнить окно выбора.

Выбран неправильный транспорт. Запустите hermes model еще раз, и мастер выполнит повторную проверку. Если зонд по-прежнему выбирает неправильный режим, вы можете напрямую отредактировать config.yaml:

model:
  provider: azure-foundry
  api_mode: anthropic_messages   # or chat_completions

Похожие