agent_framework Pakket
Pakketten
| a2a | |
| ag_ui | |
| anthropic | |
| azure | |
| chatkit | |
| declarative | |
| devui | |
| lab | |
| mem0 | |
| microsoft | |
| ollama | |
| openai | |
| redis |
Modules
| exceptions | |
| observability |
Klassen
| AIFunction |
Een hulpprogramma waarmee een Python-functie wordt verpakt om deze aan te roepen door AI-modellen. Deze klasse verpakt een Python-functie om deze aan te roepen door AI-modellen met automatische parametervalidatie en het genereren van JSON-schema's. Initialiseer de AIFunction. |
| AgentExecutor |
ingebouwde uitvoerder waarmee een agent wordt verpakt voor het verwerken van berichten. AgentExecutor past het gedrag aan op basis van de uitvoeringsmodus van de werkstroom:
De uitvoerder detecteert automatisch de modus via WorkflowContext.is_streaming(). Initialiseer de uitvoerder met een unieke id. |
| AgentExecutorRequest |
Een aanvraag voor een agentexecutor. |
| AgentExecutorResponse |
Een reactie van een agentexecutor. |
| AgentInputRequest |
Vraag menselijke invoer aan voordat een agent wordt uitgevoerd in opbouwwerkstromen op hoog niveau. Verzonden via RequestInfoEvent wanneer een werkstroom wordt onderbroken voordat een agent wordt uitgevoerd. Het antwoord wordt in het gesprek geïnjecteerd als een gebruikersbericht om het gedrag van de agent te sturen. Dit is het standaardaanvraagtype dat wordt gebruikt door .with_request_info() op SequentialBuilder, ConcurrentBuilder, GroupChatBuilder en HandoffBuilder. |
| AgentMiddleware |
Abstracte basisklasse voor agent-middleware waarmee agentinvocations kunnen worden onderschept. Met agent-middleware kunt u agentaanroepen voor en na de uitvoering onderscheppen en wijzigen. U kunt berichten inspecteren, context wijzigen, resultaten overschrijven of de uitvoering vroegtijdig beëindigen. Opmerking AgentMiddleware is een abstracte basisklasse. U moet deze subklassen en implementeren de methode process() voor het maken van aangepaste agent-middleware. |
| AgentProtocol |
Een protocol voor een agent die kan worden aangeroepen. Dit protocol definieert de interface die alle agents moeten implementeren, inclusief eigenschappen voor identificatie en methoden voor uitvoering. Opmerking Protocollen maken gebruik van structurele subtyping (eenden typen). Klassen hebben niet nodig om expliciet over te nemen van dit protocol om als compatibel te worden beschouwd. Hierdoor kunt u volledig aangepaste agents maken zonder gebruik te maken alle basisklassen van Agent Framework. |
| AgentRunContext |
Contextobject voor agent-middleware-aanroepen. Deze context wordt doorgegeven via de middleware-pijplijn van de agent en bevat alle informatie over de aanroep van de agent. Initialiseer de AgentRunContext. |
| AgentRunEvent |
Gebeurtenis geactiveerd wanneer een agentuitvoering is voltooid. Initialiseer de uitvoeringsbeurtenis van de agent. |
| AgentRunResponse |
Vertegenwoordigt het antwoord op een agentuitvoeringsaanvraag. Bevat een of meer antwoordberichten en metagegevens over het antwoord. Een typisch antwoord bevat één bericht, maar kan meerdere berichten bevatten in scenario's met betrekking tot functieaanroepen, RAG-ophaalfuncties of complexe logica. Initialiseer een AgentRunResponse. |
| AgentRunResponseUpdate |
Vertegenwoordigt één streaming-antwoordsegment van een agent. Initialiseer een AgentRunResponseUpdate. |
| AgentRunUpdateEvent |
Gebeurtenis geactiveerd wanneer een agent streamingberichten heeft. Initialiseer de streaming-gebeurtenis van de agent. |
| AgentThread |
De agentthreadklasse, dit kan zowel een lokaal beheerde thread als een thread vertegenwoordigen die wordt beheerd door de service. Een Initialiseer een AgentThread, gebruik deze methode niet handmatig, altijd: Opmerking Service_thread_id of message_store kunnen worden ingesteld, maar niet beide. |
| AggregateContextProvider |
Een ContextProvider die meerdere contextproviders bevat. Het delegeert gebeurtenissen naar meerdere contextproviders en voegt antwoorden van deze gebeurtenissen samen voordat deze worden geretourneerd. Hierdoor kunt u meerdere contextproviders combineren tot één provider. Opmerking Er wordt automatisch een AggregateContextProvider gemaakt wanneer u één context doorgeeft provider of een reeks contextproviders voor de agentconstructor. Initialiseer de AggregateContextProvider met contextproviders. |
| BaseAgent |
Basisklasse voor alle Agent Framework-agents. Deze klasse biedt kernfunctionaliteit voor agent-implementaties, waaronder contextproviders, middleware-ondersteuning en threadbeheer. Opmerking BaseAgent kan niet rechtstreeks worden geïnstantieerd omdat het de run(), run_stream() en andere methoden die zijn vereist voor AgentProtocol. Gebruik een concrete implementatie zoals ChatAgent of maak een subklasse. Initialiseer een BaseAgent-exemplaar. |
| BaseAnnotation |
Basisklasse voor alle TYPEN AI-aantekeningen. Initialiseer BaseAnnotation. |
| BaseChatClient |
Basisklasse voor chatclients. Deze abstracte basisklasse biedt kernfunctionaliteit voor implementaties van chatclients, waaronder middleware-ondersteuning, berichtvoorbereiding en normalisatie van hulpprogramma's. Opmerking BaseChatClient kan niet rechtstreeks worden geïnstantieerd omdat het een abstracte basisklasse is. Subklassen moeten _inner_get_response() en _inner_get_streaming_response() implementeren. Initialiseer een BaseChatClient-exemplaar. |
| BaseContent |
Vertegenwoordigt inhoud die wordt gebruikt door AI-services. Initialiseer BaseContent. |
| Case |
Runtime-wrapper combineert een switch-casepredicaat met het doel. Elke case koppelt een booleaanse predicaat met de uitvoerder die het bericht moet verwerken wanneer het predicaat waar is. De runtime houdt deze lichtgewicht container gescheiden van de serialisable SwitchCaseEdgeGroupCase , zodat de uitvoering kan worden uitgevoerd met live aanroepbare bestanden zonder de permanente status te vervuilen. |
| ChatAgent |
Een chatclientagent. Dit is de primaire agent-implementatie die gebruikmaakt van een chatclient om te communiceren met taalmodellen. Het ondersteunt hulpprogramma's, contextproviders, middleware en zowel streaming- als niet-streaming-antwoorden. Initialiseer een ChatAgent-exemplaar. Opmerking De set parameters van frequency_penalty tot request_kwargs worden gebruikt om bel de chatclient. Ze kunnen ook worden doorgegeven aan beide uitvoeringsmethoden. Wanneer beide zijn ingesteld, hebben de methoden die worden doorgegeven aan de uitvoeringsmethoden voorrang. |
| ChatClientProtocol |
Een protocol voor een chatclient die antwoorden kan genereren. Dit protocol definieert de interface die alle chatclients moeten implementeren, inclusief methoden voor het genereren van zowel streaming- als niet-streaming-antwoorden. Opmerking Protocollen maken gebruik van structurele subtyping (eenden typen). Klassen hebben niet nodig om expliciet over te nemen van dit protocol om als compatibel te worden beschouwd. |
| ChatContext |
Contextobject voor chat-middleware-aanroepen. Deze context wordt doorgegeven via de pijplijn voor chat-middleware en bevat alle informatie over de chataanvraag. Initialiseer de ChatContext. |
| ChatMessage |
Vertegenwoordigt een chatbericht. Initialiseer ChatMessage. |
| ChatMessageStore |
Een in-memory implementatie van ChatMessageStoreProtocol waarin berichten in een lijst worden opgeslagen. Deze implementatie biedt een eenvoudige, lijstgebaseerde opslag voor chatberichten met ondersteuning voor serialisatie en deserialisatie. Hiermee worden alle vereiste methoden van het Het archief onderhoudt berichten in het geheugen en biedt methoden voor het serialiseren en deserialiseren van de status voor persistentiedoeleinden. Maak een ChatMessageStore voor gebruik in een thread. |
| ChatMessageStoreProtocol |
Definieert methoden voor het opslaan en ophalen van chatberichten die zijn gekoppeld aan een specifieke thread. Implementaties van dit protocol zijn verantwoordelijk voor het beheren van de opslag van chatberichten, waaronder het verwerken van grote hoeveelheden gegevens door berichten af te kapen of samen te vatten indien nodig. |
| ChatMiddleware |
Abstracte basisklasse voor chat-middleware die chatclientaanvragen kan onderscheppen. Met chat-middleware kunt u chatclientaanvragen voor en na uitvoering onderscheppen en wijzigen. U kunt berichten wijzigen, systeemprompts, logboekaanvragen toevoegen of chatantwoorden overschrijven. Opmerking ChatMiddleware is een abstracte basisklasse. U moet deze subklassen en implementeren de methode process() voor het maken van aangepaste chat-middleware. |
| ChatOptions |
Algemene aanvraaginstellingen voor AI-services. Initialiseer ChatOptions. |
| ChatResponse |
Vertegenwoordigt het antwoord op een chataanvraag. Initialiseert een ChatResponse met de opgegeven parameters. |
| ChatResponseUpdate |
Vertegenwoordigt één streaming-antwoordsegment van een ChatClient. Initialiseert een ChatResponseUpdate met de opgegeven parameters. |
| CheckpointStorage |
Protocol voor back-ends voor controlepuntopslag. |
| CitationAnnotation |
Vertegenwoordigt een aantekening van een bronvermelding. Initialiseer CitationAnnotation. |
| ConcurrentBuilder |
Opbouwfunctie op hoog niveau voor gelijktijdige agentwerkstromen.
Gebruik:
|
| Context |
Een klasse met context die moet worden geleverd aan het AI-model, zoals geleverd door een ContextProvider. Elke ContextProvider heeft de mogelijkheid om voor elke aanroep een eigen context te bieden. De contextklasse bevat de aanvullende context die wordt geleverd door de ContextProvider. Deze context wordt gecombineerd met context die door andere providers wordt geleverd voordat deze wordt doorgegeven aan het AI-model. Deze context wordt aanroepen en wordt niet opgeslagen als onderdeel van de chatgeschiedenis. Maak een nieuw contextobject. |
| ContextProvider |
Basisklasse voor alle contextproviders. Een contextprovider is een onderdeel dat kan worden gebruikt om het contextbeheer van ai te verbeteren. Het kan luisteren naar wijzigingen in het gesprek en extra context bieden aan het AI-model vlak voordat u het aanroept. Opmerking ContextProvider is een abstracte basisklasse. U moet deze subklassen en implementeren de methode aanroepen() om een aangepaste contextprovider te maken. In het ideale geval moet u implementeer ook de methoden invoked() en thread_created() om het gesprek bij te houden staat, maar deze zijn optioneel. |
| DataContent |
Vertegenwoordigt binaire gegevensinhoud met een gekoppeld mediatype (ook wel een MIME-type genoemd). Belangrijk Dit is voor binaire gegevens die worden weergegeven als een gegevens-URI, niet voor onlinebronnen. Gebruik UriContent voor onlinebronnen. Initialiseert een DataContent-exemplaar. Belangrijk Dit is voor binaire gegevens die worden weergegeven als een gegevens-URI, niet voor onlinebronnen. Gebruik UriContent voor onlinebronnen. |
| Default |
Runtimeweergave van de standaardvertakking in een switch-casegroep. De standaardvertakking wordt alleen aangeroepen wanneer er geen andere casepredicaten overeenkomen. In de praktijk bestaat het gegarandeerd, zodat routering nooit een leeg doel produceert. |
| Edge |
Modelleer een gerichte, optioneel voorwaardelijke hand-off tussen twee uitvoerders. Elke Edge legt de minimale metagegevens vast die nodig zijn om een bericht van de ene uitvoerder naar de andere te verplaatsen in de werkstroomgrafiek. Optioneel wordt een booleaanse predicaat ingesloten waarmee wordt bepaald of de rand tijdens runtime moet worden genomen. Door de rand omlaag te serialiseren naar primitieven, kunnen we de topologie van een werkstroom reconstrueren, ongeacht het oorspronkelijke Python-proces. Initialiseer een volledig opgegeven rand tussen twee werkstroomexecutors. |
| EdgeDuplicationError |
Er is een uitzondering opgetreden wanneer dubbele randen worden gedetecteerd in de werkstroom. |
| ErrorContent |
Vertegenwoordigt een fout. Opmerkingen: Meestal gebruikt voor niet-fatale fouten, waarbij er iets misging als onderdeel van de bewerking, maar de bewerking kon nog steeds worden voortgezet. Initialiseert een ErrorContent-exemplaar. |
| Executor |
Basisklasse voor alle werkstroomexecutors die berichten verwerken en berekeningen uitvoeren. OverzichtUitvoerders zijn de fundamentele bouwstenen van werkstromen, die afzonderlijke verwerkingseenheden vertegenwoordigen die berichten ontvangen, bewerkingen uitvoeren en uitvoer produceren. Elke uitvoerder wordt uniek geïdentificeerd en kan specifieke berichttypen verwerken via versierde handlermethoden. Type systeemUitvoerders hebben een uitgebreid typesysteem waarmee hun mogelijkheden worden gedefinieerd: InvoertypenDe typen berichten die een executor kan verwerken, gedetecteerd op basis van handlermethodehandtekeningen:
Toegang via de eigenschap input_types . UitvoertypenDe typen berichten die een uitvoerder naar andere uitvoerders kan verzenden via ctx.send_message():
Toegang via de eigenschap output_types . Typen werkstroomuitvoerDe typen gegevens die een uitvoerder kan verzenden als uitvoer op werkstroomniveau via ctx.yield_output():
Toegang via de eigenschap workflow_output_types . HandlerDetectieUitvoerders ontdekken hun mogelijkheden via versierde methoden: @handler DecorateurHiermee markeert u methoden waarmee binnenkomende berichten worden verwerkt:
Onderschepping van subwerkstroomaanvragenMethoden gebruiken @handler om subwerkstroomaanvragen te onderscheppen:
ContexttypenHandlermethoden ontvangen verschillende WorkflowContext-varianten op basis van hun typeaantekeningen: WorkflowContext (geen typeparameters)Voor handlers die alleen bijwerkingen uitvoeren zonder berichten te verzenden of uitvoer te genereren:
WorkflowContext[T_Out]Hiermee kunt u berichten van het type T_Out verzenden via ctx.send_message():
WorkflowContext[T_Out, T_W_Out]Hiermee kunt u zowel het verzenden van berichten (T_Out) als het opleveren van werkstroomuitvoer (T_W_Out):
Functie-uitvoerdersEenvoudige functies kunnen worden geconverteerd naar uitvoerders met behulp van de @executor decorator:
Samenstelling van subwerkstroomUitvoerders kunnen subwerkstromen bevatten met behulp van WorkflowExecutor. Subwerkstromen kunnen aanvragen indienen die bovenliggende werkstromen kunnen onderscheppen. Zie de documentatie van WorkflowExecutor voor meer informatie over werkstroomsamenstellingspatronen en de verwerking van aanvragen/antwoorden. ToestandsbeheerUitvoerders kunnen statussen bevatten die behouden blijven voor werkstroomuitvoeringen en controlepunten. Overschrijf de on_checkpoint_save - en on_checkpoint_restore methoden voor het implementeren van aangepaste statusserialisatie- en herstellogica. Opmerkingen bij de implementatie
Initialiseer de uitvoerder met een unieke id. |
| ExecutorCompletedEvent |
Gebeurtenis geactiveerd wanneer een uitvoerdershandler is voltooid. Initialiseer de executor-gebeurtenis met een uitvoerders-id en optionele gegevens. |
| ExecutorEvent |
Basisklasse voor uitvoerdersgebeurtenissen. Initialiseer de executor-gebeurtenis met een uitvoerders-id en optionele gegevens. |
| ExecutorFailedEvent |
Gebeurtenis geactiveerd wanneer een uitvoerdershandler een fout genereert. |
| ExecutorInvokedEvent |
Gebeurtenis geactiveerd wanneer een uitvoerdershandler wordt aangeroepen. Initialiseer de executor-gebeurtenis met een uitvoerders-id en optionele gegevens. |
| FanInEdgeGroup |
Vertegenwoordig een samenvoegingsset randen die één downstream-uitvoerprogramma voeren. Ventilatorgroepen worden meestal gebruikt wanneer meerdere upstreamfasen onafhankelijk berichten produceren die allemaal bij dezelfde downstreamprocessor moeten aankomen. Bouw een fan-in-toewijzing die meerdere bronnen samenvoegt in één doel. |
| FanOutEdgeGroup |
Vertegenwoordig een edge-groep in broadcaststijl met optionele selectielogica. Een fan-out stuurt een bericht dat door één bronexecutor wordt geproduceerd door naar een of meer downstreamexecutors. Tijdens runtime kunnen we de doelen verder beperken door een selection_func uit te voeren die de nettolading inspecteert en de subset van id's retourneert die het bericht moeten ontvangen. Maak een uitwaaiertoewijzing van één bron naar veel doelen. |
| FileCheckpointStorage |
Op bestanden gebaseerde controlepuntopslag voor persistentie. Initialiseer de bestandsopslag. |
| FinishReason |
Vertegenwoordigt de reden waarom een chatantwoord is voltooid. Initialiseer FinishReason met een waarde. |
| FunctionApprovalRequestContent |
Vertegenwoordigt een aanvraag voor gebruikersgoedkeuring van een functieaanroep. Initialiseert een FunctionApprovalRequestContent-exemplaar. |
| FunctionApprovalResponseContent |
Vertegenwoordigt een antwoord voor gebruikersgoedkeuring van een functieaanroep. Initialiseert een FunctionApprovalResponseContent-exemplaar. |
| FunctionCallContent |
Vertegenwoordigt een aanvraag voor een functieoproep. Initialiseert een FunctionCallContent-exemplaar. |
| FunctionExecutor |
Executor die een door de gebruiker gedefinieerde functie verpakt. Met deze uitvoerder kunnen gebruikers eenvoudige functies definiëren (zowel synchroniseren als asynchroon) en ze gebruiken als werkstroomexecutors zonder dat ze volledige uitvoeringsklassen hoeven te maken. Synchrone functies worden uitgevoerd in een threadpool met behulp van asyncio.to_thread() om te voorkomen dat de gebeurtenislus wordt geblokkeerd. Initialiseer de FunctionExecutor met een door de gebruiker gedefinieerde functie. |
| FunctionInvocationConfiguration |
Configuratie voor functie-aanroep in chatclients. Deze klasse wordt automatisch gemaakt op elke chatclient die functie-aanroep ondersteunt. Dit betekent dat u in de meeste gevallen alleen de kenmerken van het exemplaar kunt wijzigen, in plaats van een nieuwe te maken. Initialiseer FunctionInvocationConfiguration. |
| FunctionInvocationContext |
Contextobject voor functie-middleware-aanroepen. Deze context wordt doorgegeven via de pijplijn van de functie-middleware en bevat alle informatie over de aanroep van de functie. Initialiseer de FunctionInvocationContext. |
| FunctionMiddleware |
Abstracte basisklasse voor functie-middleware waarmee functie-aanroepen kunnen worden onderschept. Met functie-middleware kunt u functie-/hulpprogrammaaanroepen voor en na de uitvoering onderscheppen en wijzigen. U kunt argumenten valideren, resultaten in de cache opslaan, aanroepen van logboeken of de uitvoering van de functie overschrijven. Opmerking FunctionMiddleware is een abstracte basisklasse. U moet deze subklassen en implementeren de methode process() voor het maken van aangepaste functie-middleware. |
| FunctionResultContent |
Vertegenwoordigt het resultaat van een functie-aanroep. Initialiseert een FunctionResultContent-exemplaar. |
| GraphConnectivityError |
Er is een uitzondering opgetreden wanneer er verbindingsproblemen met grafieken worden gedetecteerd. |
| GroupChatBuilder |
Opbouwfunctie op hoog niveau voor door manager gerichte groepschatwerkstromen met dynamische indeling. GroupChat coördineert gesprekken met meerdere agents met behulp van een manager die selecteert welke deelnemer hierna spreekt. De manager kan een eenvoudige Python-functie (set_select_speakers_func) of een op agents gebaseerde selector zijn via set_manager. Deze twee benaderingen sluiten elkaar wederzijds uit. Kernwerkstroom:
Patronen voor sprekerselectie: Patroon 1: Eenvoudige selectie op basis van functies (aanbevolen)
Patroon 2: selectie op basis van LLM
Patroon 3: Informatie aanvragen voor feedback tijdens gesprekken
Specificatie van deelnemers: Twee manieren om deelnemers op te geven:
Statusmomentopnamestructuur: De GroupChatStateSnapshot die is doorgegeven aan set_select_speakers_func bevat:
Belangrijke beperkingen:
Initialiseer de GroupChatBuilder. |
| GroupChatDirective |
Instructies die worden verzonden door een implementatie van een groepschatmanager. |
| HandoffBuilder |
Fluent Builder voor conversationele handoff-werkstromen met coördinator- en gespecialiseerde agenten. Met het handoff-patroon kan een coördinatoragent aanvragen doorsturen naar gespecialiseerde agenten. De interactiemodus bepaalt of de werkstroom gebruikersinvoer aanvraagt nadat elke agentreactie is voltooid of autonoom wordt voltooid zodra agents klaar zijn met reageren. Een beëindigingsvoorwaarde bepaalt wanneer de werkstroom moet stoppen met het aanvragen van invoer en het voltooien. Routeringspatronen: Single-Tier (standaard): Alleen de coördinator kan aan specialisten afleveren. Nadat een specialist reageert, keert het besturingselement standaard terug naar de gebruiker voor meer invoer. Hiermee wordt een cyclische stroom gemaakt: gebruiker - coördinator -> [optionele specialist] -> gebruiker -> coördinator -> ...> Gebruik with_interaction_mode("autonome") om het aanvragen van extra gebruikersinvoer over te slaan en het uiteindelijke gesprek te genereren wanneer een agent reageert zonder delegeren. Meerdere lagen (geavanceerd): Specialisten kunnen met behulp van .add_handoff()aan andere specialisten afleveren. Dit biedt meer flexibiliteit voor complexe werkstromen, maar is minder beheerbaar dan het patroon met één laag. Gebruikers verliezen realtime inzicht in tussenliggende stappen tijdens gespecialiseerde tot gespecialiseerde handoffs (hoewel de volledige gespreksgeschiedenis inclusief alle handoffs behouden blijft en achteraf kan worden geïnspecteerd). Belangrijke functies:
Gebruik (Single-Tier):
Routering met meerdere lagen met .add_handoff():
Deelnemersfabrieken gebruiken voor statusisolatie: Aangepaste beëindigingsvoorwaarde:
Controlepunten:
Initialiseer een HandoffBuilder voor het maken van conversationele handoff-werkstromen. De opbouwfunctie begint in een niet-geconfigureerde status en vereist dat u het volgende aanroept:
Met optionele configuratiemethoden kunt u contextbeheer, beëindigingslogica en persistentie aanpassen. Opmerking Deelnemers moeten stabiele namen/id's hebben omdat de werkstroom de handoff tool argumenten voor deze id's. Namen van agents moeten overeenkomen de tekenreeksen die door het handoff-hulpprogramma van de coördinator worden verzonden (bijvoorbeeld een hulpmiddel dat outputs {"handoff_to": "billing"} vereist een agent met de naam facturering). |
| HandoffUserInputRequest |
Bericht aanvragen dat wordt verzonden wanneer de werkstroom nieuwe gebruikersinvoer nodig heeft. Opmerking: Het gespreksveld wordt opzettelijk uitgesloten van controlepuntserialisatie om duplicatie te voorkomen. Het gesprek blijft behouden in de status van de coördinator en wordt gereconstrueerd bij herstel. Zie probleem 2667. |
| HostedCodeInterpreterTool |
Vertegenwoordigt een gehost hulpprogramma dat kan worden opgegeven aan een AI-service om deze in staat te stellen gegenereerde code uit te voeren. Met dit hulpprogramma wordt geen code-interpretatie zelf geïmplementeerd. Het fungeert als een markering om een service te informeren dat het is toegestaan gegenereerde code uit te voeren als de service dit kan doen. Initialiseer de HostedCodeInterpreterTool. |
| HostedFileContent |
Vertegenwoordigt een gehoste bestandsinhoud. Initialiseert een HostedFileContent-exemplaar. |
| HostedFileSearchTool |
Vertegenwoordigt een hulpprogramma voor het zoeken van bestanden dat kan worden opgegeven aan een AI-service om het mogelijk te maken bestandszoekopdrachten uit te voeren. Initialiseer een FileSearchTool. |
| HostedMCPSpecificApproval |
Vertegenwoordigt de specifieke modus voor een gehost hulpprogramma. Wanneer deze modus wordt gebruikt, moet de gebruiker opgeven welke hulpprogramma's altijd of nooit goedkeuring vereisen. Dit wordt weergegeven als een woordenlijst met twee optionele sleutels: |
| HostedMCPTool |
Vertegenwoordigt een MCP-hulpprogramma dat wordt beheerd en uitgevoerd door de service. Maak een gehost MCP-hulpprogramma. |
| HostedVectorStoreContent |
Vertegenwoordigt een gehoste vectoropslaginhoud. Initialiseert een HostedVectorStoreContent-exemplaar. |
| HostedWebSearchTool |
Vertegenwoordigt een hulpprogramma voor webzoekopdrachten dat kan worden opgegeven aan een AI-service om webzoekopdrachten uit te voeren. Initialiseer een HostedWebSearchTool. |
| InMemoryCheckpointStorage |
In-memory controlepuntopslag voor testen en ontwikkelen. Initialiseer de geheugenopslag. |
| InProcRunnerContext |
In-process uitvoeringscontext voor lokale uitvoering en optionele controlepunten. Initialiseer de uitvoeringscontext in het proces. |
| MCPStdioTool |
MCP-hulpprogramma voor het maken van verbinding met op stdio gebaseerde MCP-servers. Deze klasse maakt verbinding met MCP-servers die communiceren via standaardinvoer/uitvoer, die doorgaans worden gebruikt voor lokale processen. Initialiseer het hulpprogramma MCP stdio. Opmerking De argumenten worden gebruikt om een StdioServerParameters-object te maken, die vervolgens wordt gebruikt om een stdio-client te maken. Zie mcp.client.stdio.stdio_client en mcp.client.stdio.stdio_server_parameters voor meer informatie. |
| MCPStreamableHTTPTool |
MCP-hulpprogramma voor het maken van verbinding met OP HTTP gebaseerde MCP-servers. Deze klasse maakt verbinding met MCP-servers die communiceren via streambare HTTP/SSE. Initialiseer het HTTP-hulpprogramma dat kan worden gestreamd met MCP. Opmerking De argumenten worden gebruikt om een streambare HTTP-client te maken. Zie mcp.client.streamable_http.streamablehttp_client voor meer informatie. Eventuele extra argumenten die aan de constructor worden doorgegeven, worden doorgegeven aan de streamable HTTP-clientconstructor. |
| MCPWebsocketTool |
MCP-hulpprogramma voor het maken van verbinding met op WebSocket gebaseerde MCP-servers. Deze klasse maakt verbinding met MCP-servers die communiceren via WebSocket. Initialiseer het HULPPROGRAMMA MCP WebSocket. Opmerking De argumenten worden gebruikt om een WebSocket-client te maken. Zie mcp.client.websocket.websocket_client voor meer informatie. Eventuele extra argumenten die aan de constructor worden doorgegeven, worden doorgegeven aan de WebSocket-clientconstructor. |
| MagenticBuilder |
Fluent Builder voor het maken van Magentic One-indelingswerkstromen met meerdere agents. Magentic One-werkstromen maken gebruik van een DOOR LLM aangedreven manager om meerdere agents te coördineren via dynamische taakplanning, voortgangstracking en adaptieve herplanning. De manager maakt plannen, selecteert agents, bewaakt de voortgang en bepaalt wanneer het opnieuw moet worden gepland of voltooid. De opbouwfunctie biedt een fluent API voor het configureren van deelnemers, de manager, optionele beoordeling van plannen, controlepunten en callbacks voor gebeurtenissen. Human-in-the-loop Ondersteuning: Magentic biedt gespecialiseerde HITL-mechanismen via:
Deze verzenden Magentic HumanInterventionRequest-gebeurtenissen die gestructureerde beslissingsopties bieden (GOEDKEUREN, HERZIEN, DOORGAAN, REPLAN, RICHTLIJNEN) die geschikt zijn voor de planningsindeling van Magentic. Gebruik:
Met aangepaste manager:
|
| MagenticContext |
Context voor de Magentic Manager. |
| MagenticManagerBase |
Basisklasse voor de Magentic One-manager. |
| ManagerDirectiveModel |
Pydantic-model voor uitvoer van structured manager-instructie. Maak een nieuw model door invoergegevens van trefwoordargumenten te parseren en valideren. Genereert [ValidationError][pydantic_core. ValidationError] als de invoergegevens niet kunnen worden gevalideerd om een geldig model te vormen. zelf is expliciet positioneel om zichzelf als veldnaam toe te staan. |
| ManagerSelectionRequest |
Aanvraag verzonden naar manageragent voor volgende sprekerselectie. Deze dataclass verpakt de volledige gespreksstatus en taakcontext voor de manageragent om een beslissing te nemen en een sprekerselectie te nemen. |
| ManagerSelectionResponse |
Antwoord van manageragent met beslissing over sprekerselectie. De manageragent moet deze structuur (of compatibele dict/JSON) produceren om de beslissing terug te geven aan de orchestrator. Maak een nieuw model door invoergegevens van trefwoordargumenten te parseren en valideren. Genereert [ValidationError][pydantic_core. ValidationError] als de invoergegevens niet kunnen worden gevalideerd om een geldig model te vormen. zelf is expliciet positioneel om zichzelf als veldnaam toe te staan. |
| Message |
Een klasse die een bericht in de werkstroom vertegenwoordigt. |
| OrchestrationState |
Geïntegreerde statuscontainer voor orchestrator-controlepunten. Deze gegevensklasse standaardiseert controlepuntserialisatie in alle drie de groepschatpatronen, terwijl patroonspecifieke extensies via metagegevens worden toegestaan. Algemene kenmerken hebben betrekking op gedeelde indelingsproblemen (taken, gesprekken, round tracking). Patroonspecifieke status wordt gebruikt in de metagegevensdict. |
| RequestInfoEvent |
Gebeurtenis geactiveerd wanneer een werkstroomexecutor externe gegevens aanvraagt. Initialiseer de gebeurtenis aanvraaggegevens. |
| RequestInfoInterceptor |
Interne uitvoerfunctie die de werkstroom voor menselijke invoer onderbreekt voordat de agent wordt uitgevoerd. Deze uitvoerder wordt door opbouwfuncties ingevoegd in de werkstroomgrafiek wanneer .with_request_info() wordt aangeroepen. AgentExecutorRequest-berichten worden onderschept voordat de agent wordt uitgevoerd en onderbreekt de werkstroom via ctx.request_info() met een AgentInputRequest. Wanneer een antwoord wordt ontvangen, injecteert de antwoordhandler de invoer als een gebruikersbericht in het gesprek en stuurt de aanvraag door naar de agent. Met de optionele agent_filter parameter kunt u beperken welke agents de onderbreking activeren. Als de id van de doelagent zich niet in de filterset bevindt, wordt de aanvraag doorgestuurd zonder te onderbreken. Initialiseer de onderscheppingsexecutor voor aanvraaggegevens. |
| Role |
Beschrijft het beoogde doel van een bericht binnen een chatinteractie. Eigenschappen: SYSTEEM: De rol waarmee het gedrag van het AI-systeem wordt geïnstrueerd of ingesteld. GEBRUIKER: De rol die gebruikersinvoer biedt voor chatinteracties. ASSISTENT: De rol die antwoorden biedt op door het systeem geïnstrueerde, door de gebruiker gevraagd invoer. TOOL: De rol die aanvullende informatie en verwijzingen levert als reactie op aanvragen voor het gebruik van hulpprogramma's. Initialiseer de rol met een waarde. |
| Runner |
Een klasse voor het uitvoeren van een werkstroom in Pregel-supersteps. Initialiseer de runner met randen, gedeelde status en context. |
| RunnerContext |
Protocol voor de uitvoeringscontext die door de runner wordt gebruikt. Eén context die ondersteuning biedt voor berichten, gebeurtenissen en optionele controlepunten. Als controlepuntopslag niet is geconfigureerd, kunnen controlepuntmethoden worden geactiveerd. |
| SequentialBuilder |
Opbouwfunctie op hoog niveau voor sequentiële agent-/uitvoerwerkstromen met gedeelde context.
Gebruik:
|
| SharedState |
Een klasse voor het beheren van de gedeelde status in een werkstroom. SharedState biedt thread-veilige toegang tot werkstroomstatusgegevens die tijdens de uitvoering van de werkstroom moeten worden gedeeld tussen uitvoerders. Gereserveerde sleutels: de volgende sleutels zijn gereserveerd voor intern frameworkgebruik en mogen niet worden gewijzigd door gebruikerscode:
Waarschuwing Gebruik geen sleutels die beginnen met onderstrepingsteken (_), omdat ze mogelijk zijn gereserveerd voor interne frameworkbewerkingen. Initialiseer de gedeelde status. |
| SingleEdgeGroup |
Gemakswikkelaar voor een eenzame rand, waardoor de groeps-API uniform blijft. Maak een een-op-een-edge-groep tussen twee uitvoerders. |
| StandardMagenticManager |
Standard Magentic Manager die echte LLM-oproepen uitvoert via een ChatAgent. De manager bouwt prompts die de oorspronkelijke Magentic One-indeling spiegelen:
Initialiseer de Standard Magentic Manager. |
| SubWorkflowRequestMessage |
Bericht dat vanuit een subwerkstroom naar een uitvoerder in de bovenliggende werkstroom wordt verzonden om informatie aan te vragen. Dit bericht verpakt een RequestInfoEvent die wordt verzonden door de uitvoerder in de subwerkstroom. |
| SubWorkflowResponseMessage |
Bericht dat is verzonden van een bovenliggende werkstroom naar een subwerkstroom via WorkflowExecutor om gevraagde informatie te verstrekken. Dit bericht verpakt de antwoordgegevens samen met de oorspronkelijke RequestInfoEvent die is verzonden door de uitvoerfunctie van de subwerkstroom. |
| SuperStepCompletedEvent |
Gebeurtenis geactiveerd wanneer een superstep eindigt. Initialiseer de superstep-gebeurtenis. |
| SuperStepStartedEvent |
Gebeurtenis geactiveerd wanneer een superstep wordt gestart. Initialiseer de superstep-gebeurtenis. |
| SwitchCaseEdgeGroup |
Fan-out variant die een traditionele switch/case controlestroom nabootst. In elk geval wordt de nettolading van het bericht gecontroleerd en wordt bepaald of het bericht moet worden verwerkt. Precies één geval of de standaardvertakking retourneert een doel tijdens runtime, waarbij semantiek voor één verzending behouden blijft. Configureer een switch-/caserouteringsstructuur voor één bronexecutor. |
| SwitchCaseEdgeGroupCase |
Persistente beschrijving van één voorwaardelijke vertakking in een switch-case. In tegenstelling tot het runtime-caseobject slaat deze serialisable variant alleen de doel-id en een beschrijvende naam voor het predicaat op. Wanneer de onderliggende aanroepbare functie niet beschikbaar is tijdens de deserialisatie, vervangen we een tijdelijke aanduiding voor een proxy die luid mislukt, zodat de ontbrekende afhankelijkheid onmiddellijk zichtbaar is. Noteer de routeringsmetagegevens voor een voorwaardelijke casebranch. |
| SwitchCaseEdgeGroupDefault |
Persistente descriptor voor de terugvalvertakking van een switch-casegroep. De standaardvertakking is gegarandeerd aanwezig en wordt aangeroepen wanneer elk ander predicaat niet overeenkomt met de nettolading. Wijs de standaardbranch naar de opgegeven uitvoerders-id. |
| TextContent |
Vertegenwoordigt tekstinhoud in een chat. Initialiseert een TextContent-exemplaar. |
| TextReasoningContent |
Vertegenwoordigt tekstredeneringsinhoud in een chat. Opmerkingen: Deze klasse en TextContent zijn oppervlakkig vergelijkbaar, maar uniek. Initialiseert een TextReasoningContent-exemplaar. |
| TextSpanRegion |
Vertegenwoordigt een gebied met tekst dat is geannoteerd. Initialiseer TextSpanRegion. |
| ToolMode |
Definieert of en hoe hulpprogramma's worden gebruikt in een chataanvraag. Initialiseer ToolMode. |
| ToolProtocol |
Vertegenwoordigt een algemeen hulpprogramma. Dit protocol definieert de interface die alle hulpprogramma's moeten implementeren om compatibel te zijn met het agentframework. Het wordt geïmplementeerd door verschillende hulpprogrammaklassen, zoals HostedMCPTool, HostedWebSearchTool en AIFunction's. Een AIFunction wordt meestal gemaakt door de ai_function decorator. Omdat elke connector verschillende hulpprogramma's moet parseren, kunnen gebruikers een dict doorgeven om een servicespecifiek hulpprogramma op te geven wanneer er geen abstractie beschikbaar is. |
| TypeCompatibilityError |
Er is een uitzondering opgetreden bij het detecteren van incompatibiliteit tussen verbonden uitvoerders. |
| UriContent |
Vertegenwoordigt een URI-inhoud. Belangrijk Dit wordt gebruikt voor inhoud die wordt geïdentificeerd door een URI, zoals een afbeelding of een bestand. Voor (binaire) gegevens-URI's gebruikt u In plaats daarvan DataContent. Initialiseert een UriContent-exemplaar. Opmerkingen: Dit wordt gebruikt voor inhoud die wordt geïdentificeerd door een URI, zoals een afbeelding of een bestand. Voor (binaire) gegevens-URI's gebruikt u In plaats daarvan DataContent . |
| UsageContent |
Vertegenwoordigt gebruiksgegevens die zijn gekoppeld aan een chataanvraag en -antwoord. Initialiseert een UsageContent-exemplaar. |
| UsageDetails |
Biedt gebruiksgegevens over een aanvraag/antwoord. Initialiseert het UsageDetails-exemplaar. |
| Workflow |
Een engine voor uitvoering op basis van grafieken waarmee verbonden uitvoerders worden ingedeeld. OverzichtEen werkstroom voert een gerichte grafiek uit van uitvoerders die zijn verbonden via edge-groepen met behulp van een Pregel-achtig model, uitgevoerd in supersteps totdat de grafiek inactief wordt. Werkstromen worden gemaakt met behulp van de klasse WorkflowBuilder. Instantieer deze klasse niet rechtstreeks. UitvoeringsmodelUitvoerders worden uitgevoerd in gesynchroniseerde supersteps waarbij elke uitvoerder:
Berichten tussen uitvoerders worden aan het einde van elke superstap bezorgd en zijn niet zichtbaar in de gebeurtenisstroom. Alleen gebeurtenissen op werkstroomniveau (uitvoer, aangepaste gebeurtenissen) en statusgebeurtenissen zijn zichtbaar voor bellers. Invoer-/uitvoertypenWerkstroomtypen worden tijdens runtime gedetecteerd door het volgende te controleren:
UitvoeringsmethodenDe werkstroom biedt twee primaire uitvoerings-API's, die elk meerdere scenario's ondersteunen:
Beide methoden ondersteunen:
ToestandsbeheerWerkstroomexemplaren bevatten statussen en statussen blijven behouden voor aanroepen die moeten worden uitgevoerd en run_stream. Als u meerdere onafhankelijke uitvoeringen wilt uitvoeren, maakt u afzonderlijke werkstroomexemplaren via WorkflowBuilder. Aanvragen voor externe invoerUitvoerders binnen een werkstroom kunnen externe invoer aanvragen met behulp van ctx.request_info():
Controlepunten makenControlepunten kunnen tijdens de build of runtime worden geconfigureerd: Build-time (via WorkflowBuilder): workflow = WorkflowBuilder().with_checkpointing(storage).build() Runtime (via run/run_stream parameters): result = await workflow.run(message, checkpoint_storage=runtime_storage) Wanneer deze optie is ingeschakeld, worden controlepunten gemaakt aan het einde van elke superstep, waarbij het volgende wordt vastgelegd:
CompositieWerkstromen kunnen worden genest met behulp van WorkflowExecutor, waarmee een onderliggende werkstroom wordt verpakt als een uitvoerder. De invoer-/uitvoertypen van de geneste werkstroom worden onderdeel van de typen workflowExecutor. Wanneer de workflowexecutor wordt aangeroepen, wordt de geneste werkstroom uitgevoerd om de uitvoer te voltooien en te verwerkt. Initialiseer de werkstroom met een lijst met randen. |
| WorkflowAgent |
Een agentsubklasse die een werkstroom verpakt en beschikbaar maakt als agent. Initialiseer de WorkflowAgent. |
| WorkflowBuilder |
Een opbouwfunctieklasse voor het maken van werkstromen. Deze klasse biedt een fluent API voor het definiëren van werkstroomgrafieken door uitvoerders te verbinden met randen en uitvoeringsparameters te configureren. Aanroep build om een onveranderbaar Workflow exemplaar te maken. Initialiseer de WorkflowBuilder met een lege lijst met randen en geen startexecutor. |
| WorkflowCheckpoint |
Vertegenwoordigt een volledig controlepunt van de werkstroomstatus. Controlepunten leggen de volledige uitvoeringsstatus van een werkstroom vast op een specifiek punt, waardoor werkstromen kunnen worden onderbroken en hervat. Opmerking De shared_state dict kan gereserveerde sleutels bevatten die worden beheerd door het framework. Zie de sharedState-klassedocumentatie voor meer informatie over gereserveerde sleutels. |
| WorkflowCheckpointSummary |
Leesbare samenvatting van een controlepunt voor een werkstroom. |
| WorkflowContext |
Uitvoeringscontext waarmee uitvoerders kunnen communiceren met werkstromen en andere uitvoerders. OverzichtWorkflowContext biedt een gecontroleerde interface voor uitvoerders om berichten te verzenden, uitvoer te leveren, de status te beheren en te communiceren met het bredere werkstroomecosysteem. Het dwingt typeveiligheid af via algemene parameters en voorkomt directe toegang tot interne runtime-onderdelen. TypeparametersDe context wordt geparameteriseerd om typeveiligheid af te dwingen voor verschillende bewerkingen: WorkflowContext (geen parameters)Voor uitvoerders die alleen bijwerkingen uitvoeren zonder berichten te verzenden of uitvoer te genereren:
WorkflowContext[T_Out]Hiermee kunt u berichten van het type T_Out verzenden naar andere uitvoerders:
WorkflowContext[T_Out, T_W_Out]Hiermee kunt u zowel het verzenden van berichten (T_Out) als het opleveren van werkstroomuitvoer (T_W_Out):
SamenvoegtypenEr kunnen meerdere typen worden opgegeven met behulp van samenvoegings notatie:
Initialiseer de uitvoerderscontext met de opgegeven werkstroomcontext. |
| WorkflowErrorDetails |
Gestructureerde foutinformatie om weer te geven in fout gebeurtenissen/resultaten. |
| WorkflowEvent |
Basisklasse voor werkstroomgebeurtenissen. Initialiseer de werkstroom gebeurtenis met optionele gegevens. |
| WorkflowExecutor |
Een uitvoerder die een werkstroom verpakt om hiërarchische werkstroomsamenstelling mogelijk te maken. OverzichtWorkflowExecutor zorgt ervoor dat een werkstroom zich gedraagt als één uitvoerder binnen een bovenliggende werkstroom, waardoor geneste werkstroomarchitecturen mogelijk zijn. Het verwerkt de volledige levenscyclus van de uitvoering van subwerkstromen, waaronder gebeurtenisverwerking, doorsturen van uitvoer en coördinatie van aanvragen/antwoorden tussen bovenliggende en onderliggende werkstromen. UitvoeringsmodelWanneer deze wordt aangeroepen, workflowexecutor:
GebeurtenisstroomverwerkingWorkflowExecutor verwerkt gebeurtenissen nadat de subwerkstroom is voltooid: Doorsturen van uitvoerAlle uitvoer van de subwerkstroom wordt automatisch doorgestuurd naar het bovenliggende item: Wanneer allow_direct_output onwaar is (standaard):
Wanneer allow_direct_output waar is:Coördinatie van aanvragen/antwoordenWanneer subwerkstromen externe informatie nodig hebben:
ToestandsbeheerWorkflowExecutor onderhoudt de uitvoeringsstatus in aanvraag-/antwoordcycli:
Type systeemintegratieWorkflowExecutor neemt de typehandtekening over van de verpakte werkstroom: InvoertypenKomt overeen met de invoertypen voor het begin van de werkstroom:
UitvoertypenCombineert uitvoer van subwerkstromen met aanvraagcoördinatietypen:
FoutafhandelingWorkflowExecutor geeft subwerkstroomfouten door:
Ondersteuning voor gelijktijdige uitvoeringWorkflowExecutor biedt volledige ondersteuning voor meerdere gelijktijdige uitvoeringen van subwerkstromen: Per-Execution statusisolatieElke aanroep van een subwerkstroom maakt een geïsoleerde ExecutionContext:
Coördinatie van aanvragen/antwoordenAntwoorden worden correct doorgestuurd naar de oorspronkelijke uitvoering:
Geheugenbeheer
Belangrijke overwegingenGedeelde werkstroomexemplaren: alle gelijktijdige uitvoeringen gebruiken hetzelfde onderliggende werkstroomexemplaren. Zorg ervoor dat de verpakte werkstroom en de uitvoerders staatloos zijn voor een juiste isolatie.
Integratie met bovenliggende werkstromenBovenliggende werkstromen kunnen subwerkstroomaanvragen onderscheppen: Opmerkingen bij de implementatie
Initialiseer de WorkflowExecutor. |
| WorkflowFailedEvent |
Ingebouwde levenscyclusgebeurtenis die wordt gegenereerd wanneer een werkstroomuitvoering wordt beëindigd met een fout. |
| WorkflowOutputEvent |
Gebeurtenis geactiveerd wanneer een werkstroomexecutor uitvoer oplevert. Initialiseer de gebeurtenis voor de uitvoer van de werkstroom. |
| WorkflowRunResult |
Container voor gebeurtenissen die zijn gegenereerd tijdens het uitvoeren van werkstromen die niet worden gestreamd. OverzichtVertegenwoordigt de volledige uitvoeringsresultaten van een werkstroomuitvoering, met alle gebeurtenissen die zijn gegenereerd vanaf het begin tot de niet-actieve status. Werkstromen produceren incrementeel uitvoer via ctx.yield_output() aanroepen tijdens de uitvoering. GebeurtenisstructuurOnderhoudt de scheiding tussen gegevensvlak- en besturingsvlakgebeurtenissen:
Belangrijke methoden
|
| WorkflowStartedEvent |
Ingebouwde levenscyclusgebeurtenis die wordt gegenereerd wanneer een werkstroomuitvoering begint. Initialiseer de werkstroom gebeurtenis met optionele gegevens. |
| WorkflowStatusEvent |
Ingebouwde levenscyclusgebeurtenis die wordt verzonden voor overgangen van de status van de werkstroom. Initialiseer de gebeurtenis van de werkstroomstatus met een nieuwe status en optionele gegevens. |
| WorkflowValidationError |
Basisonderzondering voor werkstroomvalidatiefouten. |
| WorkflowViz |
Een klasse voor het visualiseren van werkstromen met graphviz en Mermaid. Initialiseer de WorkflowViz met een werkstroom. |
Enums
| MagenticHumanInterventionDecision |
Beslissingsopties voor reacties op menselijke interventie. |
| MagenticHumanInterventionKind |
Het soort menselijke tussenkomst dat wordt aangevraagd. |
| ValidationTypeEnum |
Opsomming van werkstroomvalidatietypen. |
| WorkflowEventSource |
Hiermee wordt aangegeven of een werkstroom gebeurtenis afkomstig is van het framework of een uitvoerder. Gebruik FRAMEWORK voor gebeurtenissen die worden verzonden door ingebouwde indelingspaden, zelfs wanneer de code die ze genereert, zich in runner-gerelateerde modules bevindt, en EXECUTOR voor gebeurtenissen die worden weergegeven door door ontwikkelaars geleverde executor-implementaties. |
| WorkflowRunState |
Uitvoeringsstatus van een werkstroom. Semantiek:
|
Functies
agent_middleware
Decorator om een functie als agent-middleware te markeren.
Deze decorator identificeert expliciet een functie als agent-middleware, die AgentRunContext-objecten verwerkt.
agent_middleware(func: Callable[[AgentRunContext, Callable[[AgentRunContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[AgentRunContext, Callable[[AgentRunContext], Awaitable[None]]], Awaitable[None]]
Parameters
| Name | Description |
|---|---|
|
func
Vereist
|
De middlewarefunctie die als agent-middleware moet worden gemarkeerd. |
Retouren
| Type | Description |
|---|---|
|
Dezelfde functie met agent middlewaremarkering. |
Voorbeelden
from agent_framework import agent_middleware, AgentRunContext, ChatAgent
@agent_middleware
async def logging_middleware(context: AgentRunContext, next):
print(f"Before: {context.agent.name}")
await next(context)
print(f"After: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
ai_function
Een functie versieren om deze om te zetten in een AIFunction die kan worden doorgegeven aan modellen en automatisch kan worden uitgevoerd.
Deze decorator maakt een Pydantic-model op basis van de handtekening van de functie, die wordt gebruikt om de argumenten te valideren die aan de functie worden doorgegeven en om het JSON-schema voor de parameters van de functie te genereren.
Als u beschrijvingen wilt toevoegen aan parameters, gebruikt u het Annotated type van typing met een tekenreeksbeschrijving als het tweede argument. U kunt de klasse van Field Pydantic ook gebruiken voor geavanceerdere configuratie.
Opmerking
Wanneer approval_mode is ingesteld op 'always_require', wordt de functie niet uitgevoerd
totdat expliciete goedkeuring wordt gegeven, is dit alleen van toepassing op de stroom voor automatisch aanroepen.
Het is ook belangrijk om te weten dat als het model meerdere functie-aanroepen retourneert, sommige die goedkeuring vereisen
en anderen die dat niet doen, zal het goedkeuring vragen voor allemaal.
ai_function(func: Callable[[...], ReturnT | Awaitable[ReturnT]] | None = None, *, name: str | None = None, description: str | None = None, approval_mode: Literal['always_require', 'never_require'] | None = None, max_invocations: int | None = None, max_invocation_exceptions: int | None = None, additional_properties: dict[str, Any] | None = None) -> AIFunction[Any, ReturnT] | Callable[[Callable[[...], ReturnT | Awaitable[ReturnT]]], AIFunction[Any, ReturnT]]
Parameters
| Name | Description |
|---|---|
|
func
|
Callable[[...], <xref:agent_framework._tools.ReturnT> | Awaitable[<xref:agent_framework._tools.ReturnT>]] | None
De functie om te versieren. Default value: None
|
|
name
Vereist
|
|
|
description
Vereist
|
|
|
approval_mode
Vereist
|
Literal['always_require', 'never_require'] | None
|
|
max_invocations
Vereist
|
|
|
max_invocation_exceptions
Vereist
|
|
|
additional_properties
Vereist
|
|
Keyword-Only Parameters
| Name | Description |
|---|---|
|
name
|
De naam van de functie. Indien niet opgegeven, wordt het kenmerk van Default value: None
|
|
description
|
Een beschrijving van de functie. Indien niet opgegeven, wordt de docstring van de functie gebruikt. Default value: None
|
|
approval_mode
|
Of goedkeuring is vereist om dit hulpprogramma uit te voeren. Standaard is dat goedkeuring niet nodig is. Default value: None
|
|
max_invocations
|
Het maximum aantal keren dat deze functie kan worden aangeroepen. Als geen, is er geen limiet, moet ten minste 1 zijn. Default value: None
|
|
max_invocation_exceptions
|
Het maximum aantal uitzonderingen dat is toegestaan tijdens aanroepen. Als geen, is er geen limiet, moet ten minste 1 zijn. Default value: None
|
|
additional_properties
|
Aanvullende eigenschappen die moeten worden ingesteld voor de functie. Default value: None
|
Retouren
| Type | Description |
|---|---|
|
AIFunction[Any, <xref:agent_framework._tools.ReturnT>] | Callable[[Callable[[…], <xref:agent_framework._tools.ReturnT> | Awaitable[<xref:agent_framework._tools.ReturnT>]]], AIFunction[Any, <xref:agent_framework._tools.ReturnT>]]
|
Voorbeelden
from agent_framework import ai_function
from typing import Annotated
@ai_function
def ai_function_example(
arg1: Annotated[str, "The first argument"],
arg2: Annotated[int, "The second argument"],
) -> str:
# An example function that takes two arguments and returns a string.
return f"arg1: {arg1}, arg2: {arg2}"
# the same function but with approval required to run
@ai_function(approval_mode="always_require")
def ai_function_example(
arg1: Annotated[str, "The first argument"],
arg2: Annotated[int, "The second argument"],
) -> str:
# An example function that takes two arguments and returns a string.
return f"arg1: {arg1}, arg2: {arg2}"
# With custom name and description
@ai_function(name="custom_weather", description="Custom weather function")
def another_weather_func(location: str) -> str:
return f"Weather in {location}"
# Async functions are also supported
@ai_function
async def async_get_weather(location: str) -> str:
'''Get weather asynchronously.'''
# Simulate async operation
return f"Weather in {location}"
chat_middleware
Decorator om een functie als chat-middleware te markeren.
Deze decorator identificeert expliciet een functie als chat-middleware, die ChatContext-objecten verwerkt.
chat_middleware(func: Callable[[ChatContext, Callable[[ChatContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[ChatContext, Callable[[ChatContext], Awaitable[None]]], Awaitable[None]]
Parameters
| Name | Description |
|---|---|
|
func
Vereist
|
De middlewarefunctie die als chat-middleware wordt gemarkeerd. |
Retouren
| Type | Description |
|---|---|
|
Dezelfde functie met de markering chat-middleware. |
Voorbeelden
from agent_framework import chat_middleware, ChatContext, ChatAgent
@chat_middleware
async def logging_middleware(context: ChatContext, next):
print(f"Messages: {len(context.messages)}")
await next(context)
print(f"Response: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
create_edge_runner
Fabrieksfunctie voor het maken van de juiste edge-runner voor een randgroep.
create_edge_runner(edge_group: EdgeGroup, executors: dict[str, Executor]) -> EdgeRunner
Parameters
| Name | Description |
|---|---|
|
edge_group
Vereist
|
<xref:agent_framework._workflows._edge.EdgeGroup>
De randgroep waarvoor u een runner wilt maken. |
|
executors
Vereist
|
Toewijzing van uitvoerders-id's aan uitvoerdersexemplaren. |
Retouren
| Type | Description |
|---|---|
|
<xref:agent_framework._workflows._edge_runner.EdgeRunner>
|
Het juiste EdgeRunner-exemplaar. |
executor
Decorator die een zelfstandige functie converteert naar een FunctionExecutor-exemplaar.
De @executor decorator is alleen ontworpen voor zelfstandige functies op moduleniveau. Gebruik voor op klassen gebaseerde uitvoerders de basisklasse Executor met @handler op exemplaarmethoden.
Ondersteunt zowel synchrone als asynchrone functies. Synchrone functies worden uitgevoerd in een threadgroep om te voorkomen dat de gebeurtenislus wordt geblokkeerd.
Belangrijk
Gebruiken @executor voor zelfstandige functies (moduleniveau of lokale functies)
Niet gebruiken @executor met staticmethod of classmethod
Voor op klassen gebaseerde uitvoerders, subklasseExecutor en gebruiken @handler op exemplaarmethoden
Gebruik:
# Standalone async function (RECOMMENDED):
@executor(id="upper_case")
async def to_upper(text: str, ctx: WorkflowContext[str]):
await ctx.send_message(text.upper())
# Standalone sync function (runs in thread pool):
@executor
def process_data(data: str):
return data.upper()
# For class-based executors, use @handler instead:
class MyExecutor(Executor):
def __init__(self):
super().__init__(id="my_executor")
@handler
async def process(self, data: str, ctx: WorkflowContext[str]):
await ctx.send_message(data.upper())
executor(func: Callable[[...], Any] | None = None, *, id: str | None = None) -> Callable[[Callable[[...], Any]], FunctionExecutor] | FunctionExecutor
Parameters
| Name | Description |
|---|---|
|
func
|
De functie om te versieren (indien gebruikt zonder haakjes) Default value: None
|
|
id
Vereist
|
Optionele aangepaste id voor de uitvoerder. Als geen, gebruikt u de functienaam. |
Keyword-Only Parameters
| Name | Description |
|---|---|
|
id
|
Default value: None
|
Retouren
| Type | Description |
|---|---|
|
Een FunctionExecutor-exemplaar dat kan worden bekabeld in een werkstroom. |
Uitzonderingen
| Type | Description |
|---|---|
|
Indien gebruikt met staticmethod of classmethod (niet-ondersteund patroon) |
function_middleware
Decorator om een functie als functie-middleware te markeren.
Deze decorator identificeert expliciet een functie als functie-middleware, die FunctionInvocationContext-objecten verwerkt.
function_middleware(func: Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]
Parameters
| Name | Description |
|---|---|
|
func
Vereist
|
Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]
De middlewarefunctie die als functie-middleware moet worden gemarkeerd. |
Retouren
| Type | Description |
|---|---|
|
Dezelfde functie met functie-middlewaremarkering. |
Voorbeelden
from agent_framework import function_middleware, FunctionInvocationContext, ChatAgent
@function_middleware
async def logging_middleware(context: FunctionInvocationContext, next):
print(f"Calling: {context.function.name}")
await next(context)
print(f"Result: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
get_checkpoint_summary
get_checkpoint_summary(checkpoint: WorkflowCheckpoint) -> WorkflowCheckpointSummary
Parameters
| Name | Description |
|---|---|
|
checkpoint
Vereist
|
|
Retouren
| Type | Description |
|---|---|
get_logger
Haal een logger op met de opgegeven naam, die standaard wordt ingesteld op 'agent_framework'.
get_logger(name: str = 'agent_framework') -> Logger
Parameters
| Name | Description |
|---|---|
|
name
|
De naam van de logger. Standaard ingesteld op 'agent_framework'. Default value: "agent_framework"
|
Retouren
| Type | Description |
|---|---|
|
Het geconfigureerde loggerexemplaren. |
handler
Decorator voor het registreren van een handler voor een uitvoerder.
handler(func: Callable[[ExecutorT, Any, ContextT], Awaitable[Any]]) -> Callable[[ExecutorT, Any, ContextT], Awaitable[Any]]
Parameters
| Name | Description |
|---|---|
|
func
Vereist
|
Callable[[<xref:agent_framework._workflows._executor.ExecutorT>, Any, <xref:agent_framework._workflows._executor.ContextT>], Awaitable[Any]]
De functie om te versieren. Kan geen zijn wanneer deze zonder parameters wordt gebruikt. |
Retouren
| Type | Description |
|---|---|
|
De versierde functie met handlermetagegevens. |
Voorbeelden
@handler async def handle_string(zelf, bericht: str, ctx: WorkflowContext[str]) -> Geen:
...
@handler async def handle_data(zelf, bericht: dict, ctx: WorkflowContext[str | int]) -> Geen:
...
prepare_function_call_results
Bereid de waarden van de resultaten van de functieoproep voor.
prepare_function_call_results(content: TextContent | DataContent | TextReasoningContent | UriContent | FunctionCallContent | FunctionResultContent | ErrorContent | UsageContent | HostedFileContent | HostedVectorStoreContent | FunctionApprovalRequestContent | FunctionApprovalResponseContent | Any | list[TextContent | DataContent | TextReasoningContent | UriContent | FunctionCallContent | FunctionResultContent | ErrorContent | UsageContent | HostedFileContent | HostedVectorStoreContent | FunctionApprovalRequestContent | FunctionApprovalResponseContent | Any]) -> str
Parameters
Retouren
| Type | Description |
|---|---|
prepend_agent_framework_to_user_agent
Prepend "agent-framework" aan de User-Agent in de headers.
Wanneer telemetrie van de gebruikersagent is uitgeschakeld via de AGENT_FRAMEWORK_USER_AGENT_DISABLED omgevingsvariabele, bevat de User-Agent-header geen informatie over het agentframework.
Het wordt teruggestuurd als zodanig of als een leeg dict als er geen wordt doorgegeven.
prepend_agent_framework_to_user_agent(headers: dict[str, Any] | None = None) -> dict[str, Any]
Parameters
| Name | Description |
|---|---|
|
headers
|
De bestaande koptekstenwoordenlijst. Default value: None
|
Retouren
| Type | Description |
|---|---|
|
Een nieuwe dict met User-Agent ingesteld op agent-framework-python/{version} als headers Geen zijn. De gewijzigde headerswoordenlijst met agent-framework-python/{version}, voorafgegaan door de User-Agent. |
Voorbeelden
from agent_framework import prepend_agent_framework_to_user_agent
# Add agent-framework to new headers
headers = prepend_agent_framework_to_user_agent()
print(headers["User-Agent"]) # "agent-framework-python/0.1.0"
# Prepend to existing headers
existing = {"User-Agent": "my-app/1.0"}
headers = prepend_agent_framework_to_user_agent(existing)
print(headers["User-Agent"]) # "agent-framework-python/0.1.0 my-app/1.0"
response_handler
Decorator voor het registreren van een handler voor het afhandelen van antwoorden voor een aanvraag.
response_handler(func: Callable[[ExecutorT, Any, Any, ContextT], Awaitable[None]]) -> Callable[[ExecutorT, Any, Any, ContextT], Awaitable[None]]
Parameters
| Name | Description |
|---|---|
|
func
Vereist
|
Callable[[<xref:agent_framework._workflows._request_info_mixin.ExecutorT>, Any, Any, <xref:agent_framework._workflows._request_info_mixin.ContextT>], Awaitable[None]]
De functie om te versieren. |
Retouren
| Type | Description |
|---|---|
|
De versierde functie met handlermetagegevens. |
Voorbeelden
@handler
async def run(self, message: int, context: WorkflowContext[str]) -> None:
# Example of a handler that sends a request
...
# Send a request with a `CustomRequest` payload and expect a `str` response.
await context.request_info(CustomRequest(...), str)
@response_handler
async def handle_response(
self,
original_request: CustomRequest,
response: str,
context: WorkflowContext[str],
) -> None:
# Example of a response handler for the above request
...
@response_handler
async def handle_response(
self,
original_request: CustomRequest,
response: dict,
context: WorkflowContext[int],
) -> None:
# Example of a response handler for a request expecting a dict response
...
setup_logging
Stel de configuratie voor logboekregistratie in voor het agentframework.
setup_logging() -> None
Retouren
| Type | Description |
|---|---|
use_agent_middleware
Klasse-decorator die middleware-ondersteuning toevoegt aan een agentklasse.
Deze decorator voegt middlewarefunctionaliteit toe aan elke agentklasse.
Het verpakt de run() en run_stream() methoden om middleware-uitvoering te bieden.
De middleware-uitvoering kan op elk gewenst moment worden beëindigd door de context.terminate eigenschap in te stellen op True. Zodra de pijplijn is ingesteld, stopt de uitvoering van verdere middleware zodra het besturingselement terugkeert naar de pijplijn.
Opmerking
Deze decorator is al toegepast op ingebouwde agentklassen. U hoeft alleen maar te gebruiken
als u aangepaste agent-implementaties maakt.
use_agent_middleware(agent_class: type[TAgent]) -> type[TAgent]
Parameters
| Name | Description |
|---|---|
|
agent_class
Vereist
|
type[<xref:TAgent>]
De agentklasse waaraan middleware-ondersteuning moet worden toegevoegd. |
Retouren
| Type | Description |
|---|---|
|
type[~<xref:TAgent>]
|
De gewijzigde agentklasse met middleware-ondersteuning. |
Voorbeelden
from agent_framework import use_agent_middleware
@use_agent_middleware
class CustomAgent:
async def run(self, messages, **kwargs):
# Agent implementation
pass
async def run_stream(self, messages, **kwargs):
# Streaming implementation
pass
use_chat_middleware
Klasse-decorator die middleware-ondersteuning toevoegt aan een chatclientklasse.
Deze decorator voegt middlewarefunctionaliteit toe aan elke chatclientklasse.
Het verpakt de get_response() en get_streaming_response() methoden om middleware-uitvoering te bieden.
Opmerking
Deze decorator is al toegepast op ingebouwde chatclientklassen. U hoeft alleen maar te gebruiken
als u aangepaste chatclient-implementaties maakt.
use_chat_middleware(chat_client_class: type[TChatClient]) -> type[TChatClient]
Parameters
| Name | Description |
|---|---|
|
chat_client_class
Vereist
|
type[<xref:TChatClient>]
De chatclientklasse waaraan middleware-ondersteuning moet worden toegevoegd. |
Retouren
| Type | Description |
|---|---|
|
type[~<xref:TChatClient>]
|
De gewijzigde chatclientklasse met middleware-ondersteuning. |
Voorbeelden
from agent_framework import use_chat_middleware
@use_chat_middleware
class CustomChatClient:
async def get_response(self, messages, **kwargs):
# Chat client implementation
pass
async def get_streaming_response(self, messages, **kwargs):
# Streaming implementation
pass
use_function_invocation
Klasse-decorator waarmee hulpprogramma's voor een chatclient kunnen worden aangeroepen.
Deze decorator verpakt de get_response en get_streaming_response methoden om functie-aanroepen van het model automatisch te verwerken, uit te voeren en de resultaten terug te sturen naar het model voor verdere verwerking.
use_function_invocation(chat_client: type[TChatClient]) -> type[TChatClient]
Parameters
| Name | Description |
|---|---|
|
chat_client
Vereist
|
type[<xref:TChatClient>]
De chatclientklasse om te versieren. |
Retouren
| Type | Description |
|---|---|
|
type[~<xref:TChatClient>]
|
De ingerichte chatclientklasse met functie-aanroep ingeschakeld. |
Uitzonderingen
| Type | Description |
|---|---|
|
Als de chatclient niet over de vereiste methoden beschikt. |
Voorbeelden
from agent_framework import use_function_invocation, BaseChatClient
@use_function_invocation
class MyCustomClient(BaseChatClient):
async def get_response(self, messages, **kwargs):
# Implementation here
pass
async def get_streaming_response(self, messages, **kwargs):
# Implementation here
pass
# The client now automatically handles function calls
client = MyCustomClient()
validate_workflow_graph
Handige functie om een werkstroomgrafiek te valideren.
validate_workflow_graph(edge_groups: Sequence[EdgeGroup], executors: dict[str, Executor], start_executor: Executor) -> None
Parameters
| Name | Description |
|---|---|
|
edge_groups
Vereist
|
Sequence[<xref:agent_framework._workflows._edge.EdgeGroup>]
lijst met edge-groepen in de werkstroom |
|
executors
Vereist
|
Toewijzing van uitvoerders-id's aan uitvoerdersexemplaren |
|
start_executor
Vereist
|
De startexecutor (kan een exemplaar of id zijn) |
Retouren
| Type | Description |
|---|---|
Uitzonderingen
| Type | Description |
|---|---|
|
Als er een validatie mislukt |