Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Note
Protokollhjälpare för självvärd i .NET kommer snart. Värdmodellen låter ditt program äga sina server-, tillstånds- och protokollintegreringar.
Note
Protokollhjälpare med självbetjäning är för närvarande inte tillgängliga för Go.
Självhostning låter dig köra en Agent Framework-agent eller ett arbetsflöde i din egen webbapplikation, container, tjänst eller körmiljö. Ditt program styr routning, identitet, auktorisering, begärandeprincip, lagring, distribution och skalning. Lägg till en eller flera protokollintegreringar till servern baserat på de klienter som du behöver stöd för.
Använd det här alternativet när du behöver integrera en agentslutpunkt med din befintliga programinfrastruktur. Om du vill att Microsoft Foundry ska köra agenten åt dig, se Foundry Hosted Agents. Om du behöver utlösare för Azure Functions eller beständig körning, se Durable Extension.
Utformningen av dessa paket är sådan att det ger maximal flexibilitet för utvecklaren. Det innebär att om du vill skapa en värd som exponerar en agent med svars-API:et och missbrukar parametrarna för andra ändamål (dvs. mappa temperature till top_p) kan du göra det. Om du inte vill lagra sessioner kan du göra det. Om du vill låta anroparen styra hela agentkörningen kan du också göra det. Vi kommer inte att stå i vägen, vi erbjuder hjälpmedel för de vanligaste fallen och låter dig ansvara för resten, så att du kan bygga den exakta värdmiljö du behöver.
Important
agent-framework-hosting, agent-framework-hosting-responses, agent-framework-hosting-telegram, agent-framework-a2a, agent-framework-hosting-a2aoch agent-framework-hosting-mcp är förhandsversioner Python paket. Installera förhandsversioner uttryckligen och granska versionsinformationen innan du uppdaterar en produktionsmiljö.
pip install --pre agent-framework-hosting
Vad värdhjälparna tillhandahåller
Det allmänna värdpaketet ger delat körningstillstånd för en programägd server:
-
AgentStateparkopplar ett agentmål med enSessionStoreoch skapar sessioner när programmet väljer en ny nyckel. -
SessionStorelagrar, hämtar och tar bort sessioner med ett programvalt ID. Dess standardlagring är lokal för processen och har ingen utrensningsprincip. -
WorkflowStatelöser ett arbetsflödesmål. Ditt program äger kontrollpunktslagring och eventuell mappning från ett klientfortsättnings-ID till en kontrollpunkt.
AgentState är inte ett server- eller protokollregister. Din applikation väljer en auktoriserad sessionsnyckel, fastställer målet och sparar sluttillståndet efter körning. Den kan använda samma mål- och delade programinfrastruktur för en eller flera protokollslutpunkter.
Anpassa sessionslagring
SessionStore är en liten asynkron lagringsklass med getmetoderna , setoch delete . Standardimplementeringen håller sessioner i processminnet. Underklassa den och åsidosätt dessa metoder för att lagra AgentSession objekt i Redis, en databas, bloblagring eller ett annat programägt arkiv och skicka sedan instansen till AgentState(session_store=...).
SessionStore och historikleverantörer lagrar separata delar av en agents konversation. Ett sessionsarkiv sparar ett sessionsobjekt per sessions-ID, inklusive sessionsmetadata och providertillstånd. En dedikerad HistoryProvider lagrar konversationen separat, vanligtvis som en post per meddelande. Den här separationen rekommenderas för varaktiga värdar eftersom det i allmänhet är effektivare att lägga till enskilda meddelanden än att skriva om ett växande sessionsobjekt efter varje tur. En historikprovider definieras per agent genom att den önskade historikproviderklassen skickas till parametern context_providers .
Note
Standardhistorikprovidern: InMemoryHistoryProvider är undantaget: den lagrar hela konversationen i AgentSession.state. När providern används SessionStore bevaras konversationen i sessionsobjektet. För längre konversationer eller produktionslagring använder du en dedikerad historikprovider så att sessionsarkivet kan fokusera på enkelt sessionstillstånd.
Ta med ditt eget ramverk eller klientbibliotek
Värdpaketen är inte kopplade till ett webbramverk eller klientbibliotek. Exemplen använder FastAPI och aiogram eftersom de ger kortfattade körbara exempel, inte för att hjälparna behöver dem.
- För HTTP-slutpunkter använder du routnings- och begärande-/svars-API:er för ditt programramverk, till exempel FastAPI, Starlette, Django, Flask, Azure Functions eller något annat ramverk.
- För protokollklienter som Telegram använder du alla klientbibliotek som kan tillhandahålla en protokolluppdatering och köra de åtgärder som skapas av hjälpen.
Programmet väljer sitt ramverk och klientbibliotek. Agent Framework-paketen konverterar endast protokolldata och hanterar valfritt körningstillstånd. De registrerar inte routter, autentiserar anropare, auktoriserar åtkomst till status, väljer tillåtna modellalternativ eller tillhandahåller beständig lagring.
Lägga till protokoll till servern
Välj en eller flera protokollintegreringar:
| Protokoll | Paket och integrering |
|---|---|
| OpenAI-svar | agent-framework-hosting-responses |
| Telegram | agent-framework-hosting-telegram |
| A2A |
agent-framework-a2a eller agent-framework-hosting-a2a |
| MCP | agent-framework-hosting-mcp |
Varje protokollsida beskriver dess konfiguration. De är dock utformade för att du ska kunna skapa en enda värd med ett eller flera protokoll aktiverade och ett anropsbart mål. antingen en agent eller ett arbetsflöde. Eftersom vi inte begränsar dig till ett enda webbramverk kan du välja det du vill använda och enkelt konfigurera värden för dessa protokoll.
Fortsättning av säker session
Behandla varje identifierare som tillhandahålls av protokollet som otillförlitliga indata. Innan du använder ett ID för att läsa in en session, kontrollpunkt, uppgift eller annat tillstånd:
- Autentisera anroparen.
- Ge anroparen behörighet att komma åt det refererade tillståndet.
- Partitionera beständigt tillstånd efter den autentiserade tenanten, användaren eller arbetsytan.
- Bevara sessions- och kontrollpunktstillståndet först när körningen eller strömmen har slutförts.
Det här självhanteringsmönstret gör att din applikation bara behöver implementera de protokollslutpunkter och principer den behöver; det försöker inte implementera hela API-ytan för varje protokoll som stöds.
Nästa steg
Gå djupare: