Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 .