Slide 1

Slide 1 text

2025年7月31日 #StudyCo Claude Codeが働く AI中心の業務システム構築の挑戦 ―AIエージェント中心の働き方を目指して

Slide 2

Slide 2 text

自己紹介 大嶋勇樹(おおしまゆうき) https://x.com/oshima_123 株式会社ジェネラティブエージェンツ取締役CTO/Co-founder 大規模言語モデルを組み込んだアプリケーションやAIエージェントの開発を実施 個人ではエンジニア向けの勉強会開催やUdemy講座の作成など 勉強会コミュニティStudyCo運営 「ChatGPT/LangChainによるチャットシステム構築[実践]入門」(共著) 「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」(共著)

Slide 3

Slide 3 text

会社名 株式会社ジェネラティブエージェンツ (英文:Generative Agents, Inc.) 所在地 東京都港区 ※ 全社員リモート勤務 役員構成 CEO 西見 公宏 COO 吉田 真吾 CTO 大嶋 勇樹 設立年月 2024年3月14日 事業内容 AIエージェント技術を軸とした生成 AIアプリケーション開発 支援、コンサルティング、教育・研修サービスの提供 AIエージェントインテグレーションサービスの提供 AIエージェントを実業務で本当に活用するためには、AIエージェントの技術特性 と問題解決領域の両面から検討を進める必要があります。当社は「LangChain」 の公式エキスパートとして、AIエージェントを開発するための確かな技術力を活 かし、生成AIアプリケーション開発支援からコンサルティング、教育・研修サービ スまでのあらゆる方面において、AIエージェントを活用した問題解決サービスを 提供します。 インテグレーションを支えるサービス群の提供 AIエージェントを効果的に運用するためには、AIエージェントを動かすためのイ ンフラが必要です。当社はマルチエージェントのオーケストレーション基盤である 「Generative Workforce(※開発中)」をはじめ、AIエージェントのためのツール群 「middleman.ai」の提供を通して、AIエージェント活用のための基盤構築をサ ポートします。 株式会社ジェネラティブエージェンツ - 会社概要 AIエージェントが「ハブ」となり 人間とAIエージェントの協働が 当たり前になる世界を実現する

Slide 4

Slide 4 text

2025年7月31日 #StudyCo Claude Codeが働く AI中心の業務システム構築の挑戦 ―AIエージェント中心の働き方を目指して

Slide 5

Slide 5 text

はじめに (1/2) Claude Codeをはじめとするコーディングエージェントの盛り上がりは凄まじく、 ソフトウェア開発でのさまざまな活用事例が出てきています 実はClaude Codeなどのコーディングエージェントは、ソフトウェア開発以外のタスクにも 活用することができます 実際に登壇者は、Claude Codeを中心として実業務のタスクを管理・遂行することに挑戦しています

Slide 6

Slide 6 text

はじめに (2/2) この勉強会では、Claude Codeを汎用エージェントとして活用し、 AIに実業務のタスクを管理・遂行させるシステムの構築について紹介します AIエージェントが実業務のタスクを管理し、できる限りAIエージェント自身で遂行し、 必要に応じて人間に助けを求める... そんなAIエージェント中心の働き方をつくる試みについてお話しします

Slide 7

Slide 7 text

主な対象者・前提とする知識 主な対象者 ● コーディングエージェントのソフトウェア開発以外での活用に興味がある方 ● AIエージェントを中心として働く仕組みのつくり方に興味がある方 前提とする知識 ● ソフトウェア開発の基礎知識(「ターミナル」「コマンド」が伝わる程度) ● Claude Codeの基本的な使い方(何らかのコーディングエージェントにふれたことがある程度) ● Git・GitHubの基本的な使い方(「commit」「push」「issue」「pull request」が伝わる程度)

Slide 8

Slide 8 text

注意事項 ● Claude Codeをソフトウェア開発で活用する話ではありません 今回お話する内容は、ソフトウェア開発以外の業務のほうが適用しやすい可能性があります ソフトウェア開発の業務の中では、運用業務などには適用しやすいかもしれません ● AIエージェントの一般的な作り方・使い方や、入門的な知識の解説ではありません AIエージェントをより高度に活用するための取り組みの紹介になります 普段からたくさんAIエージェントを使っているほど理解しやすい内容になります ● いわば自社の業務システムの話なので、具体例を出さない箇所もあります 具体的な実装方法など、一部説明しない点もありますがご了承ください 具体的な部分については、身のまわりの業務にあてはめてイメージしてみてください

