本文へスキップ / Skip to main content
KINTO Tech Blog

約9分で読めます

General

社内でAIエージェント構築ワークショップを開催しました。

社内でAIエージェント構築ワークショップを開催しました。 cover
再生速度
要約を読む

AIエージェントの開発に取り組みたいがどこから始めればいいか分からないという課題がありました。そこで、実際に手を動かせるワークショップを開催し、参加者がすぐに体験できるようにしました。その結果、80人中60人が基本的なエージェント構築まで達成し、半数以上がツール連携の流れを理解しました。 ワークショップでは、AWSのAmazon Bedrock AgentCoreとMCP(Model Context Protocol)をテーマに、実践的なハンズオンを組み込みました。特に、私が共著した2冊の書籍を教材に選び、内容をしっかり理解しているため、参加者が質問したときにもすぐに補足できるようになりました。 開発環境はGitHub Codespacesにセットアップし、AWS CLIやNode.js、Claude Codeを一括で導入できるmiseを使い、環境構築時間を30分から15分に短縮しました。サンプルコードも公開リポジトリから直接参照できるようにし、手打ちを避けました。 ワークショップは午前中と午後に分けて進めました。午前中はStrands Agentsの基本を体験し、午後はAgentCoreのデプロイやMCPサーバーの自作を実践しました。その結果、70%の人がアンビエントエージェントの構築まで進み、20%がMCPサーバーの構築に成功しました。 社内の環境に合わせて、メールアドレスのエイリアスやGoogleカレンダー連携を調整しました。メールアドレスを統一し、重複を排除する修正を加えました。Googleカレンダーは使えないため、その部分は省略しました。AWSアカウントのリソース名も、各自の名前を付けて一意に保ち、S3バケットやAgentCoreの名前も個人差を考慮しました。 参加者は「エージェントの仕組みが理解できた」と語り、特にハーネスの使いやすさに驚いていました。MCPサーバーの自作に取り組んだ人も、「自分の手で作ったことで、裏側の仕組みが見えてきた」と話していました。これまで固定ルートだった処理に比べて、エージェントが入力に応じて動的に処理を選択する点に新鮮さを感じたと報告がありました。 最終的に、80人中60人が基本的なエージェント開発を体験でき、30人がMCPの構築に挑戦しました。このワークショップは、書籍のハンズオンを活かしたことで、準備負担を減らしつつ、実際の開発を体験できる環境を整えました。

AI が生成した要約です。正確な内容は本文をご確認ください。

こんにちは!
Principal Generative AI Engineerの森田です。私の所属するAIファーストGでは、社内の生成AI活用にとどまらず、販売店やトヨタグループにおけるAI活用支援を行っております。

社内でAIエージェントの活用が進む中、ある部署から「AIエージェント開発に取り組みたいが、どこから始めていいかわからない」と相談をもらいました。座学だけでは手触り感が得られないので、実際に手を動かすワークショップ形式で開催することにしました。

弊社はAWSを主なクラウド基盤としているため、AWSが提供するAIエージェントの構築・運用基盤である Amazon Bedrock AgentCore と、エージェントのツール連携プロトコルである MCP(Model Context Protocol) を中心テーマに据えました。

教材として使用した書籍

ゼロから資料を作るよりも、体系的にまとまった書籍のハンズオンをベースにした方が、参加者が後から復習しやすいと考えました。今回は以下の2冊を使用しています。

AgentCore本でエージェントフレームワークであるStrands AgentsやAgentCoreの各機能を学び、MCP本でMCPサーバーの自作とAgentCore Gatewayによるツール統合を学ぶ、という組み合わせです。

実は、どちらも私が共著者として執筆に携わった書籍です。手前味噌で恐縮なのですが、中身を隅々まで把握できている分、参加者がハンズオンで詰まったときにも補足しやすく、教材として選びました。

開発環境

今回は環境を揃えるため、GitHub Codespaces 上に開発環境を用意しました。書籍の手順をベースに、以下の工夫で環境構築にかかる時間を短縮しています。

  • ツール管理は mise に統一し、mise use aws-cli node uv claude でAWS CLI・Node.js・uv・Claude Codeを一括導入
  • AWSへは aws configure sso でSSOログイン
  • コーディングのお供として Claude Code をセットアップ

サンプルコードは書籍著者が公開しているGitHubリポジトリを git clone して参照できるようにし、すべてのコードを手打ちしなくていいようにしました。

ワークショップの構成

1日のワークショップとして、午前・午後に分けて以下の流れで進めました。

午前の部(1.5時間)・・・Strands Agentsに触れる

