Azure AI Foundry

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

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

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

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

hermes model
# → Выберите "Azure Foundry"
# → Введите URL вашей конечной точки
# → Введите ваш ключ API
# Hermes проверяет конечную точку и автоматически определяет транспорт + модели
# → Выберите модель из списка (или введите имя развёртывания вручную)

Мастер выполнит следующие действия:

  1. Анализ пути URL — URL-адреса, оканчивающиеся на /anthropic, распознаются как маршрут Claude в Azure Foundry.
  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         # или "anthropic_messages"
  default: gpt-5.4-mini              # ваше развёртывание / имя модели
  context_length: 400000             # автоматически определено

В ~/.hermes/.env:

AZURE_FOUNDRY_API_KEY=<your-azure-key>

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

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

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

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

Конечные точки в стиле Anthropic (Claude через Azure Foundry)

Для развёртывания Клода воспользуйтесь маршрутом в стиле 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. Гермес обнаруживает, что базовый URL-адрес содержит azure.com, и обходит цепочку OAuth-токенов Claude Code, используя ключ Azure напрямую для аутентификации через x-api-key.

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

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

Azure не предоставляет конечную точку только с ключом API для перечисления ваших развёрнутых моделей. Перечисление развёртывания требует аутентификации через Azure Resource Manager («список развертывания учетных записей когнитивных служб») и субъектов Azure AD, а не ключа API для вывода.

Гермес может сделать следующее:

— Конечные точки Azure OpenAI v1 (<resource>.openai.azure.com/openai/v1) предоставляют GET /models, который содержит каталог доступных моделей ресурсов. Компания Hermes использует этот список для предварительного выбора модели. - Маршрут Azure Foundry /anthropic: определяется по URL-адресу пути, имя модели вводится вручную. - Частные/защищённые конечные точки: ручной ввод с использованием дружественных сообщений «не удалось проверить».

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

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

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

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

Ошибка 401 Несанкционировано для развёртывания gpt-5.x. Azure предоставляет gpt-5.x через /chat/completions, а не через /responses. Когда URL-адрес содержит openai.azure.com, Hermes обрабатывает его автоматически, но если вы видите 401 с телом «Неверный ключ API», проверьте, что 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 и проверку Anthropic Messages. Это нормально для последних рубежей за брандмауэром или с IP-белым списком. Вернитесь к ручному выбору режима API и введите имя вашего развёртывания — всё будет работать, просто Гермес не сможет предзаполнить селектор.

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

model:
  provider: azure-foundry
  api_mode: anthropic_messages   # или chat_completions

Связанные темы