1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Copilot Studioで、2つのエージェントをつないでみた

1
Posted at

はじめに

私は普段デザイナーとして働いているのですが、最近はCopilot StudioでのAIエージェント作りに挑戦しています。この記事はシリーズの6本目です。

この記事は、デザイナー畑の方でこれからAIに触ってみようとしている方に向けて書いています。

やったこと

私はこれまでに下準備として 2つのエージェントを作ってきました。
1つは、Teamsで返事がないまま止まっている依頼を見つけて知らせる「放置議題を見つける係くん」
もう1つは、そうした依頼の相手に送る返信や催促の文面を考える「メッセージの下書きを作るアシスタント」です。

今回は、この2つを「接続されたエージェント(Connected agents)」という機能でつないでみました。
「放置議題を見つける係くん」が親、「メッセージの下書きを作るアシスタント」が子という関係です。

使うときの流れは次のとおりです。

  1. 「放置議題を見つける係くん」にチャットで「滞留している議題は?」と聞いて、一覧を出してもらう
  2. 出てきた一覧に対して「1件目の催促文を作って」と頼むと、「メッセージの下書きを作るアシスタント」が文面を出してくれる

子のエージェントを公開する

まずは、呼ばれる側(子)の準備です。
接続されたエージェントの追加画面には「接続できるのは公開済みのエージェントのみです」と書かれていて、子のエージェントは先にパブリッシュ(公開)しておく必要がありました。

image.png

公開していないエージェントには「接続する前にこのエージェントを公開します」と表示され、選ぶことができません。

親のエージェントから子をつなぐ

子を公開できたら、親のエージェントから子を追加します。

  1. 「放置議題を見つける係くん」(親)を開く
  2. 右側の「接続されたエージェント」の「+」を押す
  3. 一覧から、「メッセージの下書きを作るアシスタント」(子)を選ぶ
  4. 「説明」を入力して「接続」を押す

image.png

「説明」は、親が「この依頼はこのひとに任せよう」と判断するときに読む紹介文のようなものです。
子のエージェント自体の指示(instructions)とは別に書きます。

今回入力した説明は次のとおりです。

Teamsで滞留している議題について、相手に送る返信・催促メッセージの下書きを作るエージェントです。
ユーザーが、見つかった滞留議題のどれかについて「催促文を作って」「返信の文面を考えて」などと頼んだときに使ってください。
渡すときは、その議題の内容、誰が何を言って止まっているかの経緯、滞留している期間、相手が社内か社外かをあわせて渡してください。
滞留している議題を探すことは、このエージェントの役割ではありません。

この説明で押さえたのは、次の3つです。

  • いつ呼ぶか:ユーザーの頼み方の例と一緒に書きました。親が子に任せるかどうかを決めるときの手がかりになります
  • 何を渡すか:子の指示文にある「渡される情報」とそろえました。子の指示文には、相手が社内か社外かで敬語の度合いを変えるルールがあるので、その情報も渡してもらうようにしています
  • やらないこと:「滞留している議題は?」と聞いたときに、親が自分で探さずに子へ任せてしまうのを防ぐために書いています

「接続」を押すと、「メッセージの下書きを作るアシスタント さんに接続しています…」と表示されました。
エージェントが「さん」付けで呼ばれていたのが、なんだか面白かったです。

image.png

プレビューで試す

親の指示文は直さずに、まずは説明だけで子に任せてくれるかを試しました。
「放置議題を見つける係くん」のプレビューで「滞留している議題は?」と聞き、一覧が出たあとに「1件目の催促文を作って」と頼むと、下書きが出てきました。

画面には「Used tool: メッセージの下書きを作るアシスタント」と表示されています。つないだエージェントは、親から見るとツールの一つとして呼び出される形になるようです。

image.png

下書きのアシスタントの指示文を見直す

出てきた下書きは、件名があり「お世話になっております」から始まるメールのような形で、Teamsで送るには仰々しすぎました。おそらく指示文からメールの文面の下書きであると予想されていたようです。
そこで、Teamsとメールの使い分けを「メッセージの下書きを作るアシスタント」の指示文に書き足しました。素案をClaudeで作り、それをもとに仕上げています。最終的な指示文は次のとおりです。

