Microsoft 365 Copilot Coworkで初日に3万円を使い切った話。失敗から分かったAIエージェントの注意点

スポンサーリンク
AI活用
スポンサーリンク
スポンサーリンク

「もう3万円分を使い切っていますよ」

朝、会社に出社してパソコンを立ち上げた直後でした。

システム部から、思いがけない連絡が入ります。

レノンさん、copilot cowrok もう3万円分のクレジットを使い切っていますよ! 何をされたんですか?

一瞬、何のことか分かりませんでした。

「3万円?」

「使い切った?」

会社でMicrosoft 365 Copilotの「Cowork」をテストし始めたのは、まだ前日のことです。

個人に設定されていた利用上限は3万円。これはCoworkの月額料金ではなく、会社がテスト利用者である私に設定していた上限です。

確かに、いろいろな機能を試していました。しかし、利用開始からまだ1日もたっていません。それなのに、すでに上限へ到達したというのです。

すぐにCoworkを開き、前日に設定したタスクの実行履歴を確認しました。

画面には、13時、14時、15時……と、1時間ごとの実行記録が並んでいます。

処理は私が退社した後も止まっていませんでした。

19時。

20時。

日付が変わって00時。

そして午前2時。

そこには、クレジット不足による失敗を示す表示が出ていました。

前日の昼に動かし始めたCoworkは、私が帰宅した後も、誰もいない深夜のオフィスでTeamsの情報を探し続けていました。

そして翌朝を迎える前に、3万円分のCopilot Creditsを使い切っていたのです。

夜中に動くことは分かっていた

ここまで読むと、単純に「夜間の停止設定を忘れていたのでは」と思われるかもしれません。

しかし、私はCoworkが夜中も動くことを分かっていました。

営業時間外に停止させる条件を設定していなかったため、退社後も1時間ごとに処理が実行されます。それでも、大きな問題にはならないと考えていたのです。

深夜のTeamsには、ほとんど新しいメッセージが投稿されません。対象も直近1時間の新着に限定していました。

新着メッセージがなければ、Excelへ出力される情報はゼロ件です。

だから夜中に何度か動いたとしても、クレジットはほとんど消費しないだろう。

そう考えていました。

しかし、本当の問題は夜間に動かしたことではありませんでした。

「見つかったメッセージがゼロ件」という結果と、「ゼロ件であることを調べる処理が軽い」ということは、同じではなかったのです。

Teamsで「あの話はどこだった?」が増えていた

そもそも、なぜCoworkに1時間ごとの処理をさせようとしたのでしょうか。

私が解決したかったのは、Teamsで見た情報を後から見つけられなくなる問題でした。

会社でTeamsを使っていると、個人チャット、複数人のグループチャット、チーム内のチャンネルなど、さまざまな場所で会話が進みます。

確認する場所が増えてくると、少し前に読んだ情報がどこに書かれていたのか分からなくなります。

確かにTeamsで見た記憶はある。でも、誰とのチャットだったのか思い出せない

個人チャットだったのか、チャンネル投稿だったのかも分からない

私自身、このような状態になることが増えていました。

一度開いた会話を確認しようとしても、チャットやチャンネルの数が多く、目的の情報をすぐに見つけられません。Teams内を何度も行き来しながら探すことになります。

そこで考えたのが、最近の会話を自動的にExcelへ記録する方法でした。

CoworkにTeamsの新着情報を整理させようとした

Coworkは、Microsoft 365内の情報を使いながら、検索や資料作成、メール送信、Teamsへの投稿など、複数の作業を進められるAI機能です。

指示した処理を指定した時刻や間隔で動かす、スケジュール実行にも対応しています。Microsoft公式:Copilot Coworkのよくある質問

私はCoworkを使い、Teamsの新着情報を1時間ごとに収集して、Excelへ記録する仕組みを作ろうとしました。

Excelへ保存したかったのは、次の情報です。

  • チャット名またはチャンネル名
  • 最新メッセージの内容
  • 投稿日時
  • 元の会話を開くためのリンク

取得した情報は新しいものを上に並べ、1時間ごとに追記します。

