【速報】Microsoft AI Tour Tokyo 2025 参加記

# はじめに
こんにちは、masa-asaです！
2025年3月27日に開催されたMicrosoft AI Tour Tokyo 2025へ参加してきましたので、その感想について書きたいと思います。

https://aitour.microsoft.com/ja-JP/tokyo

![21.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/69dbba39-29e5-4999-8cba-02ea653dcd18.jpeg)
![5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/cda04cc2-80c8-4d15-a6a1-0305601d78c6.jpeg)


# AIのトレンドはRAGからAgentへ
この記事で一番言いたいことはこの見出しですので、お時間の無い方はこの見出しだけ読んでいただければ大丈夫です！

昨年（2024年）のAI Tourでは、Copilot Studio、AI Studioが日本市場に本格的に参入し、これらのサービスを用いて、Azureサービス上でRAGができる、プロンプトフローなどが話題になりました。ワークショップでもRAGのハンズオンが人気でした。

今年のセッション一覧を見ると、エージェントに関する内容が非常に多いです。
エージェントを用いて、業務のルーチンを負荷を低減する、そういった事例が今年の後半にかけて多く紹介されるだろうという予感がします。

ただ、RAGの需要が枯れてしまったかというとそのような印象は感じませんでした。依然としてRAGは会社固有のナレッジをLLMと連携するために必須のテクニックであると思います。多くの方々がRAGという技術に触れること（あるいは実践が）進んだ上で、RAGの上にエージェントが乗るという形で、その会社固有の業務をエージェントが実際のタスク実行を伴って補助し、効率化を図っていくことがトレンドになるのだろうと感じています。

https://aitour.microsoft.com/ja-JP/sessions?filter=event%2FlogicalValue%3ETokyo

# エージェント(Agent)とは
エージェントとは、（ユーザーとの対話を通じて）特定のタスクを自動的に実行するシステムです。
ユーザーがプロンプトで調べたいことや、やりたいことを自然言語で入力するということは従来のLLMでのチャットボットと同様ですし、画面的にも似ています。
エージェントが異なっている点は「特定のタスクを自動的に実行する」ということです。つまり、エージェントはユーザーからのプロンプトの内容を解釈し、適切なコード（Azure Functionなど）を実行したり、検索エンジンでの検索を行ったり（Bing検索など）、APIの実行を行ったりすることができます。

これにより何ができるようになるかというと、企業の持つデータ（データベースやBLOBストレージ、AI Search）などを接続したエージェントに対して「1年間の売上を月ごとの棒グラフにしてPNGで出力して」とプロンプトを実行すると実際にその情報に基づいたグラフを作成し、画像として出力してくれるということです。
これは、それっぽいグラフを画像生成AI（Dall-E 3など）で作ったものではなく、実際にSQL文を生成し、DBからデータを抽出し、それをpythonのmatplotlibのようなパッケージを用いてコードを実行してグラフを作成してくれるというものになります。

同様に、自然言語のプロンプトを与えることでAPIを実行する、これによりウェブサイトで予約を行ったり、在庫管理システムに対する動作などを行うことができます。実際にSAP・Salesforce・ServiceNowのようなシステムと連携が可能です。

2025年はこのようなエージェントがタスクに応じて複数存在し、プロンプトに応じて適切なエージェントが動作してタスクを実行していく「マルチエージェント」システムが普及する年になりそうです。

https://learn.microsoft.com/ja-jp/azure/ai-services/agents/overview

# エージェントの動作を見てみる
以下で公開されているGitHubリポジトリとガイドに従って動作を確認していきます。今回はガイドの一部のみを使用し、私の環境に合わせてコマンドや修正内容を一部ガイドから変えている部分がありますのでご了承いただければと思います。

https://github.com/microsoft/build-your-first-agent-with-azure-ai-agent-service-workshop

https://microsoft.github.io/build-your-first-agent-with-azure-ai-agent-service-workshop/

## 事前準備
### モデルの準備
エージェントを用いるためにAzure AI Foundryでプロジェクトを作成してモデルのデプロイを行います。

https://learn.microsoft.com/ja-jp/azure/ai-services/agents/concepts/model-region-support

エージェントで利用できるモデルはリンクの表を参照し、今回は「gpt-35-turbo、0125」を用いました。
エージェントを利用するには、使用するモデルの「Tokens Per Minute Rate Limit」を140k以上にする必要があり、クオータ制限の都合上今回は「gpt-35-turbo、0125」を選んでいます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/cc641e44-cb81-4415-b50a-66de3c89e52c.png)

# 接続文字列のメモ
Azure AI Foundryのプロジェクト画面の「概要」から「プロジェクト接続文字列」をコピーして控えておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/bcc331d7-d5d3-4db7-a9ac-a541dad39a6e.png)

### ソースコード修正
「～～build-your-first-agent-with-azure-ai-agent-service-workshop/src/workshop」のディレクトリにある「.env.sample」を「.env」にリネームし、「MODEL_DEPLOYMENT_NAME」にデプロイしたLLMのモデル名を、「PROJECT_CONNECTION_STRING」に先ほどメモした「プロジェクト接続文字列」を記述します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/09ec573a-88be-4350-894a-918abcc059b4.png)

### 仮想環境構築
pythonの仮想環境を構築するため、以下のコマンドを実行します。
`python -m venv venv`

次に、仮想環境をアクティベートします。
`source venv/bin/activate`

### パッケージのインストール
pipで依存関係のパッケージをインストールします。
`pip install -r requirements.txt`

### main.pyの修正
エージェントの処理を行うmain.pyでコメントアウトされている部分（53行目～81行目、画像ではすでに一部コメントアウトを外している）を適切に外すと、エージェントが動作します。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/0f1a71e2-e716-42dc-9e0e-736ee08551cc.png)

53~56行目はエージェントに対して指示や手順を与えるファイルを指定する部分です。
実際にファイルを確認してみると、どのようなツールを使うのか、手順についてなどの指示が書かれています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/7602d76a-79b7-4b2f-ae4b-e2b36f882841.png)

### 実行
「F5」を押してデバッグを開始すると、ターミナルでエージェントが起動し対話できるようになります。
「地域別の売上を円グラフで表示」とプロンプトを与えた結果が以下です。
「files」フォルダが作成され、その下にpngファイルが作成されました。画像を見ると実際にデータベースから取得した情報をもとに円グラフが作れており、画像ファイルとして出力されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/94da50fb-e4b0-46e1-a9e9-d1e47825c43e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/68994c51-fdfc-4ca2-a2e1-1abc68bf3b41.png)

次に「ASIA-PACIFIC地域での商品別売り上げを棒グラフで表示」とプロンプトを与えてみます。
棒グラフもきちんと出力されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/a3c8a012-4ccc-4e60-8e55-2cd7247bc22a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/51288973-a480-4767-b9b0-1ad398785d01.png)

最後に、画像以外の処理もできるか試してみます。「ASIA-PACIFIC地域での商品別の販売数と売り上げをtsvでsales-data.tsvという名前で出力」と与えます。
画像だけでなくtsvへの処理、ファイル作成を行ってくれました。
code interpreterの機能によりエージェントがプロンプトに従ってコードを実行してくれていることがわかります。エージェントが実際に何らかのアクションを実行してくれることが実感できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/23309c9f-f8af-4e3b-8a67-f974f0080f17.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3942439/f10980bf-0d49-4cfe-93f2-12fe9289d898.png)




# まとめ
- エージェントがトレンドの年になりそう
- RAGはずいぶんと一般化した
- マルチエージェントが普及し、実用例が多数出てきそう