# タイトル 書籍・該当箇所 概要
1 Strands Agents入門 AgentCore本 3.4節 ツール定義、エージェント作成、会話ループの実装など基本を体験
2 リサーチエージェントの構築 AgentCore本 4章 Webから情報収集・要約するエージェントを構築し、ツール連携の開発フローを掴む
任意 AgentCoreハーネス AgentCore本 5.2節 時間に余裕がある人向けに、AgentCoreハーネスを体験

午後の部(3時間)・・・AgentCoreとMCPを実践する

# タイトル 書籍・該当箇所 概要
3 AgentCoreランタイム入門 AgentCore本 5.3節 agentcore create → agentcore deploy でエージェントをクラウドにデプロイ
4 アンビエントエージェントの構築 AgentCore本 15章 S3への領収書アップロードをトリガーに、解析→Confluence記録→メール通知するイベント駆動型エージェントをCDKで構築
5 MCPサーバーの構築 MCP本 4.2節 自前のMCPサーバーとホストを実装
6 AgentCore Gateway MCP本 6.2節 MCPサーバーをAgentCore Gatewayに登録し、認証・認可を統合

社内実施にあたって変更が必要だったポイント

書籍のハンズオンをそのまま社内で実施するにあたり、いくつか環境差異への対応が必要でした。

参加者からもらった質問

ワークショップ中、参加者からいくつか印象的な質問がありました。

Q. ツールの定義はPythonでもできるのか?

Strands Agentsのツール定義はPythonのデコレータ@toolで行えます。関数のdocstringがそのままツールの説明文(description)としてLLMに渡されるため、Pythonで完結します。MCPサーバーとして公開する場合もPython SDKが利用可能です。

Q. Swarmエージェントはどうやってタスクを振り分けているのか?

マルチエージェント構成(Swarm)では、オーケストレーターとなるエージェントがLLMの判断に基づいて、各サブエージェントにタスクをルーティングします。各エージェントのnameやdescriptionに基づき、他のエージェントの役割を把握したうえで、作業を委譲するエージェントを選択します。

Q. マルチエージェントにするか、シングルエージェントにするか、どのように決めるのが良いか?

個人的な感覚としては、最初から厳密に切り分けようとしない方がうまくいきます。シングルエージェントとして作り始めて、複雑なタスクをうまく処理できなくなったり、コンテキストを分けた方が動きが安定すると感じた時点で、サブエージェントへの分割を考える、というのが実際の進め方に近いです。

Q. エージェントで使用するモデルはどのような基準で選んでいるのか?

コストを最初から意識しすぎないことが大事だと思っています。Sonnetをベースにまず作ってみて、判断の精度が足りない部分はOpusに切り替え、単純作業の部分だけHaikuでコストを下げる、という順番です。先にHaikuでコストを抑えようとすると、実現できる機能のレベルが下がってしまうので、まずは「エージェントとして実現できるか」を確認してから、コスト最適化に移る方がスムーズに進みます。

参加者の声

ワークショップの締めに参加者で「振り返り会」を行い、そこで出た声の中から印象的だったものをいくつか紹介します。

ある参加者は、「エージェントの動きが、これまでふんわりとマジックのように感じていたのに、こういう仕組みで動いていたのかと腹落ちした」と話してくれました。難しさの本質はプロンプトの作り込みにある、という気づきを得られたようです。

別の参加者は、ハーネスの手軽さに驚いたそうです。テンプレートに「あなたはプロ野球に詳しい人です」のような一行を書くだけでエージェントが動いてしまうのを見て、拍子抜けするほど単純だったと話していました。

MCPサーバーの自作に取り組んだ参加者は、午後の中でも特に難しかったと振り返っていました。それでも自分の手で実装したことで、普段使っているMCPの裏側の動きまで想像できるようになった、という言葉が印象的でした。

これまで固定パイプライン的な実装(情報を取得し、LLMに渡し、整形して出力する)に慣れていたという参加者は、エージェントが入力に応じて処理のルートを動的に決めていく発想自体が新鮮だったと語っていました。同じ入力でも出力のパスが事前に決まっていない、というところに面白さを感じたそうです。

ワークショップを終えて

1日にかなりの内容を詰め込んだこともあり、進み具合には個人差が出ました。午前の任意項目だったAgentCoreハーネス(5.2節)まで到達できた方もいれば、そこまで手が回らなかった方もいます。午後はそれぞれの興味に合わせて、アンビエントエージェントに取り組むグループとMCPサーバー構築に取り組むグループに分かれて進めてもらいました。

今回のワークショップを通して、書籍のハンズオンをベースにしたことで準備の負担を抑えつつ、実践的な内容を届けられたのは良かったです。本記事が、これからAIエージェント開発に取り組む方や、同様のワークショップを企画する方の参考になれば幸いです。最後までお読みいただき、ありがとうございました。

Facebook

Follow Us

XConnpassWantedly

KINTOテクノロジーズの最新情報をSNSで発信中!イベント・テックブログ更新情報もお届けします。