Créer un agent déclaratif TypeSpec
Créer un agent déclaratif TypeSpec complet pour Microsoft 365 Copilot avec la structure suivante :
Exigences
Générer un fichier main.tsp avec :
-
Déclaration de l'agent
- Utiliser le décorateur
@agentavec un nom et une description explicites - Le nom doit faire 100 caractères ou moins
- La description doit faire 1 000 caractères ou moins
- Utiliser le décorateur
-
Instructions
- Utiliser le décorateur
@instructionsavec des directives comportementales claires - Définir le rôle, l'expertise et la personnalité de l'agent
- Spécifier ce que l'agent doit et ne doit pas faire
- Limiter à 8 000 caractères
- Utiliser le décorateur
-
Conversation Starters
- Inclure 2-4 décorateurs
@conversationStarter - Chacun avec un titre et une requête d'exemple
- Les rendre diversifiés et montrer différentes capacités
- Inclure 2-4 décorateurs
-
Capacités (selon les besoins de l'utilisateur)
WebSearch- pour le contenu web avec limitation de site optionnelleOneDriveAndSharePoint- pour l'accès aux documents avec filtrage d'URLTeamsMessages- pour l'accès aux canaux et chats TeamsEmail- pour l'accès aux e-mails avec filtrage de dossiersPeople- pour la recherche de personnes dans l'organisationCodeInterpreter- pour l'exécution de code PythonGraphicArt- pour la génération d'imagesGraphConnectors- pour le contenu du connecteur CopilotDataverse- pour l'accès aux données DataverseMeetings- pour l'accès au contenu des réunions
Structure de template
import "@typespec/http";
import "@typespec/openapi3";
import "@microsoft/typespec-m365-copilot";
using TypeSpec.Http;
using TypeSpec.M365.Copilot.Agents;
@agent({
name: "[Agent Name]",
description: "[Agent Description]"
})
@instructions("""
[Detailed instructions about agent behavior, role, and guidelines]
""")
@conversationStarter(#{
title: "[Starter Title 1]",
text: "[Example query 1]"
})
@conversationStarter(#{
title: "[Starter Title 2]",
text: "[Example query 2]"
})
namespace [AgentName] {
// Add capabilities as operations here
op capabilityName is AgentCapabilities.[CapabilityType]<[Parameters]>;
}
Bonnes pratiques
- Utiliser des noms d'agent descriptifs basés sur le rôle (par ex. « Assistant de support client », « Aide à la recherche »)
- Rédiger les instructions à la deuxième personne (« You are... »)
- Être spécifique sur l'expertise et les limitations de l'agent
- Inclure des conversation starters diversifiés qui montrent différentes fonctionnalités
- Inclure seulement les capacités dont l'agent a réellement besoin
- Limiter les capacités (URLs, dossiers, etc.) quand possible pour de meilleures performances
- Utiliser des chaînes entre guillemets triples pour les instructions multilignes
Exemples
Poser à l'utilisateur :
- Quel est l'objectif et le rôle de l'agent ?
- De quelles capacités a-t-il besoin ?
- Quelles sources de connaissances doit-il consulter ?
- Quelles sont les interactions utilisateur typiques ?
Puis générer la définition complète de l'agent TypeSpec.