AI活用ローコード・ノーコード開発

Copilot Studioの生成回答をMarkdownで返す方法|ハイパーリンクや表を表示させる設定

  • #Copilot Studio
  • #Power Platform
  • #生成AI
  • #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はナレッジの文書に書いておきましょう。

指示を変えたのに、回答の書式が変わりません。

指示を保存したあと、エージェントを公開し直しているか確認してください。テストパネルでは、以前の会話が残っていると変更前の動きになることがあるため、新しい会話を始めてから試します。

システム開発のご相談はスエキチシステムへ

要件が固まっていなくても大丈夫です。まずはお気軽にご相談ください。

この記事を書いた会社

スエキチシステム

「企業品質を、個人価格で。」を掲げる福岡のシステム開発会社。HP制作・業務システム開発・LINE予約アプリ・AI導入支援を手がけています。 開発現場で得た知見を発信しています。

IT・システムの仕組みは、YouTubeのショート動画でも解説しています:システムのオタク