Copilotに毎回同じ手順を説明していませんか? Agent Builderの「Skills」で仕事の進め方を登録する
Copilotに会議の記録を整理してもらうとき、毎回こんな指示を書いていないでしょうか。
「議題、発言者ごとの発言、決定事項、繰越事項、タスクの順にまとめてください。タスクには担当者と期限を付けてください。記録にないことは推測せず、未定としてください」
一度ならそれほど手間ではありません。でも、会議のたびに同じことを頼むとなると、前のプロンプトを探して貼り付けたり、説明を少しずつ書き直したりすることになります。
こうした仕事の進め方を、エージェントにあらかじめ登録しておく仕組みが、Microsoft 365 CopilotのAgent Builderで設定する「Skills」です。

毎回の説明を、仕事ごとの部品にしておく。これが基本的な発想です。
この記事では、Skillsで何が変わるのか、どこから設定するのか、最初に何を試すとよいかを整理します。
※2026年9月6日時点の情報です。対象はMicrosoft 365 CopilotのAgent Builderの[構成]にある[Skills(Preview)]です。利用には、組織がMicrosoft Frontier Programに参加していることに加えて、対象となるMicrosoft 365 Copilotのライセンス、または従量課金によるアクセスが必要です。実務例は記事用に作成したもので、実際の環境での動作検証が必要です。
Skillは「この仕事をどう進めるか」をまとめた部品
Skillには、特定の作業を進めるための指示と、必要に応じた参考資料やスクリプトをまとめられます。中心になるのは、名前・説明・手順を記載した「SKILL.md」というファイルです。
例えば「会議の記録から議事録を作る」という仕事なら、次のような手順を用意します。
記録から、議題と発言者ごとの発言を読み取る。
決まったことと、持ち越しになったことを分ける。
タスクを、担当者と期限つきで書き出す。
この一連の進め方をSkillにしておけば、利用者は材料となる記録を渡し、「議事録を作って」と伝えるだけで作業を任せられます。

SKILL.mdが中心。参考資料やスクリプトは、必要な分だけ一緒に持たせます。
狙いは、毎回の説明を短くしながら、仕事の進め方をそろえやすくすることです。Microsoftの説明でも、Skillの詳しい内容は、その作業が必要になったときにだけ読み込まれるとされています。
ただし、登録しただけで必ず期待どおりの結果になるわけではありません。「どんな依頼に使うのか」と「どう処理するのか」を明確にし、出力を確かめるところまでが準備です。
なぜ手順を外に出すのか:[指示]欄は8,000文字まで
Agent Builderには、エージェント全体の方針を書く[指示]欄があります。この欄は8,000文字が上限です。あわせて、[説明]は1,000文字、ナレッジは20件までと決まっています。
これまでは、この[指示]欄の中に「この作業はこう進める」という手順を直接書くやり方が案内されていました。Microsoftは、Skillsがそのやり方を置き換えるものだと説明しています。
手順を[指示]欄に書き続けると、次の問題が起こります。
任せる仕事が増えるほど、8,000文字の上限に近づく
長く詰め込むほど、指示に従う精度が落ちる
どの仕事を頼んでも、関係のない手順まで毎回読み込まれる

[指示]には全体に共通する方針だけを残し、仕事ごとの手順はSkillに分けます。
手順をSkillに分けると、この状況が変わります。公式資料では、次の4点がメリットとして挙げられています。
必要なときだけ読み込まれる。Skillが増えても、そのとき使う分だけが渡される
複雑な指示を分解できる。品質を落とさず、8,000文字の制限にも当たらずに、長く具体的な手順を書ける
手順・参考資料・スクリプトを、ひとまとまりにして持ち運べる
スクリプトは安全な環境(サンドボックス)で実行され、ファイルの秘密度ラベルも保持される
この記事で作る議事録のSkillも、[指示]欄を短く保ったまま、仕事ごとの手順を別に持たせるための一つの形です。
「指示」「Skills」「ナレッジ」は、役割を分けて考える
設定画面には似た項目が並ぶため、「どこに何を書けばよいのか」で迷いやすいと思います。

