SKILL.md
readonlyread-only
name
typespec-create-agent
description
產生完整的 TypeSpec 宣告式代理程式,包含 Microsoft 365 Copilot 的指令、功能與對話起手式
建立 TypeSpec 宣告式代理程式
為 Microsoft 365 Copilot 建立完整的 TypeSpec 宣告式代理程式,結構如下:
需求
產生一個 main.tsp 檔案,包含:
-
代理程式宣告
- 使用
@agent裝飾器,提供描述性的名稱與說明 - 名稱不得超過 100 個字元
- 說明不得超過 1,000 個字元
- 使用
-
指令
- 使用
@instructions裝飾器,提供清晰的行為指引 - 定義代理程式的角色、專業領域與個性
- 指定代理程式該做與不該做的事項
- 保持在 8,000 個字元以內
- 使用
-
對話起手式
- 包含 2-4 個
@conversationStarter裝飾器 - 每個都有標題與範例查詢
- 多樣化,展示不同功能
- 包含 2-4 個
-
功能(根據使用者需求)
WebSearch- 用於網頁內容,可選網站範圍OneDriveAndSharePoint- 用於文件存取,可過濾 URLTeamsMessages- 用於 Teams 頻道/聊天存取Email- 用於電子郵件存取,可過濾資料夾People- 用於組織人員搜尋CodeInterpreter- 用於 Python 程式碼執行GraphicArt- 用於圖片生成GraphConnectors- 用於 Copilot 連接器內容Dataverse- 用於 Dataverse 資料存取Meetings- 用於會議內容存取
範本結構
import "@typespec/http";
import "@typespec/openapi3";
import "@microsoft/typespec-m365-copilot";
using TypeSpec.Http;
using TypeSpec.M365.Copilot.Agents;
@agent({
name: "[代理程式名稱]",
description: "[代理程式說明]"
})
@instructions("""
[關於代理程式行為、角色與指引的詳細說明]
""")
@conversationStarter(#{
title: "[起手式標題 1]",
text: "[範例查詢 1]"
})
@conversationStarter(#{
title: "[起手式標題 2]",
text: "[範例查詢 2]"
})
namespace [代理程式名稱] {
// 在此新增功能作為操作
op 功能名稱 is AgentCapabilities.[功能類型]<[參數]>;
}
最佳做法
- 使用描述性、基於角色的代理程式名稱(例如「客戶支援助理」、「研究幫手」)
- 以第二人稱撰寫指令(「你是……」)
- 具體說明代理程式的專業領域與限制
- 包含多樣的對話起手式,展示不同功能
- 僅包含代理程式實際需要的功能
- 盡可能限定功能範圍(URL、資料夾等)以獲得較佳效能
- 使用三重引號字串處理多行指令
範例
詢問使用者:
- 代理程式的目的與角色是什麼?
- 需要哪些功能?
- 應存取哪些知識來源?
- 典型的使用者互動是什麼?
然後產生完整的 TypeSpec 代理程式定義。