あなたは、Teamsで滞留している議題に対して送るメッセージの下書きを作成するアシスタントです。

放置議題検知の結果として、以下のような情報が渡されます。

  • 滞留している議題の内容
  • その議題が含まれるやり取りの経緯(誰が何を言って止まっているか)
  • 滞留している期間

これらの情報を元に、状況に合ったメッセージの下書きを提案してください。相手に返信を促す場合と、こちら側が回答を求められたまま止まっている場合とでは、文面の方向性を変えてください。

■文面の形式

  • Teamsのチャネルやチャットへの返信として投稿する前提で書く。メールではないので、件名、宛名の行、「お世話になっております」のような長いあいさつは入れない
  • 相手への呼びかけは、冒頭に名前を書く程度にとどめる
  • 全体で3〜4文程度に収める

■口調

  • 社内・社外どちらの相手でも、Teamsでの普段のやり取りに合わせ、メールほど堅くしない。社外の相手には丁寧語を基本にし、社内の相手にはもう少しくだけてもよい
  • 「お忙しいところ恐縮ですが」のようなクッション言葉は、相手に何かを依頼・要求する一文にだけ付ける。1通に1回までにする
  • おわびや恐縮の表現を重ねない
  • 依頼内容と関係のない話題(こちら側の別件の状況など)は入れない

■その他

  • 経緯の情報が不足していて判断が難しい場合は、下書きを作る前にユーザーに確認する
  • 下書きは1案を提示し、ユーザーがそのまま使うか、直すかを選べるようにする

ポイントは2つあります。

  • メールではなくTeamsへの返信だと最初に明記したこと
  • クッション言葉を使う場面を「お願いする一文だけ」に絞ったこと

指示文を直したあとは、「メッセージの下書きを作るアシスタント」をパブリッシュし直し、「放置議題を見つける係くん」のプレビューで新しいチャットを始めて同じ流れで試しました。

実際の結果には案件の情報が含まれるため、名前などを置き換えたものを載せておきます。

Aさん

お疲れさまです。9/18にご依頼した下記3件の請求書について、その後のご状況はいかがでしょうか。

・{請求書の名前}(3件分)

もしすでにご送付済みでしたら行き違いで失礼いたします。お忙しいところ恐縮ですが、送付状況だけご一報いただけますと助かります。どうぞよろしくお願いいたします。

件名や長いあいさつがなくなり、Teamsでそのまま返信できそうな長さになりました。

つまずいたポイント・気をつけるポイント

接続の設定は、親のエージェントを開いた状態で行う必要があります。
親側の「接続されたエージェント」から子を追加しないと、親子の関係が逆になってしまいます。私も一瞬、子のほうを開いて設定しかけました。

学んだこと・わかったこと

今回は親の指示文を一切直さず、接続のときに書いた説明だけで、親が子に仕事を任せてくれました。説明に「いつ呼ぶか」「何を渡すか」「やらないこと」の3つを書いておくのが大事なのだと感じました。

また、下書きの文面は、プレビューで実際に出してもらって初めて違和感に気づけました。直すときは、自分が普段Teamsでしている言葉の使い分けを、そのまま指示文に書くことで落ち着きました。普段なにげなくやっていることを言葉にするのが大事なのだと感じました。

まとめ・次にやりたいこと

今回は、「放置議題を見つける係くん」と「メッセージの下書きを作るアシスタント」をつないで、滞留している議題を見つけるところから催促文を出すところまでを、ひと続きでできるようにしました。

ただ、今回催促文を作った依頼をあらためて確認してみると、実はすでに対応が済んでいるものでした。Teamsでメッセージを送ったあと、続きのやり取りはメールで進んでいたため、AIからは完了したことが判断できなかったようです。

そこで次は、「これはもう完了しているやり取りです」と伝えたら、翌日以降は一覧に出さないよう覚えておいてもらえるかを試してみたいと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?