[指示]の下に[Skills]、その下に[ナレッジ]。追加は右端の[+ Add]から。
会議の記録を扱うエージェントなら、次のように分担させると整理しやすくなります。これは設計例です。
指示:エージェント全体の基本方針
「会議の記録を扱う担当者を支援する」「日本語で簡潔に回答する」「記録にない発言や決定を作らない」といった、全体に共通する方針を書きます。
Skills:特定の仕事の進め方
「会議の記録を、議題・発言・決定事項・繰越事項・タスクへ整理する」といった、作業ごとの具体的な手順をまとめます。
ナレッジ:回答の根拠となる情報源
会議体の一覧や社内用語集など、回答を作る際に参照する資料を設定します。
公式資料でも、全体の指示には登録したSkillの用途を簡潔に示すにとどめ、詳細な手順を重複して書かないことを勧めています。また、ナレッジに置いた文書は、作成者が設定した指示として扱われる保証がありません。
なお、現時点ではSkillsと「ナレッジとして埋め込むファイル」の併用は未対応です。Skill内の参考ファイル、チャットで渡す入力、ナレッジとして埋め込むファイルは、区別して考える必要があります。
画面の表記について補足します。本記事で使用した画面では、[指示][ナレッジ][構成][プレビュー]は日本語ですが、Skillsまわりは[Skills][+ Add][Instructions][Files]と英語表記でした。この記事でも画面の表示どおりに記載します。
最初は「議事録を作る」を一つ作ってみる
最初の題材には、入力と正解のイメージがつく小さな仕事を選ぶと、結果を判断しやすくなります。
例えば、次のような架空の会議記録です。
9/3 定例(出席:田中、佐藤、鈴木)
田中:社内申請フォームの改訂案を共有。入力項目を3つ減らした。
佐藤:減らした項目のうち、部署コードは残したい。集計に使っている。
鈴木:来週の全体会議までに、現行フォームの利用状況をまとめる。
田中:部署コードを戻すかは、鈴木さんの数字を見てから決める。
次回は9/10。
この記録を、次の5項目へ整理するSkillを考えてみます。
議題
発言者ごとの発言
決定事項
繰越事項
タスク(内容・担当者・期限)
「決定事項」と「繰越事項」を分けているのには理由があります。上の記録では、入力項目を3つ減らしたことは共有された事実ですが、部署コードを戻すかどうかはまだ決まっていません。ここをまとめて「決定事項」にしてしまうと、決まっていない話が、決まったこととして次の会議に引き継がれてしまいます。
ここで大切なのは、「わかりやすくまとめる」だけで終わらせないことです。
「決定事項は記録にある表現を残す」「タスクには担当者と期限を必ず付け、記録になければ未定とする」「発言者が特定できない発言は、発言者を未確認とする」といったように、結果を見て客観的に確かめられる形にします。
また、今回の目的は議事録の作成です。案の良し悪しやタスクの妥当性は出席者が判断するものとして、Skillが担当する作業範囲を明確にしておきます。
設定方法は、自然言語で作るか、ZIPを追加するか
公式には、Agent Builderへ自然言語で作成を依頼する方法と、用意したSkillのZIPを追加する方法が案内されています。
自然言語で作ってもらう
手早く試すなら、Copilot Chatの[Agents & Skills]→[New agent]から、Agent Builderに次のように依頼します。
会議の記録から議事録を作るエージェントを作成してください。
繰り返し使う手順を、meeting-minutesというSkillとして追加してください。
入力は、利用者がチャットに貼り付ける会議の記録です。議題、発言者ごとの発言、
決定事項、繰越事項、タスクの順に整理してください。
タスクには、内容・担当者・期限を必ず付けてください。記録に書かれていない場合は「未定」とします。
決定したことと、持ち越しになったことを混ぜないでください。
決まったと読み取れる根拠が記録にない場合は、繰越事項に入れてください。
発言者が特定できない発言は、発言者を「未確認」としてください。
入力にない情報は補わず、矛盾する記述があれば確認を求めてください。
今回はスクリプトを使わず、SKILL.mdの指示だけで構成してください。依頼すると、何を作ろうとしているのかが途中で表示されます。名前の文字数制限に合わせて調整している様子なども確認できます。
これは本記事の依頼例です。返答を読むだけでなく、[構成]の[Skills]に実際に追加されているかを確認します。追加されたSkillを選び、[Instructions]の手順と[Files]の同梱ファイルを見直してから[プレビュー]で試します。
ZIPを追加する
自分でファイルを用意する場合は、次の流れです。
名前・説明・手順を記載したSKILL.mdを用意する。
必要な関連ファイルとともに、画面の案内に従ってZIPにまとめる。
[構成]→[Skills]→[Add]からZIPを追加する。
取り込まれた名前・説明・手順・ファイルを確認する。
[プレビュー]で対象の仕事を依頼する。
ZIPを作るときは、開いた最上位にSKILL.mdが来るようにまとめます。フォルダーをもう1段挟んでしまうと、SKILL.mdが見つかりません。アップロードするのは完成したZIPであり、SKILL.mdだけを単体で追加する手順ではない点にも注意してください。手順の本文は20,000文字未満に収めます。