Slide 9

Slide 9 text

参考 4月に開催した勉強会 「Cursor AgentによるパーソナルAIアシスタント育成入門」 の発展版のような内容です 必須ではありませんが、以下の資料やアーカイブ動画を 事前に見ていると今回の内容も理解しやすくなります 資料: https://speakerdeck.com/os1ma/cursor-agentniyorupasonaruaiasisutantoyu-cheng-ru-men-ye-wu-nop uronputohua-mcpnohuo-yong アーカイブ動画:https://www.youtube.com/live/bBmifF0bTXc

Slide 10

Slide 10 text

アジェンダ ● コーディングエージェントのソフトウェア開発以外での活用 ● Claude CodeによるAIタスク管理遂行システムの構築 ● 実際にAIエージェント中心の働き方をつくるために ● まとめと今後の展望

Slide 11

Slide 11 text

コーディングエージェントの ソフトウェア開発以外での活用

Slide 12

Slide 12 text

コーディングエージェントへの注目 コーディングエージェントは引き続き大きな話題となっており、 新たなコーディングエージェントも次々登場しています https://docs.anthropic.com/en/docs/claude-code/o verview Claude Code https://kiro.dev/ https://blog.google/technology/developers/introduci ng-gemini-cli-open-source-ai-agent/ Gemini CLI Kiro Claude Pro・Maxプランで定額利用可能であることと、 Claude 4 Opus/Sonnetのリリースにより、最近はClaude Codeが特に注目されています

Slide 13

Slide 13 text

コーディングの手順を指示としてまとめる 特定の流れでコーディングしてほしい場合、その手順を指示としてまとめておく場合があります # 実装手順 1. 今回の実装と関連する箇所の 既存のコードを確認する 2. コードを実装する 3. uv run pytestでテストを実行する : 必要に応じてコマンドの 実行を指示することも可能 実装の手順を指示としてまとめておいて実行させるのと同じように、 ソフトウェア開発以外のタスクも手順をまとめておいて実施させることができます

Slide 14

Slide 14 text

業務マニュアルに従って仕事をさせる 1年前と異なり、具体的な業務マニュアルとツールがあれば、 汎用エージェントがある程度の業務をこなすことが可能になってきています # ◯◯業務マニュアル ## 手順 1. … 2. … 3. ◯◯コマンドを実行してデータを 登録する : コーディングエージェントを、独自のツールを与えたりしやすい カスタマイズ可能な汎用エージェントとして活用するということです ツール(スクリプト)を実装しておけば、 任意のAPIを操作させることが可能

Slide 15

Slide 15 text

ソースコードリポジトリの活用 ChatGPTなどのサービスではなくコーディングエージェントを使う大きな理由の1つは、 ソースコードリポジトリとの相性が良いことです たとえば以下のようなディレクトリ構成で各業務のマニュアルやツール(スクリプト)を管理します . ├── operations │ ├── README.md ... 業務一覧 │ ├── operation_1 │ │ └── README.md ... 業務1のマニュアル │ └── operation_2 │ └── README.md ... 業務2のマニュアル └── scripts ... エージェントのツール ├── google_drive.py └── google_sheets.py ● 業務マニュアルやツール自体も コーディングエージェントに書かせる ● コーディングエージェントが想定外の ファイルの編集をすることも多いので、 Git・GitHub等の利用は重要

Slide 16

Slide 16 text

(補足)MCPを使う?コマンドを実行させる? コーディングエージェントを活用するうえでは、MCPが適しているケースもあれば、コマンドを実行 させることが適しているケースもあります MCPを使うケース コマンドを実行させるケース ● 既存のMCPサーバーがサポートして いる操作をさせたい場合 ● ツールの存在を常に伝えておいて、 エージェントの判断によって適宜 使わせたい場合 ● 既存のMCPサーバーがサポートして いない操作をさせたい場合 ● ツールの存在を常に伝えておく必要 はなく、どの場面でどのコマンドを 使うのか適宜明確に指示する場合 ツールがたくさんある場合、MCPで多数設定してエージェントの判断で使い分けさせるよりも、 実行してほしいコマンドをその場その場で明確に伝えたほうが挙動が安定しやすいと考えています

Slide 17

Slide 17 text

ここまでのまとめ ● コーディングエージェントには、ソフトウェア開発以外のタスクを実施させることもできます 業務マニュアルとツールがあれば、ある程度の業務をこなすことが可能になってきています ● 業務マニュアルやツールはソースコードリポジトリで管理すると扱いやすいです 業務マニュアルの記述やツールの実装にもコーディングエージェントを活用しやすくなります ここまでの内容については、近い取り組みの例を以前からたびたび耳にします ここから、AIエージェントが自動的にはたらく、もう一歩進んだ仕組みを構築する話に入ります

Slide 18

Slide 18 text

Claude Codeによる AIタスク管理遂行システムの構築

Slide 19

Slide 19 text

本当にAIエージェントに求めていること たとえば、StudyCoのような勉強会コミュニティを運営するうえでも、さまざまな業務があります ● 勉強会の企画を考える ● connpassのイベントページを作成・公開する ● YouTubeの配信設定をする ● 登壇資料を作成する ● アーカイブ動画を公開する ● お問い合わせがあれば返信する ● etc… 通常はこれらの業務を人間がタスク管理して遂行しています 本来であれば、AIがタスクを管理して、AIにできることはAIがやって、 人間はAIに言われた(AIだけで完結できない)タスクだけやるべきです

Slide 20

Slide 20 text

LangChainが提唱する「Ambient Agents」 LangChainでは、イベントに応じて動作するエージェントを 「Ambient Agents」と呼んでいます Ambient Agentsは、イベントをもとに起動して、必要に応じて人間に対する 通知・質問・レビューのアクション(Human-in-the-Loop)を実施します イベント 必要に応じて人間に 通知・質問・レビュー エージェントが できる範囲の処理 https://blog.langchain.com/introducin g-ambient-agents/ トリガー カスタマーサポートのチケットシステムのように、 人間の対応すべきタスクを一覧化して、 人間はアサインされたタスクを順にさばいていく Agent Inbox 初手AI

Slide 21

Slide 21 text

HumanLayerの「Outer Loop」 HumanLayerは、エージェントのループの中で人間を呼び出すことを「Outer Loop」と表現しています https://github.com/humanlayer/humanlayer 人間が指示してAIが働くのではなく、AIが指示して人間が働くという考え方です ● 第1世代:Chat 人間の質問に答える ● 第2世代:Agentic Assistants 人間の指示に対してエージェントがループする (ツール利用などのループ) ● 第3世代:Autonomous Agents エージェントのループの中で人間を呼び出す 「Outer Loop」

Slide 22

Slide 22 text

Claude Codeの可能性 Claude Codeであれば、イベントをもとに簡単にエージェントを起動できます ChatGPTやIDE型のコーディングエージェント → 作業の指示は人間が出す必要がある Claude CodeのようなCLI型のコーディングエージェント → プログラム的に簡単に実行できる CLI型のコーディングエージェントを使うことには、 以下のようなメリットもあります ● AIエージェントを自前で実装するのと異なり、 ファイル編集などの機能が予め提供されている ● ローカル環境でもリモート環境でも同じように 動かすことが可能なため何かと便利

Slide 23

Slide 23 text

ここまでの考えの整理 ここまでの考えを整理すると、「イベントをもとにClaude Codeが起動してタスクを処理する」という 仕組みを実装することになります イベント Claude Codeが 起動して タスクを処理 トリガー しかし、イベントを直接エージェントが処理する場合、処理のやり直しなどの対応が複雑になります

Slide 24

Slide 24 text

「タスク」はLLMエージェントの世界のファーストクラスオブジェクト LLMエージェントが動作する基盤を設計するうえで、「タスク」は重要な概念だと考えています A2A(Agent2Agent)でも、「タスク」はコアな 概念として定義されています > Task: The fundamental unit of work managed by A2A, identified by a unique ID. Tasks are stateful and progress through a defined lifecycle. 「タスク」はA2Aで管理される作業の基本単位 https://a2a-protocol.org/latest/specification/#2-core-concepts-summary 「タスク」に対して人間やエージェントの会話履歴(List[Message])がひもづくという考え方が A2AやAIエージェントの各種フレームワークで見られます

