
The typespec-create-agent skill generates a complete TypeSpec declarative agent configuration file for Microsoft 365 Copilot, including agent metadata, behavioral instructions, conversation starters, and capability declarations. It serves developers and organizations building custom Copilot agents by automating the creation of properly structured agent definitions that specify the agent's role, expertise, and available integrations with Microsoft 365 services. The skill solves the problem of manually writing and validating TypeSpec agent syntax by providing a guided generation process that ensures compliance with Copilot's agent requirements and best practices.
$ npx -y skills add github/awesome-copilot --skill typespec-create-agent --agent claude-codeInstalls into .claude/skills of the current project.
Create a complete TypeSpec declarative agent for Microsoft 365 Copilot with the following structure:
Generate a main.tsp file with:
Agent Declaration
@agent decorator with a descriptive name and descriptionInstructions
@instructions decorator with clear behavioral guidelinesConversation Starters
@conversationStarter decoratorsCapabilities (based on user needs)
WebSearch - for web content with optional site scopingOneDriveAndSharePoint - for document access with URL filteringTeamsMessages - for Teams channel/chat accessEmail - for email access with folder filteringPeople - for organization people searchCodeInterpreter - for Python code executionGraphicArt - for image generationGraphConnectors - for Copilot connector contentDataverse - for Dataverse data accessMeetings - for meeting content accessimport "@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]>;
}
Ask the user:
Then generate the complete TypeSpec agent definition.
Sponsors