【Microsoft×生成AI連載】Microsoft Copilot StudioのGitHub Copilotハーネスでスキルを使ってみた

GitHub Copilotハーネスとは、複雑なビジネスプロセスを完結させる、推論を重視したエージェントやワークフローの実行基盤です。Microsoft Copilot Studio(以下、Copilot Studio)では、新しいエクスペリエンスで作成したエージェントから利用できます。

今回は、Copilot StudioのGitHub Copilotハーネスでスキルを使用するエージェントを作成し、フローチャートを生成します。

Copilot Studioに興味がある方、普段から利用されているがGitHub Copilotハーネスはこれからという方など、さまざまな方に読んでいただきたい記事となっておりますので、ぜひご覧ください。

※この記事の情報は2026年8月1日時点のものです。

これまでの連載

これまでの連載記事一覧はこちらの記事にまとめておりますので、過去の連載を確認されたい方はこちらの記載をご参照ください。

blog.jbs.co.jp

GitHub Copilotハーネスとは

ハーネスとは、裏側で実際の処理を実行する「実行基盤」を指し、Copilot Studioで作成したエージェントはこのハーネス上で動作します。従来のエージェントと新しいエージェントでハーネスが異なるため、それらを分類する新しい考え方です。

GitHub Copilotハーネスは推論を多く必要とする処理や、複数ステップにわたる作業、複雑なビジネスプロセスに適したハーネスです。

Copilot Studioで「新しいエクスペリエンス」でエージェントを作成するとGitHub Copilotハーネスになります。一方で、「新しいエクスペリエンス」ではなく、従来の画面で作成したエージェントはStandardハーネスになります。

詳細は下記をご参照ください。

参考:ハーネスを選びましょう - Microsoft Copilot Studio | Microsoft Learn

スキルの機能

スキルとは、エージェントの機能を拡張するための指示やロジックをまとめたものです。Copilot Studioでは、GitHub Copilotハーネスを選択することでスキルを利用する事が出来ます。

スキルは、以下のいずれかの形式で作成できます。

  1. 標準フォーマット
    • 名前:スキルの名前を記載します。
    • 説明:スキルが何を行い、いつ実行されるべきかを記載します。
    • 指示:エージェントが実行する具体的な手順、応答形式、制約などをMarkdown形式で記載します。
  2. スキルパッケージ(ZIPファイル)
    1. SKILL.md:スキルの名前(name)、説明(description)、指示などを記載するファイルです。
    2. 任意のファイル:スクリプトやテンプレートなど、スキルが使用するファイルを格納します。

エージェントはスキルを使用することで、特定の状況に応じて、定義された手順に従った処理を実行できるようになります。

実装

今回は、エージェントを使ってフローチャートを生成します。イメージに近いフローチャートを作成するために、スキルを活用して、完成イメージや処理の順序を指示していきます。作成対象の例としては、エージェントのソリューションファイル(ソースコード)を使用します。

生成したフローチャートは、PowerPointファイルとして出力します。

エージェントの処理は、以下の流れを想定しています。

利用者から入力を受け取る
          ↓
フロー図のスタイルを決定する
          ↓
ソースコードを解析する
          ↓
フロー図用に情報を整理する
          ↓
必要なアイコンを準備する
          ↓
ベースファイルからPowerPointを生成する
          ↓
生成結果を確認・調整する
          ↓
完成したPowerPointを利用者へ提示する

前提条件

本記事の手順を進めるには、以下の条件を満たしていることを確認してください。

  • 作成したいフローチャートの参考画像が用意されていること
    • 参考画像がない場合でも、フローチャートは生成できます
  • PowerPointのスライドマスタが設定されたファイルが用意されていること
    • ファイルがない場合は、標準のPowerPointファイルを使用します

GitHub Copilotハーネスのエージェントの作成

Copilot Studio(https://copilotstudio.microsoft.com/)を開き、新しい Copilot Studio エクスペリエンスで「今すぐ試す」を押します。

エージェント画面で「New agent」をクリックします。

エージェント名を設定します。

「設定」を押します。

「Primary language」で「Japanese」を選択します。

スキルの追加

次に、フローチャートを作成するためのスキルを準備します。

今回はスキルパッケージ(ZIPファイル)を使用します。

スキルパッケージ(ZIPファイル)の構成
SKILL.zip
├─ SKILL.md
└─ assets
   ├─ ベースファイル.pptx
   ├─ icons
   │  ├─ CopilotStudio_scalable.svg
   │  ├─ sharepoint.png
   │  └─ teams.png
   └─ reference
      ├─ 参考_フロー図_01.png
      ├─ 参考_フロー図_02.png
      ├─ 参考_フロー図_03.png
      ├─ 参考_フロー図_04.png
      └─ 参考_フロー図_sample.pdf

各ファイルの役割は、以下のとおりです。

  • SKILL.md
      • 役割:スキルの実行条件や処理内容を定義
      • 例:
    ---
    name: flowchart-pptx
    description: >-
      ソースコードからPowerPoint形式のフロー図を生成するスキル。
    
      単一のトピックや業務プロセスは、原則として1枚のフロー図にまとめる。
      複数のボット、アプリ、製品、またはシステムが含まれる場合は、主要な要素ごとにスライドを分けて出力する。
    
      実装者向けの詳細なフロー図と、処理内容を平易な言葉で表現した非エンジニア向けのフロー図に対応する。
    
      各ノードにはSVGまたはPNG形式のアイコンを設定できる。
      Microsoft公式アイコン、スキル同梱アイコン、または利用者が指定した画像を使用できる。
    
      必ず`ベースファイル.pptx`のスライドマスタと指定されたスライドレイアウトを使用する。
    
      次のような依頼に使用する。
    
      - 「フロー図を作って」
      - 「アイコン付きのフロー図にして」
      - 「YAMLをフロー図にして」
      - 「業務プロセスをフロー図にして」
      - 「Copilot Studioのトピックをフローチャートにして」
      - 「ソースコードのフロー図を作って」
      - 「エージェントの構成図にして」
      - 「トピックごとの処理を横並びにして」
      - 「複数のボットをそれぞれスライドにして」
      - 「参考画像のような見た目で作って」
    ---
    
    # PowerPointフロー図の作成手順
    
    次の順番で処理する。
    
    1. スタイルを選択する
    2. デザイン定義と参考デザインを確認する
    3. 入力内容を解析してJSONスペックを作成する
    4. 必要なアイコンを準備する
    5. PowerPointを生成する
    6. 生成結果を確認して調整する
    
    ---
    
    ## 1. スタイルを選択する
    
    利用者がスタイルを明示していない場合は、
    PowerPointを生成する前に次の質問を返す。
    
    > 作成するフロー図のスタイルを選択してください。
    >
    > **スタイルA:縦型フロー図(詳細向け)**
    >
    > 1つのトピックや業務プロセスを、
    > 開始から終了まで上から下へ表現します。
    >
    > **スタイルB:横方向の列型フロー図(全体像向け)**
    >
    > 複数のトピック、フロー、MCPサーバーなどを
    > 横方向の列として表現します。
    >
    > **AまたはBを指定してください。**
    
    ### スタイル選択ルール
    
    - スタイルが指定済みの場合は再質問しない。
    - 「縦型」「1つの処理を詳しく」はスタイルAとして扱う。
    - 「全体構成」「横並び」「複数ボット」はスタイルBとして扱う。
    - 適切なスタイルを推奨できる場合は、理由とともに提示する。
    - 判断できない場合は利用者に選択を求める。
    - 参考画像やベースPowerPointが添付されていても、スタイルが不明な場合は先にスタイルを確認する。
    
    ---
    
    ## 2. デザイン定義と参考デザインを確認する
    
    利用者が参考画像、参考PDF、または参考PowerPointを添付している場合は、そのファイルを優先する。
    
    参考デザインから次の項目を分析する。
    
    - スライド全体の配色
    - 図形の種類、位置、大きさ
    - 図形間の余白
    - コンテナの位置と大きさ
    - フォントとフォントサイズ
    - 線の太さ
    - 矢印の種類と方向
    - アイコンの種類と配置
    - タイトルの位置
    - 凡例の位置
    - 角丸の大きさ
    
    分析した特徴は、可能な範囲で出力へ反映する。
    
    ---
    
    # スタイルA
    
    ## 3-A. 概要
    
    スタイルAは、1つのトピックまたは業務プロセスを開始から終了まで上から下へ配置する縦型フロー図とする。
    フロー図本体は原則として1枚にまとめる。
    
    `title_slide`がある場合は、別途タイトルスライドを追加する。
    
    - 表紙なし:フロー図本体1枚
    - 表紙あり:タイトルスライド1枚+フロー図本体1枚
    
    ## 3-A-1. 見た目の定義
    
    - 本流をスライド中央に配置する。
    - 開始から終了までを縦方向に配置する。
    - 条件分岐はひし形で表現する。
    - 分岐先は本流の左右に配置する。
    - ノード間を矢印で接続する。
    - アイコンはカードの左側に配置する。
    - テキストはアイコンの右側に配置する。
    - アイコンの有無に応じてテキスト領域を調整する。
    - 日本語フォントにはMeiryoを使用する。
    - 図形、文字、矢印を重ねない。
    - フロー図本体を複数スライドへ分割しない。
    
    
    ---
    
    # スタイルB
    
    ## 3-B. 概要
    
    スタイルBは、エージェント全体を解析し、トピック、MCPサーバー、クラウドフローなどを横方向の列として表現する構成図とする。
    複数のボット、アプリ、製品、またはシステムがある場合は、それぞれを「主要な要素」として識別する。
    主要な要素1つにつき、1枚のスライドを作成する。
    
    ## 3-B-1. 見た目の定義
    
    - スライド左側にトリガーを配置する。
    - トリガーに起点となるサービスのアイコンを配置する。
    - トリガー付近に対象エージェントのアイコンを配置する。
    - 機能上のまとまりを横方向の列として配置する。
    - 各列の上部に列ヘッダーを配置する。
    - 処理カードを各列内で上から下へ配置する。
    - 処理カード間を下向き矢印で接続する。
    - 実行順序が明確な場合は列間を右向き矢印で接続する。
    - 必要に応じて「呼び出し」「結果返信」を表示する。
    - スライド右上に凡例を配置する。
    - スライド下部中央に主要な要素の名前を配置する。
    - 日本語フォントにはMeiryoを使用する。
    
    ### 実装者向け
    
    - 変数名、フロー名、トピック名を残す。
    - 必要に応じて条件式やアクション名を残す。
    - 処理順序を確認できる技術情報を記載する。
    
    ### 非エンジニア向け
    
    - 内部IDや変数名は原則として省略する。
    - 処理の目的が分かる自然な日本語へ変更する。
    - コネクタ名よりサービス名を優先する。
    - 条件式は平易な表現へ言い換える。
    
    表現レベルを判断できない場合は、利用者に確認する。
    
    ## 3-B-4. 参考デザインの優先順位
    
    1. 利用者が添付した参考画像
    2. 利用者が添付した参考PDF
    3. 利用者が添付した参考PowerPoint
    4. `assets/reference/参考_フロー図_01.png`
    5. `assets/reference/参考_フロー図_02.png`
    6. `assets/reference/参考_フロー図_03.png`
    7. `assets/reference/参考_フロー図_04.png`
    8. `assets/reference/参考_フロー図_sample.pdf`
    9. スタイルBの既定デザイン
    
    ---
    
    ## 4. 入力内容を解析する
    
    次の入力形式に対応する。
    
    - Copilot StudioトピックYAML
    - 業務プロセスの文章説明
    - JSON形式の処理定義
    - Copilot StudioソリューションZIP
    - Power PlatformソリューションZIP
    - ソースコード
    - 既存のフロー図
    - 参考画像、PDF、PowerPoint
    
    ### ソリューションZIPの解析手順
    
    1. ZIPファイルを展開する。
    2. フォルダとファイルの一覧を確認する。
    3. ボット、アプリなどの主要な要素を検出する。
    4. 主要な要素の名前またはIDを保持する。
    5. トピック、フロー、コンポーネント、関数、メソッドなどを検出する。
    6. 主要な要素と配下要素を対応付ける。
    7. 各配下要素の実装内容を確認する。
    8. 処理内容に基づいて処理カードを作成する。
    9. 主要な要素ごとにスライド定義を作成する。
    10. すべてのスライド定義を`slides`へ格納する。
    
    ### 所属先の判定順
    
    配下要素の所属先は、次の順で判定する。
    
    1. メタデータ上の参照関係
    2. ボットID、アプリIDなどの識別子
    3. マニフェスト内の参照先
    4. フォルダ名やファイル名のプレフィックス
    5. ディレクトリ構造
    
    所属先を判定できない場合は、推測で割り当てず、
    未判定要素として記録する。
    
    別の主要な要素に属するトピックやフローを混在させない。
    
    ### 列数とカード数の目安
    
    - 1枚あたり2~4列程度とする。
    - 1列あたり最大6個程度のカードを配置する。
    - カードの説明は1~2行程度とする。
    - 冗長な説明を短くする。
    - 連続する同種処理は必要に応じて統合する。
    - 条件分岐、外部連携、利用者への応答は省略しない。
    - 主要な要素が複数ある場合はスライドを分ける。
    - 利用者の許可なく重要な処理を削除しない。
    
    ### スライド数のルール
    
    - 主要な要素1つにつき1枚作成する。
    - 検出したすべての主要な要素を出力する。
    - 主要な要素を1枚へ混在させない。
    - 主要な要素がN個の場合、`slides`もN要素にする。
    - 表紙なしの場合、総スライド数はN枚とする。
    - 表紙ありの場合、総スライド数はN+1枚とする。
    
    ---
    
    ## 5. アイコンを準備する
    
    ### 優先順位
    
    1. 利用者が指定または添付したアイコン
    2. 参考PowerPoint内のアイコン
    3. スキルに同梱されたアイコン
    4. Microsoft公式アイコン
    5. 汎用アイコン
    
    ### 使用ルール
    
    - 同じサービスには同じアイコンを使用する。
    - アイコンの縦横比を維持する。
    - 画像を引き伸ばさない。
    - 背景が不要な場合は透過画像を使用する。
    - 使用可能な場合はSVGを優先する。
    - SVGを扱えない場合は透過PNGへ変換する。
    - 低解像度の画像を過度に拡大しない。
    - アイコンがない場合は汎用アイコンで代替する。
    - 代替アイコンを使用した場合は利用者へ伝える。
    
    ---
    
    ## 6. PowerPointを生成する
    
    ### ベースファイルの使用ルール
    
    - 必ず`ベースファイル.pptx`を使用する。
    - スライドマスタとテーマを保持する。
    - ページサイズと背景を保持する。
    - タイトルスライドには`1_タイトルスライド`を使用する。
    - フロー図本体には`11_空白_A`を使用する。
    - 日本語フォントにはMeiryoを使用する。
    - 指定レイアウトがない場合は利用者へ伝える。
    - 類似レイアウトへ勝手に置き換えない。
    
    ### 出力ルール
    
    - `title_slide`がある場合は表紙を追加する。
    - スタイルAでは`diagram`を1枚へ描画する。
    - スタイルBでは`slides`の各要素を1枚へ描画する。
    - JSONスペックの順序を維持する。
    - 図形、文字、アイコン、矢印を重ねない。
    - テキストを図形の枠内に収める。
    - 参考デザインの特徴を可能な範囲で反映する。
    
    ---
    
    ## 7. 生成結果を確認する
    
    PowerPoint生成後は、ファイルを開き、
    各スライドを画像として目視確認する。
    
    ### 共通確認項目
    
    - PowerPointが正常に開ける。
    - ファイルが破損していない。
    - スライドマスタが保持されている。
    - 指定されたレイアウトが使用されている。
    - Meiryoが使用されている。
    - 文字化けがない。
    - 文字が枠外にはみ出していない。
    - 図形、文字、アイコンが重なっていない。
    - 矢印が文字や図形と重なっていない。
    - アイコンが欠けていない。
    - アイコンの縦横比が崩れていない。
    - タイトルと凡例の位置が適切である。
    
    ### スタイルAの確認項目
    
    - 本流が中央に配置されている。
    - 処理が上から下へ自然に流れている。
    - 開始ノードが最上部にある。
    - 終了ノードが終端にある。
    - 条件分岐がひし形になっている。
    - 分岐ラベルが読みやすい。
    - 分岐線が図形や文字と交差していない。
    - フロー図本体が1枚に収まっている。
    
    ### スタイルBの確認項目
    
    - すべての主要な要素が出力されている。
    - 主要な要素数と図スライド数が一致している。
    - 表紙ありの場合は総スライド数がN+1枚である。
    - 各`container_title`が一意である。
    - 別の主要な要素のトピックが混在していない。
    - トリガーとエージェントの位置が適切である。
    - 列が横方向に正しく配置されている。
    - 処理カードが列内に収まっている。
    - 列ヘッダーとカードが重なっていない。
    - 凡例が他の図形と重なっていない。
    - 主要な要素の名前が下部中央に表示されている。
    
    ### 問題がある場合の調整順
    
    1. 処理カードの`lines`を短くする。
    2. 詳細を省き、目的が分かる表現へ要約する。
    3. 連続する同種処理を統合する。
    4. 不要な補足を削除する。
    5. 列幅と列間隔を調整する。
    6. カードの高さと間隔を調整する。
    7. アイコンの大きさと位置を調整する。
    8. 矢印の経路を調整する。
    9. フォントサイズを調整する。
    10. SVGを透過PNGへ再変換する。
    11. 主要な要素数とスライド数を再確認する。
    
    フォントサイズの縮小は最後に実施し、
    判読性を損なう大きさにはしない。
    
    調整後はPowerPointを再生成し、再度目視確認する。
    
    ---
    
    ## 8. 最終回答
    
    すべての確認が完了した後、
    最終版のPowerPointを利用者へ提示する。
    
    最終回答には次の情報を記載する。
    
    - 生成したPowerPointのファイル名
    - 使用したスタイル
    - 作成したスライド数
    - 検出した主要な要素数
    - 使用した参考デザイン
    - 代替アイコンの有無
    - 解析できなかった要素
    - 所属先を判定できなかった要素
  •  assets/ベースファイル.pptx
    • 役割:スライドマスタを提供
  • assets/icons
    • 役割:スライドで利用するアイコン画像
  • assets/reference
    • 役割:フロー図の参考画像
    • 例:

スキルパッケージ(ZIPファイル)の作成

SKILL.mdとassetsフォルダーを選択し、ZIP形式で圧縮します。

スキルパッケージ(ZIPファイル)の追加

作成したエージェントを開き、「Skills」を押します。

「Upload a skill」を選択し、作成したスキルパッケージ(ZIPファイル)をアップロードします。

追加したスキルが表示されます。

テスト実行

実際にソリューションファイルをアップロードしてフローチャートを作成します。

今回は、以前作成したエージェントのソリューションファイルを使用します。

使用するエージェントの詳細については、以下の記事をご覧ください。

【Microsoft×生成AI連載】【Agents】Microsoft Copilot Studioで検索対象を自動で変更する実装をしてみた - JBS Tech Blog

ソリューションファイルの準備

作成したエージェントのソリューションファイルを用意する手順を記載します。

Copilot Studioのホーム画面で「Solutions」を押します。

「+新しいソリューション」を押して、任意の表示名、名前、公開元を設定して「作成」を押します。

「既存の追加」から「エージェント」を押します。

該当のエージェントを選択して、「追加」を押します。

ソリューション一覧で作成したソリューションを選択します。その状態で「ソリューションをエクスポート」を押して、「次へ」を押します。

「アンマネージド」を選択して、「エクスポート」を押します。

エクスポートが完了すると、「ダウンロード」が表示されるため、ここからダウンロードします。ダウンロードしたファイルがソリューションファイルです。

テスト実行

「Preview」タブに切り替え、ソリューションファイルを添付して、以下のメッセージを送信します。

フローチャートを作成して下さい

作成するフローチャートのスタイルを選択して送信します。

処理が完了すると、作成されたPowerPointファイルのダウンロードボタンが表示されます。

ダウンロードしたファイルを開くと、次のフローチャートが作成されていることを確認できます。

スキルを使用しない場合のフローチャート生成結果

比較のため、スキルを追加する前に実行した結果を紹介します。

使用したソリューションファイルと指示内容は、スキルを使用した場合と同じです。

実行すると、次の結果が返されました。

フローチャートの画像も以下の通りです。

フォローチャート自体はスキル無しでも作成してくれますが、スキルを使うことでフォーマットに沿った作成や粒度の調整、見た目の変更が可能です。

利用シーンとメリット、注意点

利用シーン

  • 設計書のフローチャート作成
    • ソースコードの処理の流れを視覚化し、設計書に掲載するフローチャートのドラフトを作成できます。
    • 参考画像や指示内容を変更することで、用途に応じたフローチャートを作成できます。
  • 社内フォーマットに沿った資料の作成
    • 社内フォーマットを設定したPowerPointファイルを参照させることで、指定のフォーマットに沿った資料を作成できます。

メリット

設計書や説明資料の作成にかかる工数を削減できます。

注意点

  • エージェントが作成した資料は、内容やアイコンに誤りがないか、必ず人が確認する必要があります。
  • GitHub Copilotハーネスのクレジット課金の仕組みは、従来のエージェント(Standardハーネス)とは異なります。
    • Microsoft 365 Copilotライセンスの有無にかかわらず、生成AIを使用する処理は課金対象となります。
    • エージェントの利用時だけでなく、開発時に生成AIを使用して実装する場合や、「Preview」画面でテストを実行する場合も課金対象となります。

まとめ

今回は、GitHub Copilotハーネスのエージェントで、フローチャートを作成しました。

GitHub Copilotハーネスは、従来のStandardハーネスとは仕組みが大きく異なります。中でも、ファイルの取り扱いに関する機能が大幅に強化されていると感じました。さらに、スキルにスクリプトやテンプレートを組み込めるため、より幅広い実装が可能になっています。

おまけ(Copilot Chatによる本記事の要約)

概要

Microsoft Copilot StudioのGitHub Copilotハーネスでスキルを利用し、エージェントのソリューションファイルからフローチャートを生成して、PowerPoint形式で出力する方法を紹介しています。

 

スキルの特徴

スキルは、エージェントに実行させる手順、応答形式、制約などをまとめた機能です。画面上で名前・説明・指示を設定する標準フォーマットと、SKILL.md、スクリプト、テンプレート、画像などをまとめたZIP形式のスキルパッケージを利用できます。

 

今回の実装

SKILL.md、ベースとなるPowerPoint、アイコン、参考画像をZIPファイルにまとめ、Copilot Studioのエージェントへアップロードします。エージェントは入力されたソリューションやソースコードを解析し、処理内容を整理したうえでフローチャートを生成します。

 

フローチャートのスタイル

1つの処理を上から下へ詳しく表す縦型の「スタイルA」と、トピック、MCPサーバー、クラウドフローなどを横方向の列で表す「スタイルB」に対応しています。参考画像やPowerPointのスライドマスタを利用することで、用途や社内フォーマットに合わせた資料を作成できます。

 

生成と確認

エージェントは解析結果をJSON形式のスペックに整理し、必要なアイコンを準備してPowerPointを生成します。生成後は、スライドマスタ、レイアウト、文字化け、図形や矢印の重なり、アイコンの表示、スライド数などを確認し、問題があれば調整します。

 

利用シーンとメリット

ソースコードや業務プロセスを可視化した設計書のドラフト作成や、社内フォーマットに沿った説明資料の作成に活用できます。資料作成の手順をスキルとして標準化できるため、作業工数の削減も期待できます。

 

注意点

生成された資料は、内容やアイコンに誤りがないか人による確認が必要です。また、GitHub Copilotハーネスでは、利用時だけでなく、開発やプレビューで生成AIを使用する場合も課金対象となります。

 

まとめ

GitHub Copilotハーネスは、従来のStandardハーネスと比べてファイルの取り扱いが強化されています。スキルにスクリプト、テンプレート、参考資料などを含められるため、フローチャート生成をはじめとする幅広い業務を、一定の手順と品質基準に沿って自動化できます。

執筆担当者プロフィール
寺澤 滉

寺澤 滉(日本ビジネスシステムズ株式会社)

Csol本部 DAPf部所属。AI関連(Azure OpenAIやCopilot Studioなど)を勉強中です。

担当記事一覧