Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Note
Protocolhelpers voor zelf-hosting voor .NET zijn binnenkort beschikbaar. Met het hostingmodel kan uw toepassing eigenaar zijn van de server-, status- en protocolintegraties.
Note
Protocolhelpers voor self-hosting zijn momenteel niet beschikbaar voor Go.
Met selfhosting kunt u een Agent Framework-agent of -werkstroom uitvoeren in uw eigen webtoepassing, container, service of runtime. Uw toepassing bepaalt routering, identiteit, autorisatie, aanvraagbeleid, opslag, implementatie en schalen. Voeg een of meer protocolintegraties toe aan die server op basis van de clients die u moet ondersteunen.
Gebruik deze optie wanneer u een agenteindpunt moet integreren met uw bestaande toepassingsinfrastructuur. Als u wilt dat Microsoft Foundry de agent voor u uitvoert, raadpleegt u Foundry Hosted Agents. Als u triggers voor Azure Functions of duurzame uitvoeringen nodig hebt, raadpleegt u Durable Extension.
Het ontwerp van deze pakketten is zodanig dat de ontwikkelaar maximale flexibiliteit biedt. Dit betekent dat als u een host wilt bouwen die een agent beschikbaar stelt met de Responses API, en de parameters voor andere doeleinden wilt misbruiken (d.w.z. temperature toewijzen aan top_p), u dat kunt doen. Als u geen sessies wilt opslaan, kunt u dat doen als u wilt toestaan dat de beller de volledige uitvoering van de agent beheert, kunt u dat ook doen. We komen niet in de weg, we bieden helpers voor de veelvoorkomende gevallen en maken u verantwoordelijk voor de rest, zodat u de exacte host kunt bouwen die u nodig hebt.
Important
agent-framework-hosting, , agent-framework-hosting-responsesagent-framework-hosting-telegram, , agent-framework-a2a, en agent-framework-hosting-a2azijn agent-framework-hosting-mcp voorlopige Python pakketten. Installeer voorlopige versies expliciet en bekijk releaseopmerkingen voordat u een productie-implementatie bijwerkt.
pip install --pre agent-framework-hosting
Wat de hosting-helpers bieden
Het algemene hostingpakket biedt een gedeelde uitvoeringsstatus voor een server die eigendom is van een toepassing:
-
AgentStatekoppelt een agentdoel aan eenSessionStoreen maakt sessies wanneer de toepassing een nieuwe sleutel selecteert. -
SessionStoreslaat sessies op, haalt en verwijdert deze op basis van een door de toepassing geselecteerde id. Het standaardarchief is proces-lokaal en heeft geen verwijderingsbeleid. -
WorkflowStatelost een werkstroomdoel op. Uw toepassing beheert de checkpointopslag en eventuele toewijzingen van een client-continuation-ID aan een checkpoint.
AgentState is geen server- of protocolregister. Uw toepassing selecteert een geautoriseerde sessiesleutel, lost het doel op en slaat de status na uitvoering op. Het kan dezelfde doel- en gedeelde toepassingsinfrastructuur gebruiken voor een of meer protocoleindpunten.
Sessieopslag aanpassen
SessionStore is een kleine asynchrone opslagklasse met get, seten delete methoden. De standaard implementatie houdt sessies in procesgeheugen. Leid hiervan een subklasse af en overschrijf die methoden om AgentSession-objecten op te slaan in Redis, een database, blobopslag of een andere opslag die eigendom is van de toepassing, en geef die instantie vervolgens door aan AgentState(session_store=...).
SessionStore en providers voor de gespreksgeschiedenis slaan afzonderlijke delen van een gesprek van een agent op. In een sessiearchief wordt één sessieobject per sessie-id opgeslagen, inclusief sessiemetagegevens en providerstatus. Een speciale HistoryProvider opslag slaat het gesprek afzonderlijk op, meestal als één record per bericht. Deze scheiding wordt aanbevolen voor duurzame hosts, omdat het toevoegen van afzonderlijke berichten over het algemeen efficiënter is dan het herschrijven van een groeiend sessieobject na elke beurt. Er wordt per agent een geschiedenisprovider gedefinieerd door de gewenste providerklasse voor geschiedenis door te geven aan de context_providers parameter.
Note
De standaardgeschiedenisprovider: is de uitzondering: InMemoryHistoryProvider het volledige gesprek wordt opgeslagen in AgentSession.state. Wanneer deze provider wordt gebruikt, SessionStore blijft het gesprek in het sessieobject behouden. Gebruik voor langere gesprekken of productieopslag een toegewezen geschiedenisprovider, zodat het sessiearchief zich kan concentreren op de lichtgewicht sessiestatus.
Gebruik uw eigen framework of clientbibliotheek
De hostingpakketten zijn niet gekoppeld aan een webframework of clientbibliotheek. De voorbeelden gebruiken FastAPI en aiogram omdat ze beknopte runnable voorbeelden bieden, niet omdat de helpers ze nodig hebben.
- Gebruik voor HTTP-eindpunten de routerings- en aanvraag-/antwoord-API's van uw toepassingsframework, zoals FastAPI, Starlette, Django, Flask, Azure Functions of een ander framework.
- Gebruik voor protocolclients zoals Telegram elke clientbibliotheek die een protocolupdate kan leveren en de bewerkingen kan uitvoeren die door de helper worden geproduceerd.
De toepassing selecteert het framework en de clientbibliotheek; De Agent Framework-pakketten converteren alleen protocolgegevens en beheren optionele uitvoeringsstatus. Ze registreren geen routes, verifiëren bellers, autoriseren toegang tot status, kiezen toegestane modelopties of bieden duurzame opslag.
Protocollen toevoegen aan uw server
Kies een of meer protocolintegraties:
| Protocol | Pakket en integratie |
|---|---|
| OpenAI-antwoorden | agent-framework-hosting-responses |
| Telegram | agent-framework-hosting-telegram |
| A2A |
agent-framework-a2a of agent-framework-hosting-a2a |
| MCP | agent-framework-hosting-mcp |
Op elke protocolpagina wordt de installatie beschreven. Ze zijn echter zodanig ontworpen dat u één host kunt bouwen met een of meer protocollen ingeschakeld en een aanroepbaar doel; een agent of een werkstroom. Omdat we u niet beperken tot één webframework, kunt u het gewenste framework kiezen en de host eenvoudig instellen met deze protocollen.
Vervolg van beveiligde sessie
Behandel elke door het protocol geleverde id als niet-vertrouwde invoer. Voordat u een id gebruikt om een sessie, controlepunt, taak of andere status te laden:
- Verifieer de identiteit van de beller.
- Autoriseren van de beller om toegang te krijgen tot de status waarnaar wordt verwezen.
- Partitioneer de persistente status op basis van de geauthenticeerde tenant, gebruiker of werkruimte.
- Sessie- en controlepuntstatus behouden pas nadat de uitvoering of stream is voltooid.
Met dit zelfhostingpatroon kan uw toepassing alleen de protocoleindpunten en -beleidsregels implementeren die nodig zijn; Er wordt niet geprobeerd het volledige API-oppervlak van elk ondersteund protocol te implementeren.
Volgende stappen
Ga dieper in: