Partager via


Orchestration de l’agent de noyau sémantique

Importante

Les fonctionnalités d’orchestration d’agent dans l’infrastructure d’agent sont à l’étape expérimentale. Ils sont en cours de développement actif et peuvent changer considérablement avant de passer à la phase de version préliminaire ou de candidat à la version finale.

L’infrastructure d’orchestration de l’agent du noyau sémantique permet aux développeurs de créer, gérer et mettre à l’échelle des flux de travail d’agent complexes avec facilité.

Pourquoi l’orchestration multi-agent ?

Les systèmes à agent unique traditionnels sont limités dans leur capacité à gérer des tâches complexes et multidimensionnelles. En orchestrant plusieurs agents, chacun avec des compétences ou des rôles spécialisés, nous pouvons créer des systèmes plus robustes, adaptatifs et capables de résoudre des problèmes réels en collaboration. L’orchestration multi-agent dans le noyau sémantique fournit une base flexible pour la création de tels systèmes, prenant en charge divers modèles de coordination.

Modèles d’orchestration

Comme les modèles de conception cloud connus, les modèles d’orchestration des agents sont des approches indépendantes de la technologie pour coordonner plusieurs agents afin de travailler ensemble vers un objectif commun. Pour en savoir plus sur les modèles eux-mêmes, reportez-vous à la documentation sur les modèles d’orchestration de l’agent IA .

Modèles d’orchestration pris en charge dans le noyau sémantique

Le noyau sémantique vous prend en charge en implémentant ces modèles d’orchestration directement dans le Kit de développement logiciel (SDK). Ces modèles sont disponibles dans le cadre de l’infrastructure et peuvent être facilement étendus ou personnalisés afin de pouvoir paramétrer votre scénario de collaboration d’agent.

Modèle Descriptif Cas d’usage typique
Simultané Diffuse une tâche à tous les agents, collecte les résultats indépendamment. Analyse parallèle, tâches subordonnées indépendantes, prise de décision d’ensemble.
Séquentiel Transmet le résultat d’un agent à l’autre dans un ordre défini. Flux de travail pas à pas, pipelines, traitement en plusieurs étapes.
de transfert Transmet dynamiquement le contrôle entre les agents en fonction du contexte ou des règles. Flux de travail dynamiques, escalade, secours ou scénarios de transfert d’experts.
Conversation de groupe Tous les agents participent à une conversation de groupe, coordonné par un responsable de groupe. Brainstorming, résolution de problèmes collaboratifs, élaboration de consensus.
Magentic Orchestration semblable à une discussion de groupe, inspirée par MagenticOne. Collaboration multi-agent complexe et généralisée.

Simplicité et conviviale pour les développeurs

Tous les modèles d’orchestration partagent une interface unifiée pour la construction et l’appel. Quelle que soit l’orchestration que vous choisissez, vous :

  • Définissez vos agents et leurs fonctionnalités, consultez Agents de noyau sémantique.
  • Créez une orchestration en transmettant les agents (et, si nécessaire, un responsable).
  • Fournissez éventuellement des rappels ou des transformations pour la gestion personnalisée des entrées/sorties.
  • Démarrez un runtime et appelez l’orchestration avec une tâche.
  • Attendez le résultat de manière cohérente et asynchrone.

Cette approche unifiée signifie que vous pouvez facilement basculer entre les modèles d’orchestration, sans apprendre de nouvelles API ou réécrire votre logique d’agent. Le framework extrait la complexité de la communication, de la coordination et de l’agrégation des résultats de l’agent, ce qui vous permet de vous concentrer sur les objectifs de votre application.

// Choose an orchestration pattern with your agents
SequentialOrchestration orchestration = new(agentA, agentB)
{
    LoggerFactory = this.LoggerFactory
};  // or ConcurrentOrchestration, GroupChatOrchestration, HandoffOrchestration, MagenticOrchestration, ...

// Start the runtime
InProcessRuntime runtime = new();
await runtime.StartAsync();

// Invoke the orchestration and get the result
OrchestrationResult<string> result = await orchestration.InvokeAsync(task, runtime);
string text = await result.GetValueAsync();

await runtime.RunUntilIdleAsync();
# Choose an orchestration pattern with your agents
orchestration = SequentialOrchestration(members=[agent_a, agent_b])
# or ConcurrentOrchestration, GroupChatOrchestration, HandoffOrchestration, MagenticOrchestration, ...

# Start the runtime
runtime = InProcessRuntime()
runtime.start()

# Invoke the orchestration
result = await orchestration.invoke(task="Your task here", runtime=runtime)

# Get the result
final_output = await result.get()

await runtime.stop_when_idle()

Remarque

L’orchestration de l’agent n’est pas encore disponible dans le Kit de développement logiciel (SDK) Java.

Préparation de votre environnement de développement

Ajoutez les packages suivants à votre projet avant de continuer :

dotnet add package Microsoft.SemanticKernel.Agents.Orchestration --prerelease
dotnet add package Microsoft.SemanticKernel.Agents.Runtime.InProcess --prerelease

Selon les types d’agents que vous utilisez, vous devrez peut-être également ajouter les packages respectifs pour les agents. Pour plus d’informations, consultez la vue d’ensemble des agents .

Étapes suivantes