これが実現すれば、Teamsのあちこちを探し回らなくても、Excelを見るだけで最近の会話を確認できます。気になる内容があれば、記録されたリンクから元のチャットへ移動できます。

当時の私は、かなり実用的な仕組みだと思っていました。そしてうまく機能したら社内で共有しようとまで目論んでいたのです。

クレジットを使いすぎないための制限も入れていた

Coworkが従量課金であることは、最初から分かっていました。

そのため、何の制限もなくTeams内の情報を取得させたわけではありません。

初回は、それぞれのチャットやチャンネルから最新メッセージだけを取得するようにしました。過去の会話まで一気に読み込ませないためです。

2回目以降は、直近1時間に追加されたメッセージだけを対象にしました。

さらに、1つのチャットから取得するメッセージは最大10件、全体でも最大100件までに制限しました。

1時間分だけを調べて、最大でも100件なら大丈夫だろう

そう判断し、初日の13時ごろに1時間ごとのスケジュールを設定しました。

設定後は、実際に1時間ごとに処理が動いていることも確認しました。Excelにも情報が書き込まれていたため、仕組みとしては正常に動いているように見えました。

自分なりに、クレジットの大量消費を防ぐセーフティネットを用意したつもりだったのです。

退社後もCoworkは動き続けた

スケジュールを設定したのは前日の13時ごろでした。その後、14時、15時、16時と、処理は1時間ごとに実行されました。

退社後も止まりません。

深夜になり、Teamsの新着メッセージがほとんどなくなっても、設定したスケジュールどおりに処理は続きます。

そして翌日の午前2時、クレジット不足により処理が失敗しました。

開始から午前2時まで、わずか半日ほどの出来事です。

個人に設定されていた3万円分のCopilot Creditsは、その間にすべてなくなっていました。

もちろん、夜間も処理を動かしたことで、上限への到達が早まったのは間違いありません。

しかし、夜間実行だけが原因ではありません。

仮に営業時間内だけに限定していたとしても、1回当たりの消費量が大きいままなら、遅かれ早かれ同じ問題が起きていたはずです。

結果的に、もっとも有効に働いたセーフティネットは、私がプロンプトに書いた「最大100件」という制限ではありませんでした。

システム部が設定していた、個人3万円の利用上限だったのです。

最大100件にしたのに、なぜ消費を抑えられなかったのか

今回の失敗で、もっとも大きな知見を得られたのがこの部分です。

私は「1つのチャットにつき10件、全体で最大100件」と指定すれば、Coworkが処理するデータ量も小さくなると考えていました。

しかし、この制限が適用されるのは、最終的に選ばれてExcelへ出力される情報です。

Teams内に新着メッセージがあるかを判断するためには、その前に対象となるチャットやチャンネルを探し、更新状況を確認する必要があります。

たとえば、100冊ある本棚の中から「今日追加された本を最大10冊だけ教えて」と頼んだとします。

最終的に見つかった本が1冊だけでも、その1冊を探すために100冊を確認していれば、作業量は小さくなりません。

今回の処理も、それに近い状態だったと考えられます。

Excelへの出力が数件、あるいはゼロ件であっても、「新着があるかどうか」を判断するための検索やツール利用は発生します。

Microsoftの公式説明でも、Coworkの消費量にはAIモデルからの応答だけでなく、ツールやスキルの呼び出し、画像生成、ブラウザー処理なども含まれると説明されています。Microsoft公式:Coworkの課金方法

なお、Coworkが内部で毎回どの範囲を確認し、何件のメッセージを処理したのか、そのすべてを利用者が確認できるわけではありません。

そのため、「毎回必ずすべてのTeamsメッセージを読み込んでいた」とまでは断定できません。

ただし、今回の結果から、最終的な出力件数を制限するだけでは、検索や確認を含めた処理全体の消費を十分に抑えられないことが分かりました。

「取得するデータが少ない」と「データを探す処理が軽い」は、同じ意味ではなかったのです。

必要だったのは「毎回探すこと」ではなかった

では、どのような仕組みにすればよかったのでしょうか。

今回必要だったのは、1時間ごとにTeams内を広く探すことではありません。

