はじめてのAIエージェント構築!社内ワークショップでStrands AgentsとAWS AgentCoreに入門した話

はじめに

こんにちは!Voicy でフルスタックエンジニアとして働いております、たかまてぃー(@kyappamu)です。先日、東京AI祭2025に参加してきました。その中で「AIエージェントアプリ開発を実践!初めてのAIエージェントワークショップ」というワークショップに参加し、初めてAIエージェントの構築にチャレンジしました。とても学びの多い内容だったので、ぜひ社内でも!と思い、みんなで手を動かしてやってみました。

www.aisai.tokyo

ワークショップ概要:モダンなAIエージェントスタックに触れる

今回のワークショップは、みのるんさん(@minorun365)の Qiitaの記事 をベースにしたハンズオン形式で進めました。座学は最小限に抑え、「手を動かして体感する」ことを重視した構成です。

qiita.com

主要な技術スタック

技術 役割
Strands Agents PythonでAIエージェントを構築できるフレームワーク
Amazon Bedrock Claude等の基盤モデルにアクセスできるマネージドサービス
Amazon Bedrock AgentCore Runtime AIエージェントをサーバーレスで実行するための環境
Tavily / AWS Knowledge MCP Web検索・AWS情報検索などの外部ツール(MCPサーバー経由)

エージェントを「作って、動かして、デプロイする」までを一気通貫で体験できる、非常に実用的な内容でした。

ワークショップで実践したAIエージェント構築のステップ

ワークショップは大きく「Strands Agents入門」と「AgentCoreへのデプロイ」の二部構成となっています。特に印象的だった学びを深掘りします。

1. Strands Agents入門:エージェントのベースを理解する

Strands Agentsで最小構成でエージェントを作ってみる

まず驚いたのが、Strands Agentsを使うことで、環境構築後、たった数行のPythonコードでエージェントを起動できる手軽さです。

# 必要なライブラリをインポート
from dotenv import load_dotenv
from strands import Agent

# .envファイルから環境変数を読み込む
load_dotenv()

# エージェントを作成して起動
agent = Agent("jp.anthropic.claude-haiku-4-5-20251001-v1:0")
agent("JAWS-UG主催のAI Builders Dayはどこで開催される?")

実行結果:

申し訳ありませんが、「JAWS-UG主催のAI Builders Day」の開催場所に関する情報を持っていません。
JAWS-UG(日本AWSユーザーグループ)の最新イベント情報は、以下で確認することをお勧めします:
- **JAWS-UG公式サイト**:https://jaws-ug.jp/
- **connpass**:JAWS-UGのイベントページ
- **AWS公式イベントページ**
最新のイベント詳細、開催場所、開催日時などが掲載されているはずです。もしイベント名や時期など、より具体的な情報があればお知らせいただければ、別の方法でお力になれるかもしれません。

しかし、このシンプルなエージェントは、学習データにない最新の情報には答えることができません。ここで「LLMは賢いが、万能ではない」という限界を実体験として再認識しました。

外部ツールでエージェントに「知恵」を与える

この限界を乗り越えるため、次はWeb検索ツール(Tavily)をエージェントに持たせました。

www.tavily.com

TavilyはAIエージェント向けに最適化されたWeb検索APIサービスです。 一般的な検索エンジンとは異なり、LLM(大規模言語モデル)が理解しやすい形式で検索結果を返してくれるため、AIエージェントに最新情報を取得させるツールとして広く使われています。

@toolデコレーターを付与した関数をエージェントに渡すだけで、エージェントは「質問に答えるためには検索が必要だ」と自律的に判断し、ツールを呼び出し始めます。

# 必要なライブラリをインポート
import os
from dotenv import load_dotenv
from strands import Agent, tool
from tavily import TavilyClient

# .envファイルから環境変数を読み込む
load_dotenv()

# Web検索関数をツールとして定義
@tool
def search(query):
    tavily = TavilyClient(api_key=os.getenv("TAVILY_API_KEY"))
    return tavily.search(query)

# ツールを設定したエージェントを作成
agent = Agent(
    model="apac.anthropic.claude-3-7-sonnet-20250219-v1:0",
    tools=[search]
)

# エージェントを起動
agent("JAWS-UG主催のAI Builders Dayはどこで開催される?")

実行結果:

JAWS-UG主催のAI Builders Dayの開催場所について調べてみますね。検索して確認します。
Tool #1: search
検索結果を確認したところ、JAWS-UG主催のAI Builders Dayについての情報が見つかりましたが、開催場所の具体的な情報は不足しているようです。検索結果によると、このイベントは2025年12月20日(土)に開催予定とされていますが、具体的な会場については明確な記載がありませんでした。

検索結果には以下の情報がありました:
- イベント名: JAWS-UG Presents - AI Builders Day
- 開催形式: オフライン開催予定
- 開催予定日: 2025年12月20日(土)

現時点で公開されている情報からは、具体的な開催場所(会場名や住所など)は確認できませんでした。イベントの詳細情報は、今後JAWS-UGの公式サイトや connpass などのイベント告知ページで更新される可能性があります。

もし開催場所の最新情報が必要でしたら、JAWS-UGの公式サイトやSNSをチェックするか、主催者に直接お問い合わせいただくことをお勧めします。

「自律的に行動を計画し、ツールを使ってタスクを完遂する」という流れを体験し、こうやってAIエージェントを作っていくのかと、実感を得られました。

MCPサーバー連携

さらに踏み込んで、他の開発者が提供するツールを拝借できるMCP(Model Context Protocol)サーバーにも触れました。

AWSドキュメントを検索できる「AWS Knowledge MCP」をエージェントに連携させたところ、AWSに関する専門的な質問にもスラスラと回答できるようになりました。

実行結果:

「Bedrock Agentcore」という用語で検索して詳細情報を探したいと思います。この用語が「Amazon Bedrock Agents」に関連しているのではないかと思われますので、詳しく調べてみましょう。
Tool #1: aws___search_documentation
一番関連性のある情報を確認するために、最初の検索結果からさらに詳細を調べてみましょう。
Tool #2: aws___read_documentation
Amazon Bedrock AgentCoreのランタイム機能についての情報が得られました。これに基づいて一言で説明します:

Amazon Bedrock AgentCore ランタイムとは、AIエージェントやツールを安全かつサーバーレスに実行するための専用ホスティング環境で、どんなフレームワークやモデルとも連携可能で、セッション分離や長時間実行(最大8時間)、マルチモーダルデータ処理、認証機能を備え、AIエージェントの本格的なデプロイと運用を可能にするサービスです。

「機能を部品化し、必要に応じてAIエージェント間で共有する」というマルチエージェントの概念が、こんな感じに実現できるんだと、気づきを得ました。

2. AgentCore入門:構築したエージェントを本番環境へ

開発したエージェントは、最終的にAmazon Bedrock AgentCore Runtimeにデプロイしました。

AgentCore Runtimeは、エージェントをサーバーレスで実行するための環境です。デプロイ手順もとてもスムーズで、開発の延長線上で本番運用を意識した環境が手に入ります。

※最終的に出来上がったツール。「Voicyについて教えて」と検索した結果のキャプチャです。

ワークショップ全体を通じての学びと所感

AIエージェント開発は「手の届く技術」になったという所感が得られました。 以前は、AIエージェントというと高度な技術や複雑なインフラが必要なイメージがありましたが、Strands AgentsやAgentCoreのようなモダンなツールのおかげで、シンプルな実装から気軽に始められる技術になったと感じました。

参加者の声抜粋

QAエンジニア・Nさん

ハンズオン、めちゃくちゃ楽しかったです!!!進行スムーズすぎて感動でした。。またやりたいです🥰🥰🥰

QAエンジニア・Sさん

AIエージェント構築のハンズオン、とてもわかりやすくて、AIエージェントの仕組みの理解が深まりました。機会をいただきありがとうございました!!

iOSエンジニア・Tさん

AIエージェントのハンズオンありがとうございました!普段使ってるAIの仕組みがわかってとても勉強になりました!

まとめと今後の展望

今回の社内ワークショップには8名も参加してくれ、参加者全員が手を動かし、AIエージェント構築の楽しさと実用性について洞察を得られた、実りある時間となりました。(当日の盛り上がった雰囲気を写真に収めたかったですが、すっかり写真撮るのを忘れていました・・)

「AIエージェントは作るのが難しい」という心理的な壁を取り払い、「これなら自分もできる」という自信を得られたことが最大の収穫です。

今回の学びを機に、今後もさらなるAIの学びを深め、Voicy社内外の具体的な課題解決、そしてより多くの価値を届けられるサービスへとつなげていくべく、積極的に開発を進めていきます。

最後に

Voicy では一緒に働いていただけるエンジニアを積極募集中です! Androidエンジニア、iOSエンジニア、バックエンドエンジニアなどなど、様々なポジションがあります。

もし興味を持っていただけたら、カジュアルにお話ししませんか? 「ちょっと話聞いてみたい」くらいの温度感でも全然大丈夫です 🥰

お気軽にご連絡ください!

hrmos.co