コード エディターを使用してトピックの YAML を記述および編集する

トピックはコード エディターで作成・編集でき、コード エディターは YAML の使用をサポートしています。 YAML は「YAML Ain't Markup Language」の略称です。YAML は主に設定ファイルの記述に使われ、XML や JSON よりも読みやすいのが特徴です。 YAML ファイルでは、.yaml または .yml ファイル拡張子が使用されます。 YAML ファイルは、スペースやインデントを利用して、文字列・数値・ブール値・リスト・辞書などのデータ構造を表現します。

トピックからコード エディターにアクセスするには、ツールバーで () を選択し、その他 を選択してから、コード エディターを開く を選択します。

このビデオで、コード エディターで YAML を使う方法の概要をご覧ください:

重要

どの作成者でもコード エディターを使ってトピックの設定を探索できます。 開発者や上級ユーザーは、コード エディター内で設計および編集することを選択できます。 ただし、コード エディターで修正を加える際は注意が必要です。 句読点や構文の誤りは複雑なエラー メッセージを引き起こしたり、現在の会話を壊したりすることがあります。 当社の技術サポート チームはコード エディターのエラーには対応できません。 YAML の編集に慣れていない場合は、変更を加える前にトピックのコピーを作成してください。

コード エディターを使用する場合

Copilot Studio では、YAML を一から書く必要はありません。 トピック キャンバス上にオブジェクトを作成すると、YAML が自動的に生成されます。 その後、コード エディターで構成を確認して設定をよりよく理解するか、YAML に変更を加えることを選択できます。 以下はコード エディターの使用例です。

  • コード エディターでは、トピック内の個々のダイアログ要素を操作することなく、トピックの完全な構成を表示できます。 コード エディターは、トピック内のすべての設定を一度に確認できる場所です。
  • 作成者は、コピー貼り付け アイコンを使用するのではなく、トピックから特定のノードをコピーして他のトピックに貼り付けることを選択できます。 構成のノードを複数選択するよりも簡単かもしれません。
  • 作成者は、Call and Action メニューへの同期を待つのではなく、YAML で Power Automate フロー ID を更新することを選択できます。
  • 作成者は、類似している 質問 ノードまたは メッセージ ノードを複製して修正することを選択できます。 しかし、そのような場合は、すべての ID と変数が必ず一意になるようにしてください。 複製した ID は必ず修正して一意な ID にしてください。
  • 作成者は、YAML コードにテキストを入力したりコピー & ペーストしたりする方が速いため、コード エディターでトピック フレーズに用語を追加するなどの簡単な修正を行うことを選ぶ場合があります。

コード エディターの YAML を理解する

次の画像は、一般的な YAML のブロックの例を示しています。

コード エディター内のサンプル YAML コードのブロックのスクリーンショット。

このコードがキャンバス上の対応するトピックにどのように適用されるかを説明します。

  • 1 行目: トピックの種類。
  • 2~3 行目: 会話ブースティング トピックの開始を示します。
  • 行 7: 生成応答ノードを示します。
  • 行 9: 関連する変数。
  • 11~12 行目: プロンプトと特別な指示の詳細。
  • 20~26 行目: サポート情報ソース リンク。
  • 28~32 行目:条件グループ。 各条件には、一意の ID、条件の数式の詳細、リダイレクトが紐付けられています。

コード エディターの YAML をテストする

このコードをテストしたい場合は、Copilot Studio で以下の手順を実行してください。

  1. エージェントを作成する。

  2. エージェントの 設定 ページに移動し、生成 AI生成の順に選択します。

  3. トピック ページに移動し、システム を選択して、会話ブースティング トピックを選択します。

  4. コード エディターを開きます。

  5. 既存のコードを次の YAML のサンプル コードに置き換えます。

     kind: AdaptiveDialog
     beginDialog:
      kind: OnUnknownIntent
      id: main
      priority: -1
      actions:
        - kind: SearchAndSummarizeContent
          id: search-content
          userInput: =System.Activity.Text
          variable: Topic.Answer
          moderationLevel: Medium
          additionalInstructions: Include emojis to make responses more fun.
          publicDataSource:
            sites:
              - "www.chessusa.com/"
              - "www.chess.com/"
              - "www.lichess.org/"
    
          sharePointSearchDataSource: {}
    
        - kind: ConditionGroup
          id: has-answer-conditions
          conditions:
            - id: has-answer
              condition: =!IsBlank(Topic.Answer)
              actions:
                - kind: EndDialog
                  id: end-topic
                  clearTopicQueue: true
    
  6. 保存 を選択し、コード エディターを閉じます。

  7. テスト パネルで、「ナイトはどのように動きますか?」など、チェス関連の質問をしてエージェントをテストします。