Partager via


Vue d’ensemble de TypeSpec pour Microsoft 365 Copilot

TypeSpec for Microsoft 365 Copilot est un puissant langage spécifique au domaine (DSL) qui permet aux développeurs de créer des agents déclaratifs et des plug-ins d’API à l’aide d’une syntaxe expressive propre. Basé sur la base de TypeSpec, ce langage spécialisé fournit des éléments décoratifs et des fonctionnalités spécifiques à Microsoft 365 qui simplifient le processus de développement pour étendre Microsoft 365 Copilot. TypeSpec est une alternative à la création manuelle de fichiers manifeste JSON, offrant une approche plus conviviale pour les développeurs avec une productivité et une maintenabilité améliorées.

TypeSpec for Microsoft 365 Copilot transforme la façon dont les développeurs créent des solutions d’extensibilité Copilot en fournissant une couche d’abstraction de haut niveau sur des schémas JSON complexes et des fichiers OpenAPI. Le langage génère automatiquement les fichiers manifeste et les configurations requis, ce qui réduit le temps de développement et réduit les erreurs. Grâce à sa prise en charge complète d’IntelliSense, à sa sécurité de type et à sa validation complète, TypeSpec permet aux développeurs de se concentrer sur la création d’expériences innovantes basées sur l’IA plutôt que sur les détails de la configuration.

Sécurité du type et expérience du développeur

TypeSpec pour Microsoft 365 Copilot fournit une expérience de développement fortement typée qui intercepte les erreurs au moment de la compilation plutôt qu’au moment de l’exécution. Le langage inclut une vérification complète du type pour toutes les constructions spécifiques à Microsoft 365 Copilot, garantissant que vos agents déclaratifs et plug-ins d’API sont correctement configurés avant le déploiement. Cette sécurité de type s’étend à tous les aspects de votre définition d’agent, des métadonnées de base aux configurations de capacité complexes et aux définitions d’opérations d’API.

L’expérience des développeurs est améliorée grâce à une prise en charge enrichie d’IntelliSense dans Visual Studio Code et Visual Studio, fournissant des commentaires en temps réel, une saisie semi-automatique et une documentation inline. Le langage s’intègre en toute transparence au Kit de ressources Microsoft 365 Agents, offrant un flux de travail de développement complet de la création au déploiement. Les messages d’erreur sont clairs et exploitables, ce qui permet aux développeurs d’identifier et de résoudre rapidement les problèmes pendant le développement.

Création simplifiée de l’agent et du plug-in

TypeSpec simplifie considérablement le processus de création d’agents déclaratifs et de plug-ins d’API en remplaçant les configurations JSON détaillées par une syntaxe intuitive basée sur des éléments décoratifs. Au lieu de créer manuellement des fichiers manifeste complexes, les développeurs peuvent utiliser des éléments de décoration sémantique comme @agent, @instructionset @capabilities pour définir leurs agents. Cette approche réduit la probabilité d’erreurs de configuration et rend le codebase plus facile à gérer et à lire.

Lorsque vous travaillez avec des surfaces d’API complexes, TypeSpec excelle là où les fichiers OpenAPI traditionnels deviennent difficiles à gérer. Les spécifications OpenAPI volumineuses avec des centaines de points de terminaison, des schémas imbriqués complexes et des modèles d’authentification complexes peuvent être difficiles à créer, à gérer et à comprendre. TypeSpec résout ces problèmes en fournissant des abstractions de niveau supérieur qui génèrent automatiquement les spécifications OpenAPI sous-jacentes. Les développeurs peuvent se concentrer sur la définition de la logique métier et du comportement de l’API à l’aide de la syntaxe expressive de TypeSpec, tandis que le compilateur gère les détails fastidieux de la conformité OpenAPI, de la validation de schéma et de la gestion des références croisées.

Le langage fournit des éléments décoratifs intégrés pour toutes les fonctionnalités Microsoft 365 Copilot, notamment la recherche web, l’intégration de OneDrive et SharePoint, les messages Teams, l’interpréteur de code, etc. Les plug-ins d’API tirent parti de la génération automatique de spécifications OpenAPI, où les opérations TypeSpec sont converties en toute transparence en définitions d’API REST. Cette automatisation élimine la nécessité de gérer une documentation d’API distincte et garantit la cohérence entre vos définitions TypeSpec et les contrats d’API résultants.

