マイクロソフトのエンジニアはAIエージェントをどう監視しているか?17名の定性調査が明らかに
公開日
開発生産性
GitHub CopilotやCursor、Claude Codeといった自律的に計画を立てて行動する「AIエージェント」は、開発者の生産性を向上させる手段として急速に普及しています。しかし、これらのエージェントは時として誤ったコードを生成したり、データベースを誤って削除したりするような深刻なエラーを引き起こすことがあります。そのため、システムを安全に運用するには、人間による適切な監視(人間によるオーバーサイト)が不可欠です。
本記事では、米国Microsoftによる研究論文「Human oversight of agentic systems in practice: Examining the oversight work, challenges, and heuristics of developers using software agents」に基づき、現場の開発者が実際に行っているエージェントの監視ワークフロー、直面している課題、そして限られた時間の中で生み出された実用的な妥協策(ヒューリスティクス)について紹介します。
調査の概要と参加エンジニアの属性
AIエージェントの監視における実態を明らかにするため、本研究では2025年7月から8月にかけて、業務でソフトウェアエージェントを使用している17名の経験豊富な開発者を対象に、インタビュー調査を実施しました。
調査対象となった17名の主なプロファイルと傾向は以下の通りです。
- 豊富な開発経験: 17名中13名が7年以上のプログラミング経験を持つシニアエンジニアやエンジニアリングマネージャーです(10年超が12名)。
- 高い使用頻度: 12名が「毎日」、その他のメンバーも「週に数回」または「週1回」の頻度で日常的にエージェントを使用しています。
- 多様な使用ツール: 定番の「GitHub Copilot」や「Cursor」をはじめ、「Claude Code」「Cline」「Gemini」など、開発の現場で主流となっている多様なエージェントツールが実際に使われています。
開発プロセスにおけるAIエージェントの活用シーン
インタビューに答えた開発者たちは、AIエージェントをソフトウェア開発ライフサイクルのほぼ全てのフェーズにおいて適用しています。
図表1:ソフトウェア開発プロセスにおけるAIエージェントの活用シーン
このように多くのフェーズでエージェントが自律的に動くため、開発者側もそれぞれのフェーズに応じた監視を行う必要があります。
開発者が実践する「4つの監視ワークフロー」
研究グループの分析によると、開発者が行う監視は、単に「生成されたコードを確認する」という事後的な作業にとどまりません。エージェントが動き出す前、動いている最中、そして動いた後の各段階で、主に4つの監視ワークフローが存在することが明らかになりました。
| 監視ワークフロー | 定義と具体的な作業内容 |
|---|---|
| 事前制御 | エージェントにタスクを委ねる前に、行動範囲を制限し設定を行う予防的な監視。システム設定の変更、除外リストの設定、全体の文脈(コンテキスト)の共有など。 |
| 共同計画 | 実行前にエージェントと開発者が共同で目標を設定し、合意を形成する主活動。プロンプトの段階的な調整、エージェントが提示した開発計画の修正、タスクの細分化など。 |
| リアルタイム監視 | エージェントが処理を実行している最中に、その動きを観察し、必要に応じて介入する動的な監視。実行ログや思考プロセスの観察、途中で処理を一時停止・中断させる操作。 |
| 事後レビュー | 実行完了後に、エージェントが出力した成果物を精査し、修正を施す評価的な監視。コード差分(Diff)の確認、テストコードの実行、エージェントに対する再指示。 |
図表2:開発者が実践するAIエージェントの4つの監視ワークフロー
事前制御
開発者は、エージェントが予期せぬ挙動を起こさないように、あらかじめ境界線を引いています。例えば、特定のファイルを勝手に削除しないように制限をかけたり、プロジェクト全体の前提ルールを記述した指示書(カスタムインストラクション)を読み込ませたりします。
共同計画
完全にエージェント任せにするのではなく、仕様やデータフロー、コンポーネント間の連携方法について事前に「会話」を交わして合意形成をします。また、大きなタスクをエージェントが処理しやすい小さな単位に分解して渡す「タスクの細分化」も、この段階で行われます。
リアルタイム監視
処理の途中で思考のブレや無限ループに陥っていないかを確かめる作業です。しかし実態として、開発者は動作中のプロセスを細かく監視することを好まず、不自然に実行時間が長い、会話のターン数が多すぎるといった違和感をきっかけに間接的にトラブルを察知することが多いようです。
事後レビュー
もっとも重要視されている監視です。コードの差分ツールを用いて一行ずつ成果物を確認する作業が含まれます。既存の複雑な製品コードベースに新しいコードを組み込む際には、特に厳格なチェックが行われています。
効率を重視する開発者が用いる「4つの判断ルール(ヒューリスティクス)」
事後レビューを完璧に行うには、エージェントが書いた大量のコードを全て理解しなければならず、認知的な負担が非常に大きくなります。そこで開発者たちは、時間的制約に対処するため、以下のような実践的で簡便な「判断ルール(ヒューリスティクス)」を採用しています。
1. 提示された計画をそのまま実際の動作とみなす
開発者は、エージェントが処理の前に出力する「これから行う計画(プラン)」をレビューし、それが妥当であれば、エージェントがその計画通りに正しく裏で動いていると想定します。思考プロセスを一行ずつ追う代わりに、高レベルな計画の検証をもって代替とするアプローチです。
2. テスト合格をコード正確性の証拠とする
「エージェントが書いたコードそのもの」を読む代わりに、「コードが自動テストをパスしたか」を信頼の指標とします。テストコードを厳格に書き、それが通ればブラックボックスとして成果物を受け入れることで、確認作業を大幅に効率化しています。
3. 目視で問題がないか確認する
エージェントが提示する差分、要約、またはコード全体のメソッドシグネチャなどを、スクロールしながら「ざっと目視」することで、明らかな矛盾や不要な関数がないかをスピーディに見極めます。
4. 不慣れな領域や言語ではエージェントに頼る
自身が不慣れなプログラミング言語(例えば、Go言語を習得し始めたばかりの段階など)でコードを書かせる際、自力で厳密にレビューすることが難しいため、エージェントの出力を一定程度信頼してそのまま受け入れる傾向が見られます。複数の異なるエージェントに同じ指示を出し、結果が一致するかどうかで信頼性を担保する工夫もなされています。
「コードの書き手」から「エージェントの管理者」への移行
本調査から見えてきた最も大きな変化は、エンジニアの役割そのものの変化です。従来の「手作業でコードを記述する職人」から、仕様を定義し、タスクを分解し、成果物を評価・検証する「マネージャー(管理者)」のような立場への移行が始まっています。
これは、コードの記述にかかる時間を削減できる一方で、コードの動作に対する責任が最終的に人間に残ることを意味します。開発者は、単にプログラミングができるだけでなく、AIエージェントの限界を理解し、不具合を見落とさないための評価・検証スキルを養っていくことが強く求められています。
まとめ
AIエージェントを活用したシステム開発において、完璧な監視を常に維持することは現実的には困難です。だからこそ現場の開発者たちは、事前の厳密な設定やタスク分解、そして自動テストの仕組みを活用することで、安全性を確保しながら業務を前に進めています。
今後、エージェントをより安全に業務に統合していくためには、エージェントの動作ログを直感的に分かりやすく視覚化するツールや、デバッグを支援するインターフェースの開発など、人間とAIが適切に協働できる環境づくりがさらに進むことが期待されます。
生成AIの導入や活用にお困りですか? 弊社のサービス は、開発チームが抱える課題を解決し、生産性と幸福度を向上させるための様々なソリューションを提供しています。ぜひお気軽にご相談ください!
参考資料: