Compartilhar via


TypeSpec for Microsoft 365 Copilot overview (Descrição geral do TypeSpec para Microsoft 365 Copilot)

O TypeSpec para Microsoft 365 Copilot é uma poderosa linguagem específica do domínio (DSL) que permite aos programadores criar agentes declarativos e plug-ins de API com uma sintaxe expressiva limpo. Criada com base no TypeSpec, esta linguagem especializada fornece capacidades e decoradores específicos do Microsoft 365 que simplificam o processo de desenvolvimento para expandir Microsoft 365 Copilot. O TypeSpec serve como alternativa à criação manual de ficheiros de manifesto JSON, oferecendo uma abordagem mais compatível com o programador com produtividade e manutenção melhoradas.

O TypeSpec para Microsoft 365 Copilot transforma a forma como os programadores criam soluções de extensibilidade copilot ao fornecer uma camada de abstração de alto nível sobre esquemas JSON complexos e ficheiros OpenAPI. O idioma gera automaticamente as configurações e os ficheiros de manifesto necessários, reduzindo o tempo de desenvolvimento e minimizando os erros. Com o seu rico suporte do IntelliSense, a segurança do tipo e a validação abrangente, o TypeSpec capacita os programadores a concentrarem-se na criação de experiências inovadoras com tecnologia de IA em vez de lutar com detalhes de configuração.

Segurança do tipo e experiência de programador

O TypeSpec para Microsoft 365 Copilot fornece uma experiência de desenvolvimento fortemente digitada que deteta erros no tempo de compilação em vez de runtime. A linguagem inclui a verificação abrangente de tipos para todas as construções específicas de Microsoft 365 Copilot, garantindo que os agentes declarativos e os plug-ins da API estão corretamente configurados antes da implementação. Este tipo de segurança estende-se a todos os aspetos da definição do agente, desde metadados básicos a configurações de capacidade complexas e definições de operações de API.

A experiência de programador é melhorada através do suporte avançado do IntelliSense no Visual Studio Code e no Visual Studio, fornecendo feedback em tempo real, conclusão automática e documentação inline. A linguagem integra-se perfeitamente com o Toolkit de Agentes do Microsoft 365, oferecendo um fluxo de trabalho de desenvolvimento completo desde a criação até à implementação. As mensagens de erro são claras e acionáveis, ajudando os programadores a identificar e resolve rapidamente problemas durante o desenvolvimento.

Criação simplificada de agentes e plug-ins

TypeSpec simplifica significativamente o processo de criação de agentes declarativos e plug-ins de API ao substituir as configurações de JSON verbosas pela sintaxe intuitiva baseada no decorador. Em vez de criar manualmente ficheiros de manifesto complexos, os programadores podem utilizar decoradores semânticos como @agent, @instructionse @capabilities para definir os respetivos agentes. Esta abordagem reduz a probabilidade de erros de configuração e torna a base de código mais viável e legível.

Ao trabalhar com superfícies de API complexas, o TypeSpec destaca-se onde os ficheiros OpenAPI tradicionais se tornam difíceis de gerir. Grandes especificações de OpenAPI com centenas de pontos finais, esquemas aninhados complexos e padrões de autenticação intrincados podem ser um desafio para criar, manter e compreender. TypeSpec aborda estes pontos de dor ao fornecer abstrações de nível superior que geram automaticamente as especificações de OpenAPI subjacentes. Os programadores podem concentrar-se na definição da lógica de negócio e do comportamento da API com a sintaxe expressiva do TypeSpec, enquanto o compilador processa os detalhes entediantes da conformidade openAPI, da validação do esquema e da gestão de referência cruzada.

O idioma fornece decoradores incorporados para todas as capacidades Microsoft 365 Copilot, incluindo a pesquisa na Web, a integração do OneDrive e do SharePoint, mensagens do Teams, intérprete de código e muito mais. Os plug-ins de API beneficiam da geração automática de especificações openAPI, em que as operações TypeSpec são convertidas de forma totalmente integrada em definições de API REST. Esta automatização elimina a necessidade de manter a documentação separada da API e garante a consistência entre as definições typeSpec e os contratos de API resultantes.

Geração e validação automáticas de manifestos

Uma das funcionalidades mais avançadas do TypeSpec para Microsoft 365 Copilot é a sua capacidade de gerar automaticamente ficheiros de manifesto válidos a partir das definições typeSpec. O compilador de linguagem analisa o código TypeSpec e produz os manifestos JSON adequados para agentes declarativos e plug-ins de API, garantindo que estão em conformidade com os requisitos de esquema mais recentes. Este processo de geração inclui uma validação abrangente, detetando erros de configuração comuns antes de chegarem à produção.

A geração automática expande-se para além da criação de manifestos básicos para incluir configurações complexas, como cartões ajustáveis, definições de autenticação e metadados específicos da capacidade. TypeSpec valida todas as referências, garante o enlace de dados adequado para cartões ajustáveis e verifica se todas as propriedades necessárias estão presentes. Esta validação ocorre durante o processo de compilação, fornecendo feedback imediato aos programadores e impedindo a implementação de configurações inválidas.

Exemplos

Seguem-se exemplos práticos que demonstram TypeSpec para Microsoft 365 Copilot sintaxe:

Agente declarativo básico

@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
}

Agente com capacidades

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 de API com operações

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;
}

Introdução

Está pronto para começar a criar com o TypeSpec para Microsoft 365 Copilot? Siga estas etapas: