Delen via


Microsoft Agent Framework

Microsoft Agent Framework is een opensource development kit voor het bouwen van AI-agents en werkstromen met meerdere agents voor .NET en Python. Het combineert en breidt ideeën uit Semantische Kernel - en AutoGen-projecten samen, waarbij hun sterke punten worden gecombineerd en nieuwe mogelijkheden worden toegevoegd. Gebouwd door dezelfde teams, is het de uniforme basis voor het bouwen van AI-agents.

Agent Framework biedt twee primaire categorieën mogelijkheden:

  • AI-agents: afzonderlijke agents die GEBRUIKMAKEN van LLM's voor het verwerken van gebruikersinvoer, oproephulpprogramma's en MCP-servers om acties uit te voeren en antwoorden te genereren. Agents ondersteunen modelproviders, waaronder Azure OpenAI, OpenAI en Azure AI.
  • Werkstromen: op grafieken gebaseerde werkstromen die meerdere agents en functies verbinden om complexe taken met meerdere stappen uit te voeren. Werkstromen ondersteunen op type gebaseerde routering, nesting, controlepunten en aanvraag-/antwoordpatronen voor scenario's met mensen in de lus.

Het framework biedt ook fundamentele bouwstenen, waaronder modelclients (chatvoltooiingen en -antwoorden), een agentthread voor statusbeheer, contextproviders voor agentgeheugen, middleware voor het onderscheppen van agentacties en MCP-clients voor hulpprogramma-integratie. Samen bieden deze onderdelen u de flexibiliteit en kracht om interactieve, robuuste en veilige AI-toepassingen te bouwen.

Waarom een ander agentframework?

Semantische kernel en AutoGen hebben de concepten van AI-agents en orchestration met meerdere agents gepioneerd. Agent Framework is de directe opvolger die door dezelfde teams wordt gemaakt. Het combineert de eenvoudige abstracties van AutoGen voor patronen met één en meerdere agents met Semantic Kernel's hoogwaardige functies zoals op thread gebaseerde statusbeheer, typeveiligheid, filters, telemetrie en uitgebreide model- en insluitingsondersteuning. Naast het samenvoegen van de twee, introduceert Agent Framework werkstromen die ontwikkelaars expliciet controle geven over uitvoeringspaden met meerdere agents, plus een robuust statusbeheersysteem voor langdurige en human-in-the-loop-scenario's. Kortom, Agent Framework is de volgende generatie van zowel Semantische kernel als AutoGen.

Zie de migratiehandleiding van Semantische kernel en migratiehandleiding van AutoGen voor meer informatie over het migreren van Semantische kernel of AutoGen.

Zowel Semantic Kernel als AutoGen hebben aanzienlijk geprofiteerd van de opensource-community en hetzelfde wordt verwacht voor Agent Framework. Microsoft Agent Framework verwelkomt bijdragen en blijft verbeteren met nieuwe functies en mogelijkheden.

Opmerking

Microsoft Agent Framework is momenteel beschikbaar als openbare preview. Verzend feedback of problemen in de GitHub-opslagplaats.

Belangrijk

Als u Microsoft Agent Framework gebruikt om toepassingen te bouwen die werken met servers of agents van derden, doet u dit op eigen risico. We raden u aan om alle gegevens te controleren die worden gedeeld met servers of agents van derden en om te voldoen aan procedures van derden voor het bewaren en de locatie van gegevens. Het is uw verantwoordelijkheid om te beheren of uw gegevens buiten de Azure-nalevings- en geografische grenzen van uw organisatie stromen en eventuele gerelateerde gevolgen.

Installatie

Python:

pip install agent-framework --pre

.NET:

dotnet add package Microsoft.Agents.AI

AI-agenten

Wat is een AI-agent?

Een AI-agent maakt gebruik van een LLM voor het verwerken van gebruikersinvoer, het nemen van beslissingen, het aanroepen van hulpprogramma's en MCP-servers voor het uitvoeren van acties en het genereren van antwoorden. In het volgende diagram ziet u de belangrijkste onderdelen en hun interacties in een AI-agent:

DIAGRAM van AI-agent

Een AI-agent kan ook worden uitgebreid met extra onderdelen zoals een thread, een contextprovider en middleware om de mogelijkheden ervan te verbeteren.

Wanneer gebruikt u een AI-agent?

AI-agents zijn geschikt voor toepassingen waarvoor autonome besluitvorming, ad-hocplanning, proef- en foutverkenning en gebruikersinteracties op basis van gesprekken vereist zijn. Ze zijn met name handig voor scenario's waarbij de invoertaak ongestructureerd is en niet eenvoudig vooraf kan worden gedefinieerd.