Slide 25

Slide 25 text

タスクを中心に据えたAIエージェントシステム ここまでの内容を踏まえたシステムとして、以下の構成が考えられます イベント タスク管理システム エージェント 業務マニュアル・ ツール(スクリプト) イベントが発生したら タスクが登録される タスクが登録されたら エージェントが起動して処理する 参照・使用 アサインされている タスクを実施する 必要に応じてタスクに 人間をアサインして対応依頼

Slide 26

Slide 26 text

タスク処理のイメージ ※ClaudeのArtifactsで適当に作った画面イメージです イベントに応じてタスクが 自動的に登録される 対応する業務マニュアルやツールを活用して AIエージェントが一次処理する その後、人間はそのタスクのコメントで エージェントと対話しながら作業を進める

Slide 27

Slide 27 text

構成例:Zapier x GitHub x Claude Code イベント GitHub Issues タスク管理システム Claude Code エージェント GitHubリポジトリ 業務マニュアル・ ツール(スクリプト) Zapier Webhook イベントが発生したら タスクが登録される タスクが登録されたら エージェントが起動して処理する 参照・使用 アサインされている タスクを実施する 必要に応じてタスクに 人間をアサインして対応依頼 GitHub Issueの作成をトリガーとして、GitHub ActionsでClaude Codeを実行するようなイメージです ※実際にこの用途でGitHub Actionsの利用を検討する場合は後述する利用規約に関する注意があるため、Webhookを使う構成としています

Slide 28

Slide 28 text

