TypeSpec for Microsoft 365 Copilotは、開発者がクリーンで表現力豊かな構文を使用して宣言型エージェントと API プラグインを作成できるようにする強力なドメイン固有言語 (DSL) です。 TypeSpec の基盤に基づいて構築されたこの特殊な言語は、Microsoft 365 固有のデコレーターと、Microsoft 365 Copilotを拡張するための開発プロセスを合理化する機能を提供します。 TypeSpec は、JSON マニフェスト ファイルを手動で作成する代わりに機能し、生産性と保守性を高めた開発者向けのアプローチを提供します。
Microsoft 365 Copilotの TypeSpec は、複雑な JSON スキーマと OpenAPI ファイルに対して高レベルの抽象化レイヤーを提供することで、開発者が Copilot 拡張ソリューションを構築する方法を変換します。 言語は、必要なマニフェスト ファイルと構成を自動的に生成し、開発時間を短縮し、エラーを最小限に抑えます。 豊富な IntelliSense のサポート、型の安全性、包括的な検証により、TypeSpec を使用すると、開発者は構成の詳細に取り組むのではなく、革新的な AI を活用したエクスペリエンスの構築に集中できます。
型の安全性と開発者エクスペリエンス
Microsoft 365 Copilotの TypeSpec は、実行時ではなくコンパイル時にエラーをキャッチする厳密に型指定された開発エクスペリエンスを提供します。 言語には、Microsoft 365 Copilot固有のすべてのコンストラクトに対する包括的な型チェックが含まれており、デプロイ前に宣言型エージェントと API プラグインが正しく構成されていることを確認します。 この型の安全性は、基本的なメタデータから複雑な機能構成や API 操作の定義まで、エージェント定義のすべての側面にまで及びます。
開発者エクスペリエンスは、Visual Studio Code と Visual Studio での豊富な IntelliSense サポートによって強化され、リアルタイムのフィードバック、自動完了、インライン ドキュメントが提供されます。 この言語は Microsoft 365 Agents Toolkit とシームレスに統合され、作成からデプロイまでの完全な開発ワークフローが提供されます。 エラー メッセージは明確で実用的であり、開発者が開発中に問題をすばやく特定して解決するのに役立ちます。
簡略化されたエージェントとプラグインの作成
TypeSpec は、詳細な JSON 構成を直感的なデコレーターベースの構文に置き換えることで、宣言型エージェントと API プラグインを作成するプロセスを大幅に簡素化します。 開発者は、複雑なマニフェスト ファイルを手動で作成する代わりに、 @agent、 @instructions、 @capabilities などのセマンティック デコレーターを使用してエージェントを定義できます。 この方法により、構成エラーの可能性が減り、コードベースの保守性と読みやすくなります。
複雑な API サーフェスを操作する場合、TypeSpec は、従来の OpenAPI ファイルが扱いにくく、管理が困難になる場合に優れています。 数百のエンドポイント、複雑な入れ子になったスキーマ、複雑な認証パターンを備えた大規模な OpenAPI 仕様は、作成、維持、理解が困難な場合があります。 TypeSpec は、基になる OpenAPI 仕様を自動的に生成する高度な抽象化を提供することで、これらの問題点に対処します。 開発者は、TypeSpec の表現力豊かな構文を使用してビジネス ロジックと API の動作を定義することに集中できます。一方、コンパイラは OpenAPI コンプライアンス、スキーマ検証、クロスリファレンス管理の面倒な詳細を処理します。
この言語には、Web 検索、OneDrive と SharePoint の統合、Teams メッセージ、コード インタープリターなど、すべてのMicrosoft 365 Copilot機能に組み込みのデコレーターが用意されています。 API プラグインは、TypeSpec 操作がシームレスに REST API 定義に変換される OpenAPI 仕様の自動生成の恩恵を受けます。 この自動化により、個別の API ドキュメントを維持する必要がなくなり、TypeSpec 定義と結果の API コントラクトの整合性が確保されます。
マニフェストの自動生成と検証
TypeSpec for Microsoft 365 Copilotの最も強力な機能の 1 つは、TypeSpec 定義から有効なマニフェスト ファイルを自動的に生成できることです。 言語コンパイラは、TypeSpec コードを分析し、宣言型エージェントと API プラグインに適した JSON マニフェストを生成し、最新のスキーマ要件に準拠していることを確認します。 この生成プロセスには、包括的な検証が含まれています。運用環境に到達する前に一般的な構成エラーをキャッチします。
自動生成は、基本的なマニフェスト作成を超えて拡張され、アダプティブ カード、認証設定、機能固有のメタデータなどの複雑な構成が含まれます。 TypeSpec は、すべての参照を検証し、アダプティブ カードに適切なデータ バインディングを確保し、必要なすべてのプロパティが存在することを確認します。 この検証は、ビルド プロセス中に発生し、開発者に即座にフィードバックを提供し、無効な構成のデプロイを防ぎます。
例
Microsoft 365 Copilot構文の TypeSpec を示す実用的な例を次に示します。
基本的な宣言型エージェント
@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
}
機能を持つエージェント
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;
}
操作を含む API プラグイン
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;
}
作業の開始
TypeSpec for Microsoft 365 Copilotでビルドを開始する準備はできましたか? 次の手順を実行します。
- デコレーターについて学ぶ - @agent、@instructions、@capabilitiesなど、すべてのMicrosoft 365 Copilotデコレーターの包括的なリファレンス
- 機能について説明する - Web 検索、OneDrive 統合、Teams メッセージ、コード インタープリターなどのエージェント機能の詳細なガイド
- 認証について - TypeSpec ベースのエージェントとプラグインの認証パターンとセキュリティ構成について
- TypeSpec を使用して宣言型エージェントを構築する - TypeSpec と Microsoft 365 Agents Toolkit を使用して宣言型エージェントを作成するためのステップ バイ ステップ チュートリアル
- TypeSpec を使用して API プラグインをビルド する - REST 操作、アダプティブ カード、認証を使用して API プラグインを作成するための完全なガイド
- サンプルから始める - コミュニティが提供するサンプルからインスピレーションを得ることができます。
関連コンテンツ
- Microsoft 365 Agents Toolkit - Copilot エージェントを構築するための公式開発ツールキット
- TypeSpec 言語ドキュメント - 公式の TypeSpec 言語の仕様とガイド