Hier volgen enkele veelvoorkomende scenario's waarin AI-agents excelleren:

  • Klantenondersteuning: AI-agents kunnen multimodale query's (tekst, spraak, afbeeldingen) van klanten verwerken, hulpprogramma's gebruiken om informatie op te zoeken en antwoorden in natuurlijke taal te geven.
  • Onderwijs en begeleiding: AI-agents kunnen gebruikmaken van externe knowledge bases om persoonlijke begeleiding te bieden en vragen van leerlingen/studenten te beantwoorden.
  • Codegeneratie en foutopsporing: Voor softwareontwikkelaars kunnen AI-agents helpen bij de implementatie, codebeoordelingen en foutopsporing met behulp van verschillende programmeerhulpprogramma's en omgevingen.
  • Hulp bij onderzoek: Voor onderzoekers en analisten kunnen AI-agents op internet zoeken, documenten samenvatten en informatie uit meerdere bronnen samenvoegen.

De sleutel is dat AI-agents zijn ontworpen om te werken in een dynamische en onderspecifieke instelling, waarbij de exacte volgorde van de stappen voor het vervullen van een gebruikersaanvraag niet van tevoren bekend is en mogelijk verkenning en nauwe samenwerking met gebruikers vereist.

Wanneer gebruikt u geen AI-agent?

AI-agents zijn niet geschikt voor taken die zeer gestructureerd zijn en strikte naleving van vooraf gedefinieerde regels vereisen. Als uw toepassing een specifiek type invoer verwacht en een goed gedefinieerde reeks bewerkingen heeft die moeten worden uitgevoerd, kan het gebruik van AI-agents onnodige onzekerheid, latentie en kosten veroorzaken.

Als u een functie kunt schrijven om de taak af te handelen, doet u dat in plaats van een AI-agent te gebruiken. U kunt AI gebruiken om die functie te schrijven.

Een enkele AI-agent kan moeite hebben met complexe taken die meerdere stappen en beslissingspunten omvatten. Voor dergelijke taken kan een groot aantal hulpprogramma's zijn vereist (bijvoorbeeld meer dan 20), die niet haalbaar zijn voor één agent.

In dergelijke gevallen kunt u in plaats daarvan werkstromen gebruiken.

Workflows

Wat is een werkstroom?

Een werkstroom kan een vooraf gedefinieerde reeks bewerkingen uitdrukken die AI-agents als onderdelen kunnen bevatten, terwijl consistentie en betrouwbaarheid behouden blijven. Werkstromen zijn ontworpen voor het verwerken van complexe en langlopende processen die mogelijk betrekking hebben op meerdere agents, menselijke interacties en integraties met externe systemen.

De uitvoeringsvolgorde van een werkstroom kan expliciet worden gedefinieerd, zodat u meer controle hebt over het uitvoeringspad. In het volgende diagram ziet u een voorbeeld van een werkstroom die twee AI-agents en een functie verbindt:

Werkstroomdiagram

Werkstromen kunnen ook dynamische reeksen uitdrukken met behulp van voorwaardelijke routering, besluitvorming op basis van modellen en gelijktijdige uitvoering. Dit is hoe indelingspatronen met meerdere agents worden geïmplementeerd. De indelingspatronen bieden mechanismen om meerdere agents te coördineren om te werken aan complexe taken waarvoor meerdere stappen en beslissingspunten nodig zijn, waarbij de beperkingen van afzonderlijke agents worden aangepakt.

Welke problemen lossen werkstromen op?

Werkstromen bieden een gestructureerde manier om complexe processen te beheren die betrekking hebben op meerdere stappen, beslissingspunten en interacties met verschillende systemen of agents. De typen takenwerkstromen zijn ontworpen om vaak meer dan één AI-agent te verwerken.

Hier volgen enkele van de belangrijkste voordelen van Agent Framework-werkstromen:

  • Modulariteit: Werkstromen kunnen worden onderverdeeld in kleinere, herbruikbare onderdelen, waardoor het eenvoudiger is om afzonderlijke onderdelen van het proces te beheren en bij te werken.
  • Agentintegratie: Werkstromen kunnen meerdere AI-agents naast niet-agentische onderdelen opnemen, waardoor taken kunnen worden ingedeeld.
  • TypeVeiligheid: Sterke typecontrole zorgt ervoor dat berichten correct worden uitgewisseld tussen componenten, met uitgebreide validatie die runtime-fouten voorkomt.
  • Flexibele stroom: architectuur op basis van grafieken maakt intuïtieve modellering van complexe werkstromen mogelijk met executors en edges. Voorwaardelijke routering, parallelle verwerking en dynamische uitvoeringspaden worden allemaal ondersteund.
  • Externe integratie: ingebouwde aanvraag-/antwoordpatronen maken naadloze integratie met externe API's mogelijk en ondersteunen human-in-the-loop-scenario's.
  • Controlepunten: werkstroomstatussen opslaan via controlepunten, herstel en hervatting van langlopende processen aan de serverzijde inschakelen.
  • Indeling met meerdere agents: ingebouwde patronen voor het coördineren van meerdere AI-agents, waaronder sequentiële, gelijktijdige, hand-off en Magentic.
  • Samenstelbaarheid: Werkstromen kunnen worden genest of gecombineerd om complexere processen te maken, waardoor schaalbaarheid en aanpassingsmogelijkheden mogelijk zijn.

Volgende stappen