Приложения платформы агента самообслуживания

Note

Средства самостоятельного хостинга для протокола в .NET скоро появятся. Модель размещения позволит приложению самостоятельно выполнять интеграцию с сервером, состоянием и протоколом.

Note

Вспомогательные средства протокола для самостоятельного хостинга в настоящее время недоступны для Go.

Самостоятельное размещение позволяет запускать агент Agent Framework или рабочий процесс в собственном веб-приложении, контейнере, службе или среде выполнения. Приложение управляет маршрутизацией, удостоверением, авторизацией, политикой запросов, хранилищем, развертыванием и масштабированием. Добавьте на этот сервер одну или несколько интеграций протоколов в зависимости от того, каких клиентов необходимо поддерживать.

Используйте этот параметр, если необходимо интегрировать конечную точку агента с существующей инфраструктурой приложений. Если вы хотите Microsoft Foundry запустить агент для вас, см. статью "Размещенные агенты Foundry". Если вам нужны Функции Azure триггеры или устойчивое выполнение, см. раздел "Устойчивое расширение".

Разработка этих пакетов обеспечивает максимальную гибкость для разработчика. Это означает, что если вы хотите создать хост, который предоставляет агента через Responses API, и использовать параметры для других целей (то есть сопоставить temperature с top_p), вы можете это сделать. Если вы не хотите хранить сеансы, вы можете этого не делать; если вы хотите разрешить вызывающей стороне полностью управлять запуском агента, вы можете сделать и это. Мы не будем стоять у вас на пути: мы предоставляем вспомогательные инструменты для типичных сценариев, а за всё остальное оставляем отвечать вам, чтобы вы могли создать именно тот узел, который вам нужен.

Important

agent-framework-hosting, agent-framework-hosting-responses, , agent-framework-hosting-telegramagent-framework-a2aagent-framework-hosting-a2aи agent-framework-hosting-mcp являются предварительной версией пакетов Python. Установите предварительные версии явным образом и просмотрите заметки о выпуске перед обновлением рабочего развертывания.

pip install --pre agent-framework-hosting

Что предоставляют вспомогательные службы размещения

Обобщённый пакет размещения предоставляет общее состояние выполнения для сервера, принадлежащего приложению:

  • AgentState связывает целевой объект агента с объектом SessionStore и создает сеансы, когда приложение выбирает новый ключ.
  • SessionStore сохраняет, извлекает и удаляет сеансы по идентификатору, выбранному приложением. Его хранилище по умолчанию является локальным процессом и не имеет политики вытеснения.
  • WorkflowState определяет цель рабочего процесса. Приложение отвечает за хранилище контрольных точек и за любое сопоставление идентификатора продолжения клиента с контрольной точкой.

AgentState не является сервером или реестром протоколов. Приложение выбирает ключ авторизованного сеанса, определяет целевой объект и сохраняет состояние после завершения выполнения. Он может использовать одну и ту же целевую и общую инфраструктуру приложений для одной или нескольких конечных точек протокола.

Настройка хранилища сеансов

SessionStore— это небольшой асинхронный класс хранилища с getsetметодами , а также delete методами. Реализация по умолчанию сохраняет сеансы в памяти процесса. Создайте его подкласс и переопределите эти методы, чтобы хранить объекты AgentSession в Redis, базе данных, хранилище BLOB-объектов или другом хранилище, принадлежащем приложению, а затем передайте экземпляр в AgentState(session_store=...).

SessionStore и поставщики истории сохраняют отдельные части разговора агента. Хранилище сеансов сохраняет один объект сеанса для каждого идентификатора сеанса, включая метаданные сеанса и состояние провайдера. HistoryProvider Выделенное хранилище сохраняет беседу отдельно, как правило, как одну запись для каждого сообщения. Такое разделение рекомендуется для постоянных хостов, поскольку добавлять отдельные сообщения обычно эффективнее, чем перезаписывать растущий объект сеанса после каждого шага. Поставщик журнала определяется для каждого агента, передав требуемый класс поставщика журнала параметру context_providers .

Note

Поставщик истории по умолчанию: InMemoryHistoryProvider — это исключение: он хранит весь разговор в AgentSession.state. При использовании этого поставщика SessionStore сохраняет разговор в объекте сеанса. Для долгих диалогов или постоянного хранения в рабочей среде используйте отдельный поставщик истории, чтобы хранилище сеансов отвечало только за облегчённое состояние сеанса.

Используйте собственный фреймворк или клиентскую библиотеку

Пакеты размещения не привязаны к веб-платформе или клиентской библиотеке. В примерах используются FastAPI и aiogram, потому что они позволяют привести краткие рабочие примеры, а не потому, что вспомогательные функции требуют их.

  • Для конечных точек HTTP используйте API маршрутизации и запроса и ответа платформы приложений, такие как FastAPI, Starlette, Django, Flask, Функции Azure или другая платформа.
  • Для клиентов протокола, таких как Telegram, используйте любую клиентную библиотеку, которая может предоставить обновление протокола и выполнить операции, созданные вспомогательным поставщиком.

Приложение выбирает свою платформу и клиентную библиотеку; Пакеты Agent Framework преобразуют только данные протокола и управляют необязательным состоянием выполнения. Они не регистрируют маршруты, не аутентифицируют вызывающих, не авторизуют доступ к состоянию, не выбирают допустимые параметры модели и не предоставляют постоянное хранилище.

Добавление протоколов на сервер

Выберите одну или несколько интеграции протокола:

Protocol Упаковка и интеграция
Ответы OpenAI agent-framework-hosting-responses
Телеграмма agent-framework-hosting-telegram
A2A agent-framework-a2a или agent-framework-hosting-a2a
MCP agent-framework-hosting-mcp

Каждая страница протокола описывает ее настройку. Однако они предназначены для создания одного узла с поддержкой одного или нескольких протоколов и вызываемого целевого объекта; агент или рабочий процесс. Поскольку мы не ограничиваем вас одним веб-фреймворком, вы можете выбрать тот, который вам нужен, и без труда настроить хост с этими протоколами.

Продолжение безопасного сеанса

Обрабатывать каждый предоставленный протоколом идентификатор как ненадежные входные данные. Прежде чем использовать идентификатор для загрузки сеанса, контрольной точки, задачи или другого состояния:

  1. Проверьте подлинность вызывающей стороны.
  2. Авторизуйте вызывающий объект для доступа к указанному состоянию.
  3. Разделяйте сохраняемое состояние по прошедшему аутентификацию арендатору, пользователю или рабочей области.
  4. Сохраняйте состояние сеанса и контрольной точки только после завершения запуска или потока.

Этот шаблон самостоятельного размещения позволяет приложению реализовать только необходимые конечные точки протокола и политики; Он не пытается реализовать полную поверхность API каждого поддерживаемого протокола.

Дальнейшие действия

Вернитесь глубже: