Copilot Studioの 生成回答を Markdownで 返す方法|ハイパーリンクや 表を 表示させる 設定
Copilot Studioで社内向けのAIエージェントを作ると、「回答が文字だけでのっぺりしている」「参照元が[1]の注釈だけで、本文にリンクがない」「比較してほしいのに表にならない」という声をよくいただきます。この記事では、生成回答にハイパーリンクや表などのMarkdown書式を使わせる方法を、設定の手順と合わせて紹介します。
生成回答は なぜ平文で 返ってくるのか?
生成回答の見た目が整わない原因は、大きく2つあります。
| 原因 | 内容 |
|---|---|
| 書式の指示がない | 何も指定しないと、AIは短い文章で答えようとする |
| ナレッジにURLがない | AIはナレッジにないURLを知らないため、本文にリンクを書けない |
つまり、書式を具体的に指示することと、リンク先のURLをナレッジに用意しておくことの両方が必要です。
方法1:エージェントの 「指示」で 書式を 指定する
いちばん手軽で効果が大きいのが、エージェントの**概要ページにある「指示」(Instructions)**に回答の書式を書く方法です。生成オーケストレーションを有効にしている場合、この指示はナレッジからの回答にも反映されます。
# 回答の書式
- 回答はMarkdown形式で出力してください。
- 3つ以上の項目を比較・一覧にするときは、Markdownの表を使ってください。
- 参照したページがある場合は、本文中に [ページ名](URL) の形式でリンクを付けてください。
- URLはナレッジに含まれるものだけを使い、推測でURLを作らないでください。
- 見出しは「###」まで、手順は番号付きの箇条書きで書いてください。ポイントは、「Markdownで」とだけ書くのではなく、どんなときに表やリンクを使うのかを条件付きで書くことです。条件があいまいだと、表になったりならなかったりと回答が揺れます。
この指示を入れると、たとえば「有給休暇と特別休暇の違いは?」という質問に対して、次のような回答が返るようになります。
有給休暇と特別休暇の主な違いは次のとおりです。
| 項目 | 有給休暇 | 特別休暇 |
| -------- | -------- | ------------------------------ |
| 給与 | 支給あり | 種類による |
| 申請期限 | 前日まで | 事由発生後すみやかに |
| 対象 | 全社員 | 慶弔・災害などの事由がある社員 |
詳しくは[就業規則 第20条](https://example.sharepoint.com/sites/hr/rules.pdf)を確認してください。方法2:生成型の 回答ノードに カスタム指示を 書く
トピックの中で**「生成型の回答」(Create generative answers)ノードを使っている場合は、ノードのプロパティにあるカスタム指示(プロンプトの変更)**にも同じ内容を書けます。
- トピックごとに書式を変えたいとき(例:手順の質問は番号付きリスト、料金の質問は表)
- 生成オーケストレーションを使わない従来の構成で作っているとき
に向いています。エージェント全体の指示と矛盾しないように、共通の書式はエージェントの指示に、トピック固有の書式はノードにと分けると管理しやすくなります。
方法3:回答を 変数に 保存してから 送信する
指示だけでは表示を安定させきれない場合は、生成した回答をいったん変数に保存し、自分で送信する方法があります。
生成型の回答ノード
・詳細設定「メッセージを送信する」をオフ
・生成された回答を変数(例:Topic.Answer)に保存
↓
条件:Topic.Answer が空ではないか?
├ はい → メッセージノードで Topic.Answer を送信(前後に定型文を付けてもよい)
└ いいえ → 「該当する情報が見つかりませんでした」と送信この形にすると、次のようなことができます。
- 回答の前後に、問い合わせ窓口へのリンクなど決まった文面を必ず付ける
- 回答が空だったときのメッセージを自分で決める
ハイパーリンクを 正しく 出すコツは?
リンクさせたい URLを ナレッジに 書いて おく
生成回答はナレッジの内容をもとに作られるため、ナレッジにないURLは基本的に出てきません。SharePointのページやPDFにリンクさせたい場合は、ナレッジの文書の中に「詳しくは○○(URL)」のようにURLを書いておくと、回答にリンクが含まれやすくなります。
メタデータを 使ってリンクを 書かせる
ドキュメントのタイトルやURLなどのメタデータを使ってリンクを書かせたいときは、[{}]({}) の形を指示に書いておくと、Markdownのリンクとして出力されやすくなります。[] の中の {} に表示する文字(タイトル)、() の中の {} にURLが入るイメージです。
- 参照したドキュメントは、[{ドキュメントのタイトル}]({ドキュメントのURL}) の形式でリンクにしてください。方法3のように変数を使ってメッセージノードで送信する場合も同じで、変数を [{Topic.Title}]({Topic.Url}) のように並べれば、タイトルをクリックするとURLが開くリンクになります。
推測の URLを 作らせない
AIは、もっともらしいURLを作ってしまうことがあります。指示に**「ナレッジに含まれるURLだけを使う」**と明記し、公開前にリンク先が正しいかを確認しましょう。
引用 (参照元)との 違いを 理解する
回答の下に出る「参照元」は、Copilot Studioが自動で付ける引用です。本文中のハイパーリンクとは別物なので、「本文の中で該当ページへ誘導したい」場合は指示でリンクを書かせる必要があります。
うまく いかない ときの チェックリスト
- エージェントの指示とノードのカスタム指示で、書式の指定が矛盾していないか
- 「表にする条件」「リンクを付ける条件」が具体的に書かれているか
- リンクさせたいURLがナレッジの文書に含まれているか
- 指示を変えたあと、エージェントを公開し直したか
Copilot Studioを含むPower Platform全体で何ができるかは、Power Platformとは?Power Apps・Power Automateで業務改善を始める方法で解説しています。
まとめ
- 生成回答の書式は、エージェントの「指示」で条件付きで指定するのが基本
- トピックごとに変えたいときはノードのカスタム指示、表示を固めたいときは変数に保存して送信する
- リンクはナレッジにURLを書いておき、メタデータを使うときは
[{}]({})の形で指示する
スエキチシステムでは、Copilot Studioを使った社内問い合わせエージェントの構築や、ナレッジの整備からご相談いただけます。
よくある質問
指示に書いても表で返ってこないことがあるのはなぜですか?
生成AIは指示を毎回同じように守るとは限りません。「3項目以上を比較するときは表にする」のように条件を具体的に書くと安定します。それでも揺れる場合は、回答を変数に保存してから定型のメッセージやアダプティブカードで表示する方法を検討します。
回答に含まれるURLが間違っていることはありますか?
ナレッジに含まれていないURLをAIが推測で作ってしまうことがあります。指示で「ナレッジに含まれるURLだけを使う」と明記し、リンクさせたいページのURLはナレッジの文書に書いておきましょう。
指示を変えたのに、回答の書式が変わりません。
指示を保存したあと、エージェントを公開し直しているか確認してください。テストパネルでは、以前の会話が残っていると変更前の動きになることがあるため、新しい会話を始めてから試します。
システム開発の
要件が固まっていなくても大丈夫です。まずはお気軽にご相談ください。