(注意)GitHub Actionsの利用規約 GitHub Terms for Additional Products and Features https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features > ・Any activity that places a burden on our servers, where that burden is disproportionate to the benefits provided to users (for example, don't use Actions as a content delivery network or as part of a serverless application, but a low benefit Action could be ok if it’s also low burden); or > ・If using GitHub-hosted runners, any other activity unrelated to the production, testing, deployment, or publication of the software project associated with the repository where GitHub Actions are used. ・私たちのサーバーに負荷をかける活動で、その負荷がユーザーに提供される利益に対して不釣り合いなもの(例えば、Actionsを コンテンツ配信ネットワークとして、またはサーバーレスアプリケーションの一部として使用しないでください。ただし、低い利 益のActionでも、負荷も低い場合は問題ありません);または ・GitHub-hostedランナーを使用している場合、GitHub Actionsが使用されているリポジトリに関連するソフトウェアプロジェクト の本番、テスト、デプロイメント、または公開に関係のないその他の活動。 (Claude Sonnet 4による日本語訳)

Slide 29

Slide 29 text

ここまでのまとめ 実際にこのようなAI中心のタスク管理・遂行システムを構築し、実業務に適用し始めてみています この後、実際にこのシステムの構築に取り組んだ流れや得られた知見などについてお話しします ● AIをフル活用した働き方としては、AIがタスクを管理して、AIにできることはAIがやって、 人間はAIに言われた(AIだけで完結できない)タスクだけやるべきだと考えています LangChainの提唱する「Ambient Agents」やHumanLayerの「Outer Loop」の考え方です ● 具体的には、タスク管理システムを中心として、「イベントが発生したらタスクが登録される」 「タスクが登録されたらエージェントが起動して処理する」という構成が考えられます たとえば、Zapier x GitHub x Claude Codeで比較的簡単に構築することができます

Slide 30

Slide 30 text

実際にAIエージェント中心の 働き方をつくるために

Slide 31

Slide 31 text

基本的な発想 ここまでの話は、「具体的な業務マニュアルとツールがあれば、多くの業務をAIエージェントが実施 できるのではないか」という発想に基づきます 業務のマニュアル化・ 必要なツールの整備 業務マニュアル ツール マニュアルをもとに AIエージェントで 業務をまわす 実際に業務マニュアルやツールを整備して、この仕組みを整えたステップの例を紹介します

Slide 32

Slide 32 text

AIエージェント中心の働き方をつくるステップ 実際にAIエージェント中心の働き方をつくる試みとして、以下のステップで取り組みました 1. 対象とする業務領域を決める 2. 業務一覧を作成する 3. 業務の起点をAIエージェントにする 4. 1つ1つの業務のマニュアルと必要なツールを作る

Slide 33

Slide 33 text

Step1. 対象とする業務領域を決める まずは対象とする業務領域を決める必要があります 非定型的な業務が多い領域よりも、定型的な業務が多い領域のほうが適用しやすいと考えています 適用の難易度が高そうな業務領域 適用しやすそうな業務領域 ● ソフトウェアの新規開発 ● 新規事業の立ち上げ → いわゆるプロジェクト型の業務 ● 週次・月次の社内業務の対応 ● テクニカルサポートサービスの提供 → いわゆる定常業務・半定常業務 ソフトウェア開発関連では、運用業務などには適用しやすいかもしれません

Slide 34

Slide 34 text

Step2. 業務一覧を作成する 対象の業務領域を決めたら、業務一覧を作成します その際、各業務はいつ実施するのかトリガーを明確にする必要があります # 勉強会コミュニティの運営業務一覧 - 勉強会の企画を考える(2週間に1回実施) - connpassのイベントページを作成・公開する(企画が決まったら) - YouTubeの配信設定をする(イベント当日) - 登壇資料を作成する(イベントの1週間前に人間に指示) - アーカイブ動画を公開する(イベント翌日) - お問い合わせがあれば返信する(Google Formからお問い合わせがあった際) - etc…

Slide 35

Slide 35 text

Step3. 業務の起点をAIエージェントにする 業務一覧をもとにその日のタスクを登録するエージェントを実装します また、何らかのイベントをもとにタスクが登録される仕組みも実装します # 業務一覧 - … - … - … タスク管理システム 日次タスク登録 エージェント エージェントが 起動して タスクを処理 最初は「この業務を人間に依頼する」 という処理をさせるだけでもよい イベント タスクを登録 このようにして、エージェントがタスクを管理して、一次処理する仕組みをつくることができます 今日のタスクを 判断 補足 ● すべてをAIエージェントで実装する 必要はないため、ルールベースで 実装可能な箇所はルールベースでOK ● エージェントにタスクを登録させる 機能を持たせる場合、エージェントが タスクを登録しては起動し続ける 無限ループに注意が必要

Slide 36

Slide 36 text

Step4. 各業務のマニュアルと必要なツールを作る 各業務のマニュアルと必要なツールをひたすら作成します # 業務一覧 - … - … - … # ◯◯業務マニュアル ## 手順 1. … 2. … 3. ◯◯コマンドを実行する : 「大変では?」と思うかもしれませんが、 実際なかなか大変です ただし、コーディングエージェントを駆使すれば、 手作業で実施するような大変さではありません 音声入力の活用もおすすめです ツール(スクリプト)

Slide 37

Slide 37 text

ディレクトリ構成の例 業務一覧と 各業務の マニュアル ツール

Slide 38

Slide 38 text

構築した結果 対象とした業務領域に対して、 AIがタスクを管理して、AIにできることはAIがやって、 人間はAIに言われた(AIだけで完結できない)タスクだけやる という世界が少しずつ見えてきました ※改善の余地は色々とあります 最後に、実際に取り組みながら考えたことや、取り組んでみて得られた知見について5つお話しします

Slide 39

Slide 39 text

(1/5)業務マニュアルを整備する前に、業務の起点をAIエージェントに 各業務のマニュアルを整える前に、業務の起点をAIエージェントにしました AIエージェントが人間にタスクを指示するだけという体験を脱するため、 AIエージェントが一次処理するためのマニュアルを整備したいという考えになりやすかったです エージェントが全然働かずに、 「これやって」「あれやって」と指示される → 各業務をAIエージェントに処理させるための マニュアルなどを整えるモチベーションに ※モチベーションを感じるかは個人差があります タスク管理システム エージェントが 起動して タスクを処理 最初は「この業務を人間に依頼する」 という処理をさせるだけ

Slide 40

Slide 40 text

(2/5)汎用エージェントからはじめて、必要に応じて特化型エージェントを Claude CodeのようなCLI型のコーディングエージェントがある程度のタスクを実施できるため、 「特化型エージェントを実装する前に汎用エージェントを試す」という選択肢が登場しています 一方で、LangGraphなどで特化型のエージェントを実装するメリットも引き続きあると考えています 汎用エージェントで対応できないタスク 特化型エージェントなら対応できる場合がある 汎用エージェントで対応できるタスク 特化型エージェントを実装することで、 安定性向上・応答の高速化・コスト削減の可能性 ※そもそもAIエージェントではなくルールベースの処理で完了する業務には、ルールベースのスクリプトを実装したほうがよいことにも注意が必要です

Slide 41

Slide 41 text

(3/5)チューニングは評価駆動で 評価としては、チューニングが必要なタスク(業務)に対して自動オフライン評価を実装しています 現時点でオフライン評価を網羅的に実施していない理由 ● 自分が業務マニュアル(プロンプト)を書いて 目の届く範囲で使用しているため、うまく動作 しなかったとしても自分がカバーすれば解決する ● 各種ツールのモックが必要であるなど、評価の 仕組みを構築するコストが高いため、現時点では 簡単なタスクから難しいタスクまで一律で評価を 整備するのは費用対効果が悪い しっかりチューニングしたいタスクについては、 評価を実装してからチューニングしています ● LangSmithを使用してClaude Codeの処理を オフライン評価してチューニング ● うまく動作しなかった例に対して、人手で Ground Truthを作成してデータセットに使用 ● 外部APIを呼び出すツールはモックを用意し、 評価の際のみモックを使用する仕組みを構築 今後より多くのタスクを任せて継続的に運用し続けると、評価を整備しないとリスクが高まるため、 評価をできるだけ簡単に整備するための仕組みも検討中です 一方で...

Slide 42

Slide 42 text

(4/5)自己進化の可能性 すべての業務のマニュアルと必要なツールを作るのは、簡単にできることではありません しかし、まだマニュアルを用意していない業務についても、似た業務のマニュアルを参照して うまく対処してくれたり、AIエージェント自身がマニュアルを作成したりしてくれる場合があります ※CLAUDE.mdでそのように指示しています ※もちろん見当違いな動作をすることのほうが多いです → ルールベースのプログラムでは発生しない、AIエージェント特有の現象 この点については、今後より高性能なモデルが登場した際に恩恵を受けやすいかもしれません

Slide 43

Slide 43 text

(5/5)業務システム開発の知見を活かす 実は今日のテーマは、 「AI中心の業務システムの開発」 の話だと言えます 当初の仮説 ● 業務マニュアルとツールがあれば、AIエージェントに多くの業務を遂行させられるのでは? 実際に取り組んでみて ● 業務プロセスを中心に考えるだけでは例外対応が複雑すぎる → データを中心に整理してみる 「AI中心の業務システム」というものが今後盛り上がる可能性があると考えています 「AI中心の業務システム」を開発するうえでも、通常の業務システムの開発の知見が役立ちそうです

Slide 44

Slide 44 text

まとめと今後の展望

Slide 45

Slide 45 text

まとめ ● ここ1年ほどのモデルの進化などにより、AI中心の働き方が少しずつ見えてきたと感じています AIがタスクを管理して、AIにできることはAIがやって、人間はAIに言われた (AIだけで完結できない)タスクだけやるべきという世界観です ● Claude Codeにより、汎用エージェントで一度試してみるという選択肢が登場しています プログラムから簡単に実行することができ、基本的なツールが予め提供されている、 汎用エージェントとして活用できる場合があります ● 今回紹介した取り組みは、「AI中心の業務システムの開発」だと言えます AIエージェントのことを一日中考えているからこそ思いついたアイデアもあれば、 実際に取り組んでみて発見したこともたくさんあります

Slide 46

Slide 46 text

今後の展望 今回紹介したシステムはある程度動き始めたものの、まだまだ取り組むべき点はたくさんあります ● Claude Codeを単純に実行するだけでは難しい処理への対応 Human-in-the-Loopなど ● より高度なタスクを担わせるための認可やセキュリティ面の対応 チームでこの仕組みを活用する際の制御など ● この仕組みを簡単に構築できるプラットフォーム(インフラ)の開発 うまくいく見込みが立てば、様々な業務をこの仕組みに載せていきたい 今回お話ししたような「AI中心の業務システム」をかたちにして、そのインフラをつくっていきます

Slide 47

Slide 47 text

GAでは「AIドリブン経営のインフラをつくる」仲間を募集しています! こんな世界観を一緒につくる仲間の参戦をお待ちしております!

Slide 48

Slide 48 text

ご清聴ありがとうございました