Aplicaciones de Agent Framework autohospedadas

Note

Las utilidades auxiliares de protocolo para autoalojamiento en .NET estarán disponibles próximamente. El modelo de hospedaje permitirá que su aplicación sea propietaria de sus integraciones de servidor, estado y protocolo.

Note

Los asistentes de protocolo de autohospedaje no están disponibles actualmente para Go.

El autohospedaje permite ejecutar un agente o un flujo de trabajo de Agent Framework en su propia aplicación web, contenedor, servicio o tiempo de ejecución. La aplicación controla el enrutamiento, la identidad, la autorización, la directiva de solicitud, el almacenamiento, la implementación y el escalado. Agregue una o varias integraciones de protocolos a ese servidor en función de los clientes que necesite admitir.

Use esta opción cuando necesite integrar un punto de conexión de agente con la infraestructura de aplicaciones existente. Si desea que Microsoft Foundry ejecute el agente para usted, consulte Agentes hospedados de Foundry. Si necesita desencadenadores de Azure Functions o ejecución durable, consulte Extensión Durable.

El diseño de estos paquetes es tal que permite la máxima flexibilidad para el desarrollador. Esto significa que, si quiere crear un host que exponga un agente con la Responses API y usar indebidamente los parámetros para otros fines (es decir, asignar temperature a top_p), puede hacerlo. Si no desea almacenar sesiones, puede hacerlo, si desea permitir que el autor de la llamada controle la ejecución completa del agente, también puede hacerlo. No nos interpondremos: ofrecemos utilidades para los casos habituales y dejamos el resto en sus manos, para que pueda crear el host exacto que necesita.

Importante

agent-framework-hosting, agent-framework-hosting-responses, agent-framework-hosting-telegram, agent-framework-a2a, agent-framework-hosting-a2ay agent-framework-hosting-mcp son paquetes de Python preliminares. Instale las versiones preliminares explícitamente y revise las notas de la versión antes de actualizar una implementación de producción.

pip install --pre agent-framework-hosting

Qué proporcionan los asistentes de hospedaje

El paquete de hospedaje genérico proporciona el estado de ejecución compartido para un servidor propiedad de la aplicación:

  • AgentState empareja un destino de agente con SessionStore y crea sesiones cuando la aplicación selecciona una nueva clave.
  • SessionStore almacena, recupera y elimina sesiones mediante un identificador seleccionado por la aplicación. Su almacén predeterminado es process-local y no tiene ninguna directiva de expulsión.
  • WorkflowState determina un destino del flujo de trabajo. La aplicación es responsable del almacenamiento de puntos de control y de cualquier asignación entre un identificador de continuación de cliente y un punto de control.

AgentState no es un servidor ni un registro de protocolo. La aplicación selecciona una clave de sesión autorizada, resuelve el destino y guarda el estado posterior a la ejecución. Puede usar la misma infraestructura de aplicaciones compartidas y de destino para uno o varios puntos de conexión de protocolo.

Personalización del almacenamiento de sesión

SessionStore es una pequeña clase de almacenamiento asincrónica con getmétodos , sety delete . La implementación predeterminada mantiene las sesiones en la memoria del proceso. Subclase y invalide esos métodos para almacenar AgentSession objetos en Redis, una base de datos, un almacenamiento de blobs u otro almacén propiedad de la aplicación y, a continuación, pase la instancia a AgentState(session_store=...).

SessionStore y los proveedores de historial conservan partes independientes de una conversación del agente. Un almacén de sesiones guarda un objeto de sesión por identificador de sesión, incluidos los metadatos de sesión y el estado del proveedor. Un dedicado HistoryProvider almacena la conversación por separado, normalmente como un registro por mensaje. Esta separación se recomienda para hosts duraderos porque anexar mensajes individuales suele ser más eficaz que volver a escribir un objeto de sesión creciente después de cada turno. Un proveedor de historial se define por agente pasando la clase de proveedor de historial deseada al context_providers parámetro .

Note

El proveedor de historial predeterminado: InMemoryHistoryProvider es la excepción: almacena la conversación completa en AgentSession.state. Cuando se usa ese proveedor, SessionStore conserva la conversación dentro del objeto de sesión. Para conversaciones más largas o para almacenamiento en producción, use un proveedor de historial dedicado para que el almacén de sesión pueda seguir centrado en un estado de sesión ligero.

Traiga su propio marco o biblioteca cliente

Los paquetes de hospedaje no están vinculados a un marco web ni a una biblioteca cliente. Los ejemplos usan FastAPI y aiogram , dado que proporcionan ejemplos ejecutables concisos, no porque los asistentes los requieren.

  • Para los puntos de conexión HTTP, use las API de enrutamiento y solicitud y respuesta del marco de la aplicación, como FastAPI, Starlette, Django, Flask, Azure Functions u otro marco.
  • Para clientes de protocolo como Telegram, use cualquier biblioteca cliente que pueda proporcionar una actualización de protocolo y ejecutar las operaciones producidas por el asistente.

La aplicación selecciona su marco y biblioteca cliente; Los paquetes de Agent Framework solo convierten los datos de protocolo y administran el estado de ejecución opcional. No registran rutas, autentican a quienes realizan las llamadas, autorizan el acceso al estado, eligen las opciones de modelo permitidas ni proporcionan almacenamiento duradero.

Adición de protocolos al servidor

Elija una o varias integraciones de protocolo:

Protocol Paquete e integración
Respuestas de OpenAI agent-framework-hosting-responses
Telegrama agent-framework-hosting-telegram
A2A agent-framework-a2a o agent-framework-hosting-a2a
MCP agent-framework-hosting-mcp

Cada página de protocolo describe su configuración. Sin embargo, están diseñados para permitirle crear un único host con uno o varios protocolos habilitados y un destino invocable; ya sea un agente o un flujo de trabajo. Puesto que no le limitamos a un marco web, puede elegir el que desee y configurar el host con esos protocolos con facilidad.

Continuación de sesión segura

Trate cada identificador proporcionado por el protocolo como entrada que no es de confianza. Antes de usar un identificador para cargar una sesión, un punto de control, una tarea u otro estado:

  1. Autentíquese al autor de la llamada.
  2. Autorice al autor de la llamada para acceder al estado al que se hace referencia.
  3. Divida el estado persistente por tenant autenticado, usuario o espacio de trabajo.
  4. Conservar el estado de sesión y punto de comprobación solo después de que se haya completado la ejecución o secuencia.

Este patrón de autohospedaje permite a la aplicación implementar solo los puntos de conexión de protocolo y las directivas que necesita; no intenta implementar la superficie de API completa de todos los protocolos admitidos.

Pasos siguientes

Vaya más profundamente: