Copilot Studio でAIに関連するニュースを検索、要約してメール送信してくれるエージェントフローを作ったので、その方法の紹介です。
こんなメールが毎日送信されます。
進化が激しい領域なので、画面などすぐに変わってしまうかもしれないのでご注意ください。
作成方法
0.前提
Power Platformの環境を事前作成。他にもしているかもしれませんが、記憶が曖昧です...
1. エージェントフロー作成
メニューの「フロー」から「+新しいエージェントフロー」ボタンをクリック
2. トリガー追加
日次で動かすためのトリガーを追加します。
「トリガーを追加する」をクリック
3. 各処理追加
3.1. ニュース検索
「繰り返し」の下の「+」アイコンをクリックします。以後、処理追加時には同じ方法です。
Brave Search(Independent Publisher) -> Search web for news を選択。以前も使ったことがある検索エンジンです。
以下のパラメータ。後で日本語翻訳するのでCountryをALLにして、Search Languageもenにしています。また、Freshnessのpdは直近1日のニュースという意味らしい(多分per day)。API Keyが必要だったので、取得しました。
3.2. 変数初期化
組み込みツール -> 変数 -> 変数を初期化する を追加
次でニュース検索結果の必要な内容を格納する変数です。
3.3. ループ
組み込みツール -> コントロール -> それぞれに適用する を追加
ニュース検索結果を示す Results をループさせます。
ループ内処理に 組み込みツール -> 変数 -> 配列変数に追加 を追加
Nameに前ステップで定義した変数のNewsListを選択し、Valueでメール内に使用するニュース検索結果一覧のタイトル、内容、URLを文字列結合させます。
3.4. プロンプト(LLM)実行
AI機能 -> プロンプトを実行する を追加
項目「プロンプト」で「+新しいカスタムプロンプト」を選択
プロンプトを定義します。
「+コンテンツを追加する」で変数を埋め込むことができます。今回は「news」という変数を埋め込んでいます。変数に何を設定するかは次画面で設定。
変数埋め込み画面。「サンプルデータ」にこの画面でLLMのテストをする際に使用される変数値を入れることができます。
保存して元の画面に戻ります。
プロンプトで定義した変数「News」に変数「NewsList」を使います(式を挿入 から 動的コンテンツタブで変数が選択可能)。
3.5. メール送信
Office 365 Outlook -> メールの送信(v2) を追加
宛先、件名、本文を入力
件名
日付を入れたかったので、式を使っています。
concat(
'AI関連最新ニュース(',
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'yyyy-MM-dd'
),
')'
)
本文
LLMにありがちなバックチックが使われるので除去しています。プロンプトで指示することもできますが、安定しないことも多いので、ここで除去。
あと、正確に使い方があっているわかっていませんが、「コードビューの切り替え」をしてHTMLが使えるようにしています。
replace(replace(outputs('プロンプトを実行する')?['body/responsev2/predictionOutput/text'], '```html', ''), '```', '')
3.6. 終了
組み込みツール -> コントロール -> 終了 を追加
StatusにSucceededを設定。なくても動きましたが、明示した方がいいと思い入れました。
4. 公開
概要タブから「編集」ボタンを押してフロー名を変えておきます。
デザイナータブで「下書きを保存する」の後、「公開」。警告が出ますが無視します。