SQL Server Management StudioのGitHub Copilotでエージェント スキルを使用する

エージェント スキルは、特定のタスクの実行方法をGitHub Copilotに指示する再利用可能な一連の命令です。 各スキルは、1 回定義するマークダウン ファイルであり、時間を節約し、ワークフロー全体で一貫した動作を保証します。 スキルは、単一の巨大なプロンプトではなく、ランブックのようなものと捉えてください。 Agent モード (プレビュー) を使用すると、Copilotは、求めている内容に基づいて関連するスキルを自動的に検出して適用します。

SQL Server Management Studio (SSMS) のGitHub Copilot エージェント モードは現在プレビュー段階です。

すべての応答に対して一般的な設定を行う カスタム命令とは異なり、スキルは、すべてのエージェントが検出して使用できる、タスク固有のガイダンスを提供します。 スキルを 1 回定義すると、セッション間およびチーム全体で一貫して適用されます。

Prerequisites

  • AI Assistance ワークロードを含む SSMS 22.7 以降のバージョン。
  • Copilot アクセス権を持つGitHub アカウント。 または、SQL Server Management Studio

エージェントスキルのしくみ

エージェント モードを使用する場合、Copilotはリポジトリとユーザー プロファイルの既知のスキルの場所をスキャンします。 スキルの説明が要求の意図と一致する場合、Copilotはスキルをアクティブ化し、その指示を追加のコンテキストとして適用します。 スキルがアクティブになると、その名前がチャットに表示され、適用されていることを確認できます。

Copilotは、各スキルのフロントマッターの description フィールドに基づいて、アクティブ化するスキルを決定します。 明確でキーワードが豊富な説明は、Copilot がスキルの関連性を判断するのに役立ちます。

スキルの場所

Copilotは、次の場所からスキルを検出します。

Scope 経路 詳細情報
ワークスペース (チームと共有) .github/skills/.claude/skills/.agents/skills/ リポジトリ ルートに格納されます。 すべてのチーム メンバーが同じスキルを取得できるように、ソース管理にコミットしました。
個人用 (プロファイルのみ) ~/.copilot/skills/~/.claude/skills/~/.agents/skills/ すべてのプロジェクトに適用されます。 リポジトリにコミットされていません。

ワークスペースのスキルは、プロジェクト固有の規則に優先されます。 個人のスキルは、プロジェクト間で一緒に移動するワークフローや設定に役立ちます。

スキルを作成する

SSMS の [スキル ] パネルから、またはファイル システムで手動でスキルを作成できます。

[スキル] パネルからスキルを作成する

  1. Copilot Chat ウィンドウで、Tools アイコンを選択します。
  2. [スキル] パネルを選択します。
  3. [スキル] パネルで、[ + ] ボタンを選択します。
  4. スコープを選択します: ワークスペーススキル (リポジトリに保存されている) または個人用スキル (ユーザープロファイルに保存されている)。
  5. スキルの名前を入力します。 名前はディレクトリ名になり、小文字、数字、ハイフンのみを使用する必要があります。
  6. SSMS は、新しいスキル ディレクトリに SKILL.md テンプレートを生成します。 テンプレートを編集し、指示をファイルに追加します。

スキルを手動で作成する

  1. 適切な場所にスキル ディレクトリを作成します。 ワークスペース スキルの場合は、リポジトリのルートに .github/skills/ を作成します。
  2. スキルのサブディレクトリを作成します。 各スキルには、独自のディレクトリが必要です。 たとえば、 .github/skills/tsql-style-guide/と指定します。
  3. スキル ディレクトリ内に SKILL.md ファイルを作成します。
  4. 必要に応じて、スクリプト、参照ドキュメント、出力例などのサポート ファイルを追加します。

スキル ディレクトリ構造

your-repo/
└── .github/
    └── skills/
        └── index-verification/
        │   ├── SKILL.md          # Required: metadata and instructions
        │   └── references/       # Optional: supplementary documentation
        └── agent-job-failure-triage/
            ├── SKILL.md
            └── examples/         # Optional: example scripts

SKILL.md 形式

SKILL.md ファイルには、YAML frontmatter とそれに続く Markdown 命令が含まれている必要があります。 frontmatter は、スキルの検出とアクティブ化に使用Copilotメタデータを提供します。

Frontmatter プロパティ

財産 必須 Description
name イエス 小文字、数字、ハイフンのみ。 親ディレクトリ名と一致する必要があります。 最大 64 文字。
description イエス スキルが実行する内容と、それを使用するタイミングについて説明します。 最大 1,024 文字。 スキルが関連するタイミングを通知する特定のキーワードを含めます。
license No スキルにバンドルされているライセンス名またはライセンス ファイルへの参照。
compatibility No 目的の製品や必要なシステム機能などの環境要件。
metadata No その他のメタデータ用の任意のキーと値のペア。
allowed-tools No スキルが使用することが事前に承認されているツール名のスペース区切りの一覧。