前回の取得後に追加されたメッセージだけを受け取る仕組みです。

毎回すべての郵便受けを開けて新しい手紙がないか確認するのではなく、新しい手紙が届いたときだけ知らせてもらう方法です。

この違いは、従量課金型のAIエージェントを使ううえで非常に重要です。

データを探すところからAIに任せると、そのたびに検索や判断が発生します。

一方、別の仕組みで新着データだけを集めておき、AIには集まった情報の整理や要約だけを任せれば、AIが処理する範囲を小さくできます。

Microsoft Graphで変更分だけを取得する

Microsoft Graphには、前回の取得後に追加または更新されたTeamsのチャットメッセージを取得する「delta query」が用意されています。

最初に全体を同期した後は、前回から追加または変更されたメッセージを取得できます。毎回同じ範囲を取り直す必要がなくなるため、今回のような用途に適した考え方です。Microsoft公式:Teamsチャットメッセージの差分取得

ただし、この方法を利用するには、Microsoft Graph APIの権限設定や認証、取得した差分情報の保存などが必要です。

また、このAPIが対象とするのは、ユーザーが参加している1対1のチャット、グループチャット、会議チャットです。Teamsのチャンネル投稿まで同じ方法ですべて取得できるとは限りません。

誰でもすぐに導入できる簡単な代替方法というより、システムとしてしっかり構築する場合の選択肢です。

Power Automateで新着をきっかけに処理する

もう少し取り組みやすい方法として、Power AutomateのTeamsコネクタを使う選択肢もあります。

Power Automateには、新しいチャットメッセージやチャンネル投稿が追加されたときに処理を開始するトリガーがあります。

新着が発生したときだけ処理を動かせるため、1時間ごとにTeams内を探す方法よりも無駄を減らせる可能性があります。Microsoft公式:Microsoft Teamsコネクタ

ただし、トリガーによって取得できる範囲が異なります。

たとえば、新しいチャンネルメッセージを検知するトリガーは、既存投稿への返信では動作しません。また、指定したチャットやチャンネルを対象とするトリガーは、編集されたメッセージでは実行されません。

今回の仕組みをPower Automateだけで完全に置き換えられるとは限らないため、必要な会話をどこまで取得できるか、事前の検証が必要です。

Coworkが悪いのではなく、任せる仕事を間違えた

初日で3万円分のクレジットを使い切ったとなると、「Coworkは費用が高くて使えない」と結論づけたくなります。

しかし、今回の失敗を振り返ると、Coworkそのものが悪かったとは思いません。

問題は、データの収集から選別、Excelへの記録まで、すべてをCoworkへ任せようとしたことです。

AIは文章の意味を理解し、情報を整理したり、重要度を判断したりすることを得意としています。

一方で、「新着があるかどうかを1時間ごとに確認する」といった単純な監視処理までAIに任せると、AIを使わなくてもできる部分にまでクレジットを消費します。

今回の目的であれば、Power AutomateやMicrosoft Graphで新着メッセージを集め、Coworkには集めた情報の要約や分類を任せる方が合理的です。

たとえば、Teamsの新着情報を別の仕組みで蓄積しておき、1日1回だけCoworkへ渡します。

Coworkは、その中から対応が必要な内容、重要な連絡、後から確認すべき会話を整理します。

こうすれば、Coworkのクレジットを単純なデータ収集ではなく、AIにしかできない判断へ集中させられます。

もう一つの失敗は、すぐに定期実行したこと

今回の処理では、最初から1時間ごとのスケジュールを設定しました。

動作することは確認しましたが、1回の実行でどれだけCopilot Creditsを消費したのかまでは確認していませんでした。

これも大きな失敗でした。

1回の実行が高コストだった場合、それを1時間ごとのスケジュールに設定すると、同じような消費が自動的に繰り返されます。

人間が手動で操作していれば、途中で利用量に気づけたかもしれません。

しかし、自動実行では人が見ていない時間も、設定したとおりに処理を続けます。

つまり今回は、自動化が正常に動いたからこそ、クレジットも順調に減っていったのです。

従量課金型の処理をスケジュール化するときは、まず手動で1回だけ実行し、その消費量を確認するべきでした。