別のSkill(アンケート集計)をZIPで追加したところ。[Files]を開くと、同梱したフォルダーがそのまま並びます。
なお、[プレビュー]ではファイルを添付できません。そのため、CSVやExcelを渡して処理させるSkillは、プレビュー画面では最後まで試せません。その場合は[作成]でエージェントを公開し、通常のチャットから動作を確認します。

上のアンケート集計Skillを公開し、CSVを渡したところ。数値はスクリプトが計算したものです。
よいSkillにするには「いつ使うか」と「情報不足のとき」を書く
SKILL.mdは、先頭に---で囲んだYAML形式のメタデータを置き、その下にMarkdown形式で手順を書きます。メタデータにはname(Skillの名前)とdescription(何をするSkillか、いつ使うか)を記載します。
短い例です。
---
name: meeting-minutes
description: 会議の記録から議事録を作るときに使う。議題、発言者ごとの発言、決定事項、繰越事項、タスク(内容・担当者・期限)を作成する。
---
# 手順
1. 記録から、議題と発言者ごとの発言を読み取る。
2. 決まったことと、持ち越しになったことを分ける。
3. タスクを、担当者と期限つきで書き出す。descriptionは単に「会議を支援する」と書くよりも、上の例のように対象の依頼と成果物を具体的に書くほうが、どんなときに動くのかがはっきりします。
さらに、実際の業務では材料がきれいにそろっているとは限りません。手順には、次のような場合の対応も入れておきます。
入力が空なら、会議の記録の提供を依頼する。
一部の情報が欠けていれば、該当項目を「未定」または「未確認」とする。
記述が矛盾していれば、どの部分が矛盾しているかを示す。
決まったと読み取れる根拠がなければ、決定事項には書かない。
この「うまく進まない場合の扱い」まで書いておくと、テストで確かめる点が明確になります。
テストでは、情報がそろった記録だけでなく、短すぎる記録や矛盾のある記録もそれぞれ渡してみてください。確認したいのは、見出しがそろうことに加えて、元の発言内容がきちんと残っているか、書かれていない担当者や期限を勝手に作っていないかです。
2つ目のSkillを足して、役割を分ける
議事録が出せるようになると、次は「タスクだけを一覧にして配りたい」といった要望が出てきます。
これを1つ目のSkillに足すこともできますが、そうすると手順が長くなります。議事録だけがほしいときにも、一覧を作る手順まで一緒に読み込まれてしまいます。
そこで、2つ目のSkillとして役割を分けます。
---
name: meeting-actions
description: 会議のタスクを一覧表にするときに使う。議事録またはタスクの記述から、内容・担当者・期限・状態をそろえたCSVを作成する。
---
# 手順
1. 入力から、タスクとして書かれている項目だけを取り出す。
2. 内容・担当者・期限・状態の4項目にそろえる。担当者や期限がなければ「未定」とする。
3. 同梱のスクリプトで、期限の書き方をそろえてCSVにする。分けておけば、descriptionの違いによって適切に呼び分けられます。「議事録にして」と頼めば1つ目、「タスクを一覧にして」と頼めば2つ目が動く、という形です。
この2つ目のSkillでは、Skillの別の特長も活用しています。
参考資料を同梱する
状態の書き方(未着手・対応中・完了)をそろえたいなら、その一覧をファイルとして同梱します。毎回チャットで説明せずに済みます。
スクリプトを同梱する
「9/10」「9月10日」「来週火曜」といった期限の書き方をそろえる処理は、明確にルールが決まっています。こうした処理は、モデルにその場でコードを書かせるより、用意したスクリプトを実行させるほうが結果が安定します。
Skillが扱えるスクリプトはPythonの.pyだけではありません。公式には.js .mjs .cjs .ts .mts .sh .bashも対応と記載されています。
ここは、次の2つの仕組みを分けて考えるとわかりやすくなります。
Agent Builderの「コード インタープリター」は、Pythonによる分析やファイル作成を行う機能です。[機能]の「Create documents, charts, and code」で設定します。
一方のSkillは、その仕事に必要な手順や参考資料、あらかじめ用意したスクリプトをまとめる仕組みです。公式資料でも、用意済みのスクリプトは処理の再現性を高める手段として説明されています。
ただし、Skill内のスクリプトから外部ネットワークへ接続したり、実行時に追加パッケージをインストールしたりはできません。そのため、社内サイトからデータを取得するといったことまで、スクリプトだけで一通り任せられるわけではありません。
まずは、利用者がチャットで渡したデータの加工に範囲を絞ると、処理結果を確認しやすくなります。
手順を登録したら、同じ材料で比べてみる
Skillsを作ったら、普段の依頼と、Skillを設定したエージェントへの依頼を、同じ材料で比べてみてください。
見るポイントは、次の3つです。
毎回説明していた手順を省けたか。
必要な項目が抜けずに出力されたか。
人が直す箇所は、どこに残ったか。
Skillが2つ以上あるときは、もう1つ確認することがあります。頼んだ仕事に対して、意図したSkillが選ばれているかです。「議事録にして」と頼んだのにタスク一覧が出てくるなら、descriptionの書き分けが足りていません。
「Skillを使いました」という返答だけで判断せず、出力と元データを照合します。自分以外の人に、普段使う言葉で依頼してもらうと、説明の曖昧さにも気づきやすくなります。
プレビュー版では、1エージェントに追加できるSkillは最大8個、ZIPは最大50 MBです。また、エージェントをまたぐSkillの再利用は、現段階では未対応とされています。「繰り返し使える部品」という設計の考え方と、製品として共用できる範囲は分けて理解しておく必要があります。
最初に用意するのは、日々の仕事で繰り返している一つの手順で十分です。
議事録の作成、定例報告の下書き、文書の確認など、「いつも同じ説明をしている仕事」を一つ選ぶ。その仕事の入力、手順、出力、人が判断する箇所を書き出す。
そこまで整理できれば、Skillに何を持たせたいのかが具体的になります。
参考資料
本文で触れた仕様・上限・制限は、次の公式資料に基づいています。
Add custom skills to your declarative agent in Agent Builder (preview) — Microsoft Learn。追加手順、前提条件、上限
Build agents by using Agent Builder in Microsoft 365 Copilot — Microsoft Learn。[指示]8,000文字、[説明]1,000文字、ナレッジ20件の上限
Custom skills in declarative agents (preview) — Microsoft Learn。Skillの構成、対応ファイル、サンドボックスの制限
Write effective instructions for declarative agents — Microsoft Learn。指示とSkillの書き分け、ナレッジの扱い
Agent Skills:Specification — SKILL.mdのファイル形式の一般仕様
Add the code interpreter capability to your agent — Microsoft Learn。コード インタープリターの設定
関連記事
「最初の設定を固めて、毎回の説明をなくす」という同じ考え方で書いた記事です。
