はじめに
私はIT業界に勤めています。仕事柄、技術の最新情報のキャッチアップが必要です。
私は以下技術領域の最新情報のキャッチアップをしています。
- Kubernetes
- EKS
しかし、最新情報のキャッチアップに面倒くささを感じていました。
- 公式サイトでは日本語訳は英語版より遅れて発表されるので、翻訳が必要となります。
- Kubernetes、ホストするクラウドプロバイダ(例:AWS)、Kubernetesの上で動くミドルウェア(Controller、Ingressなど)といった、複数のサイトを周る必要があります。
情報を集約し、見やすい形とすることで、キャッチアップのハードルを下げたいと思いました。
Copilot Studioでk8s最新情報取得するフローを作成した
Copilot Studioの説明は省きます。
Copilot Studio は、自然言語またはグラフィカル インターフェイスを使用してエージェントを作成できる、エンドツーエンドの会話型 AI プラットフォームです。Copilot Studio を使えば、ニーズに合わせてエージェントを簡単に設計、テスト、公開できます。スタンドアロン エージェントを構築することも、Microsoft 365 Copilot に発行することもできます。
今回はCopilot Studioの中でPower Automateのフローを作成しました。
本当に簡単にエージェント、フローを作ることができました。
作成したエージェント、フローは以下の通りです。
- エージェント1個
- ナレッジにKubernetesリリース情報サイトを付与
- ツールにSlack(メッセージ投稿)を追加
- フロー2個
- AWS Container Feed
- AWSのコンテナ関連のブログ情報RSSの更新をトリガーとする
- 最新情報をエージェントが要約してSlackチャンネルに投稿する
- Kubernetes Feed
- Kubernetesのブログ情報RSSの更新をトリガーする
- 最新情報をエージェントが要約してSlackチャンネルに投稿する
- AWS Container Feed
エージェント
ナレッジ
以下URLをナレッジとして登録しています。
| URL | 説明 |
|---|---|
| https://clockonline.org/ja/ | エージェントが現在時刻を取得する際に参照するURLとして登録しています。今回は使っていませんが、今後最新情報を直近のみに絞りたいときの判断基準になるかなと思っています |
| https://kubernetes.io/ja/blog/ | Kubernetesの公式ブログのURLです。最新リリースも紹介されるため、最新情報を知ることができます。 |
| https://kubernetes.io/releases/ | Kubernetesのリリース情報が載ったURLです。 |
ツール
Slackのメッセージ投稿ツールを登録しています。
エージェントがSlackへメッセージを投稿できるようになります。
SlackチャンネルにMicrosoft Power Platform Connectorsアプリを参加させる必要があります。
AWS Container Feedフロー
フロー
トリガー
フローは以下RSSフィードURLに更新があった場合実行されます。
https://aws.amazon.com/blogs/containers/feed/
※他にも色々AWS関連のフィードがあります。
参考:https://dev.classmethod.jp/articles/aws-rss-feeds/
プロンプト
エージェントの実行ステップにて、Body/messageにてプロンプトをエージェントに渡すことができます。
以下のような値をBody/messageに入れています。
以下内容を100文字程度に要約して、Slack「〇〇〇」チャンネルに投稿してください。
------------------
title: @{triggerOutputs()?['body/title']}
link: @{triggerOutputs()?['body/primaryLink']}
pubDate: @{triggerOutputs()?['body/publishDate']}
description: @{triggerOutputs()?['body/summary']}
上記のtriggerOutputsはフィードの更新分のみの内容を取得できます。
あとはエージェントが要約からSlack投稿までやってくれます。
Kubernetes Feedフロー
RSSフィードURLのみ違うので、以下差分だけ記載します。
トリガー
フローは以下RSSフィードURLに更新があった場合実行されます。
https://kubernetes.io/feed.xml
※Kubernetesには脆弱性のフィードもあります。
https://kubernetes.io/docs/reference/issues-security/official-cve-feed/
もしもCopilot Studioがなかったら
同じことをAWSで実現するなら、例えば以下のような構成が考えられます。
- EventBridge Scheduler(5分おきなど)
- Lambda(RSS取得、重複チェック、要約、Slack投稿)
- DynamoDB(最終処理済み記事IDの保存)
- Amazon Bedrock(要約)
- Secrets Manager(Slack Webhook URLやトークン管理)
- CloudWatch Logs(ログ)
処理イメージは以下の通りです。
- EventBridge SchedulerがLambdaを起動
- LambdaがRSSを取得
- DynamoDBで未処理記事のみ抽出
- Bedrockで要約生成
- Slack APIへ投稿
実現できそうではありますが、大変そうです。。
Copilot Studioでのフロー作成手順
作業時間:1時間あれば大体できるかと思います
エージェントの作成
Copilot Studioにログインします。
https://copilotstudio.microsoft.com/
空のエージェントを作成します。
好みに応じてカスタマイズします。
一通り設定し終えたら、公開します。
※公開はフローからエージェントを実行するために必要です。別の誰かにアクセス許可する場合は共有設定を別途する必要があります
フローを作成する
エージェントフロータブにて、「+新しいエージェントフロー」から作成します。
好みのトリガー、処理内容を入れます。
エージェントを実行するには、Microsoft Copilot Studioアクションを選択します
一通り設定し終えたら、公開します。
おわりに
Copilot Studioで日々のルーティンワークを自動化する方法を学べました。
今後も勉強して、他にも自動化できる仕事がないかアンテナを張っていきたいなと思います。