次に対象を小さくして数回試し、どれくらいの利用量になるかを確認します。定期実行へ移すのは、その後です。

営業時間を設定することも必要ですが、それだけでは根本的な解決になりません。

1回の処理が高コストなままなら、実行時間を短くしても、消費する速度が少し遅くなるだけだからです。

3万円の失敗から得られた4つの知見

初日で3万円の上限へ到達したことは、テストとしては明らかな失敗です。

システム部からすれば、「利用開始直後に何をしたのか」と驚くのも当然でしょう。

一方で、今回の失敗からは、AIエージェントを業務で活用するうえで重要な知見を得られました。

出力件数だけを見ても費用は分からない

最終的な出力が10件であっても、その10件を探すために広い範囲を検索していれば、処理は小さくなりません。

AIエージェントの費用を考えるときは、完成した回答の長さだけでなく、そこへ到達するまでに何を検索し、どのツールを使うのかを見る必要があります。

データ収集とAIによる判断を分ける

単純な新着確認やデータ保存は、Power AutomateやAPIのような、決められた処理を正確に繰り返す仕組みが得意です。

集めたデータの意味を理解し、要約、分類、優先順位付けをする部分はAIが得意です。

この役割分担ができれば、費用を抑えながらAIの強みを活かせます。

自動化の前に1回の費用を確認する

スケジュール実行は便利ですが、1回の消費量が分からない処理を、そのまま自動化するのは危険です。

まず手動で1回だけ動かし、利用量を確認します。問題がなければ、対象範囲や実行回数を少しずつ増やす必要があります。

利用上限を必ず設定する

今回、個人に3万円の上限が設定されていなければ、その後も消費が続いていた可能性があります。

Microsoft 365管理センターのコスト管理機能では、Copilot Creditsの利用状況を確認し、ユーザーやグループを対象とした支出ポリシー、利用上限、アラートなどを設定できます。Microsoft公式:Copilot Creditsの管理方法

テスト利用だからこそ、最初から大きな上限を与えず、少額から始める方が安全です。

今回の3万円は痛い失敗でしたが、上限が設定されていたことで、被害がそこで止まったともいえます。

AIエージェントは「何を任せないか」も重要になる

AIエージェントは、指示した仕事を自動で進めてくれます。

これまで人間が複数の画面を開きながら行っていた作業を、まとめて任せられる可能性があります。

一方で、できることをすべて任せればよいわけではありません。

毎回すべてを探し直すのではなく、変更された部分だけを渡す。

単純な収集は従来の自動化に任せ、内容の判断だけをAIに任せる。

こうした設計がなければ、便利なAIエージェントが高価な定期処理になってしまいます。

今回の失敗で学んだのは、Coworkの使い方だけではありません。

従量課金型のAIエージェントでは、「どれだけ出力するか」以上に、「その答えを出すまでに何をさせるか」が重要だということです。

まとめ

Microsoft 365 Copilot Coworkを使い、Teamsの新着メッセージを1時間ごとにExcelへ記録しようとしたところ、開始から半日ほどで、個人に設定されていた3万円分のCopilot Creditsを使い切りました。

夜中も処理が動くことは分かっていましたが、新着メッセージがなければ、クレジットもほとんど消費しないと考えていました。

しかし、本当の問題は夜間実行ではありませんでした。

出力件数を最大100件に制限しても、その情報を探すための検索やツール利用まで小さくなるとは限りません。

今回、もっとも大きな教訓になったのは次の一言です。

取得するデータが少ないことと、データを探す処理が軽いことは同じではない。

3万円分を初日で使い切ったのは、明らかな失敗でした。

しかし、データ収集とAIによる判断を分けること、1回の消費量を確認してから自動化すること、利用上限を設定することなど、AIエージェントを業務へ導入するうえで重要な知見を得られました。

Coworkが使えなかったのではありません。

Coworkに任せる仕事の切り分けが、できていなかったのです。

この失敗はぜひ世の中のシステム管理者やCopilot Coworkをこれから利用しようとしている現場の方にとっての教訓になればと思い、恥を忍んで共有させていただきました。

コメント