Génération et validation automatiques du manifeste

L’une des fonctionnalités les plus puissantes de TypeSpec pour Microsoft 365 Copilot est sa capacité à générer automatiquement des fichiers manifeste valides à partir de vos définitions TypeSpec. Le compilateur de langage analyse votre code TypeSpec et produit les manifestes JSON appropriés pour les agents déclaratifs et les plug-ins d’API, en s’assurant qu’ils sont conformes aux dernières exigences de schéma. Ce processus de génération comprend une validation complète, en interceptant les erreurs de configuration courantes avant qu’elles n’atteignent la production.

La génération automatique va au-delà de la création de manifeste de base pour inclure des configurations complexes telles que des cartes adaptatives, des paramètres d’authentification et des métadonnées spécifiques aux fonctionnalités. TypeSpec valide toutes les références, garantit une liaison de données appropriée pour les cartes adaptatives et vérifie que toutes les propriétés requises sont présentes. Cette validation se produit pendant le processus de génération, fournissant des commentaires immédiats aux développeurs et empêchant le déploiement de configurations non valides.

Exemples

Voici des exemples pratiques illustrant typeSpec pour Microsoft 365 Copilot syntaxe :

Agent déclaratif de base

@agent(
  "Customer Support Assistant",
  "An AI agent that helps with customer support inquiries and ticket management"
)
@instructions("""
  You are a customer support specialist. Help users with their inquiries,
  provide troubleshooting steps, and escalate complex issues when necessary.
  Always maintain a helpful and professional tone.
""")
@conversationStarter(#{
  title: "Check Ticket Status",
  text: "What's the status of my support ticket?"
})
namespace CustomerSupportAgent {
  // Agent capabilities defined here
}

Agent avec fonctionnalités

import "@typespec/http";
import "@microsoft/typespec-m365-copilot";

using TypeSpec.Http;
using TypeSpec.M365.Copilot.Agents;

@agent(
  "Multi-Capability Assistant",
  "An AI agent that can search the web, access SharePoint content, and execute Python code"
)
@instructions("""
  You are a versatile assistant that can help users with research, data analysis, and document management.
  Use web search for current information, access SharePoint for company documents, and execute Python code for calculations and data analysis.
  Always provide clear explanations of your findings and methodology.
""")
namespace MyAgent {
  op webSearch is AgentCapabilities.WebSearch<Sites = [
    {
      url: "https://learn.microsoft.com"
    }
  ]>;

  op oneDriveSearch is AgentCapabilities.OneDriveAndSharePoint<
   ItemsByUrl = [
      {
        url: "https://contoso.sharepoint.com/sites/projects"
      }
    ]
  >;

  op codeInterpreter is AgentCapabilities.CodeInterpreter;
}

Plug-in d’API avec opérations

import "@typespec/http";
import "@microsoft/typespec-m365-copilot";

using TypeSpec.Http;
using Microsoft.M365Copilot;

@agent(
  "Project Management Assistant",
  "An AI agent that helps manage projects and tasks through API operations"
)
@instructions("""
  You are a project management assistant that helps users create, track, and manage projects.
  Use the available API operations to list projects, get project details, and create new projects.
  Always provide clear status updates and help users organize their work effectively.
""")
@service
@server("https://api.contoso.com")
@actions(#{
  nameForHuman: "Project Management API",
  descriptionForHuman: "Manage projects and tasks",
  descriptionForModel: "API for creating, updating, and tracking project tasks"
})
namespace ProjectAPI {
  model Project {
    id: string;
    name: string;
    description?: string;
    status: "active" | "completed" | "on-hold";
    createdDate: utcDateTime;
  }

  model CreateProjectRequest {
    name: string;
    description?: string;
    status?: "active" | "on-hold";
  }

  @route("/projects")
  @get op listProjects(): Project[];

  @route("/projects/{id}")
  @get op getProject(@path id: string): Project;

  @route("/projects")
  @post op createProject(@body project: CreateProjectRequest): Project;
}

Prise en main

Vous êtes prêt à commencer à créer avec TypeSpec pour Microsoft 365 Copilot ? Procédez comme suit :