[スキル] パネルからスキルを管理する

Copilot Chat ウィンドウで Tools アイコンを選択して、Skills パネルを開きます。 パネルには、現在のセッションで Copilot が検出したすべてのスキルが表示されます。

パネルから、次のことができます。

  • 編集:SKILL.mdメニューからエディターでスキルの...ファイルを直接開きます。
  • ファイルの場所を開く: ディスク上のスキル ディレクトリにジャンプします。
  • 検索: 名前またはキーワードでスキルをフィルター処理します。

このパネルには、スキル構成エラーの診断も表示されるため、問題をすばやく特定して修正できます。

効果的なスキルを書く際のヒント

  • SKILL.md簡潔に保つ: 300 行以下を目指します。 詳細な参照資料を関連するサブディレクトリ内の個別のファイルに移動します。
  • キーワード豊富な説明を書き込む: Copilotでは、description を使用してスキルをアクティブ化するタイミングを決定します。 スキルが適用される特定のタスク、オブジェクト、シナリオを含めます。
  • 手順に番号付き手順を使用する: ステップ バイ ステップの手順は、散文よりもモデルが簡単に従うことができます。
  • 期待される出力の例を含めます。サンプル コード、テーブル形式、またはコメント ブロックを表示して、モデルが "完了" の様子を認識できるようにします。
  • 明示的な制限を設定する: 何を しない かをスキルに指示します。 たとえば、"書き込みボリュームを最初に報告せずに、1,000 万行を超えるテーブルにインデックスを削除することはお勧めしません"。
  • リファレンスサポート資料: 関連するコンテンツとスクリプトを references\scripts\、または examples\ 内のファイルに格納し、スキルの特定のコンテンツを指します。

SQL スキルの例

次の例では、一般的なSQL Server タスクのスキルを記述する方法を示します。 それらを開始点として使用し、チームの慣例に合わせて調整します。

インデックスの検証

重複を避けるために、新しいインデックスを推奨する前に、既存のインデックスを確認してください。

---
name: index-verification
description: Use when an index recommendation has been generated and must be validated before implementation. Verifies workload benefit, redundancy, write overhead, storage impact, and existing index coverage.
---

# Index Verification

## Use this skill when

- A missing index recommendation exists
- An agent generated an index recommendation
- Query tuning suggests adding an index
- A user asks whether an index should be created

## Never assume

- Missing index DMVs are recommendations, not requirements.
- Do not recommend index creation until validation is complete.

## Verification Checklist

### 1. Check Existing Indexes

Determine whether:

- An equivalent index already exists
- A wider index already covers the workload
- Included columns already satisfy the query
- The recommendation duplicates another recommendation

### 2. Estimate Read Benefit

Evaluate:

- Query execution frequency
- Current execution cost
- Expected seek/selectivity improvement
- Number of affected queries

### 3. Evaluate Write Cost

Determine:

- Insert impact
- Update impact
- Delete impact
- Additional maintenance cost

### 4. Evaluate Storage Impact

Estimate:

- Index size on disk
- Memory pressure
- Replication impact

### 5. Make Recommendation

Return one of:

- Create index
- Modify existing index
- Consolidate with existing recommendation
- Reject recommendation

## Avoid

- Blindly trusting missing-index DMVs
- Creating overlapping indexes
- Recommending indexes for one-off queries
- Ignoring write-heavy workloads

## Output Format

Format output as a table: index name, columns, type, and recommendation (create / modify / consolidate / reject).

エージェント ジョブ失敗の切り分け

失敗した SQL エージェント ジョブの履歴を分析し、根本問題に対処するための推奨事項を作成します。

---
name: agent-job-failure-triage
description: Use when an automated job, workflow, maintenance task, or agent execution fails. Determines root cause and appropriate remediation while avoiding unsafe recovery actions.
---
# Agent Job Failure Triage

## Objective

Identify root cause before attempting remediation.

## First Rule

Never retry repeatedly without understanding why the job failed.

## Investigation Order

### 1. Collect Failure Details

Gather:

- Job name
- Error message
- Start time
- End time
- Retry history

### 2. Classify Failure

Determine whether failure is:

- Resource-related
- Permission-related
- Configuration-related
- Data-related
- Dependency-related
- Other or unknown

### 3. Check Recent Changes

Investigate:

- Deployments
- Configuration changes
- Schema changes
- Security changes
- Infrastructure changes

### 4. Determine Blast Radius

Identify:

- Data modified by job
- Schema modified by job
- Affected users or departments
- Downstream jobs
- SLA impact
- Data correctness risk

## Safe Actions

- Collect logs
- Validate dependencies
- Escalate when root cause is unknown

## Unsafe Actions

- Retry job
- Disable job
- Force-completing jobs
- Disabling validation checks
- Modifying production data to "make it pass"
- Restarting the SQL Agent service