39
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

このイベント用のハンズオン手順ですが、どなたでも好きなときに試せます!(30分〜1時間目安)

これをローコードでサクッと作ります。

スクリーンショット 2026-07-02 1.29.29.png

残念なことに最近、新規作成したばかりのAWSアカウント(特に会社契約でないもの)では、Bedrockのモデル呼び出しクォータが既定で0になっていたり、新しいフロンティアモデルの利用権限がないケースも多いのですが、そんな場合でも何とかハンズオンを体験できるように工夫を凝らしています!

多少のAWS利用料(数十円〜の想定)がかかります。ご自身の責任で実施ください。

フルサーバーレスなので、費用の大半はブラウジング中のLLM APIの推論トークン料金です。

事前準備

AWSアカウントを新規作成

※「有料」プランを選択してね

スクリーンショット 2026-07-02 1.10.49.png

サインアップ後、マネジメントコンソールにサインイン

スクリーンショット 2026-07-01 23.20.25.png

リージョンを「バージニア北部」に設定

スクリーンショット 2026-07-01 23.20.48.png

RAG編

スクリーンショット 2026-07-02 1.29.36.png

社内文書をアップロード

S3コンソールへ移動

スクリーンショット 2026-07-01 23.21.59.png

S3バケットを新規作成

  • バケット名は世界でユニークなものに。他はデフォルトでOK

スクリーンショット 2026-07-01 23.22.45.png

以下の社内文書サンプルをダウンロードして、作ったバケットにアップロード

このスライド、すべて画像なんですが果たして正しくRAGナレッジに変換できるのか?注目です。

スクリーンショット 2026-07-01 23.34.10.png

RAGパイプラインを構築

Bedrockコンソールに移動

スクリーンショット 2026-07-01 23.35.23.png

構築 > ナレッジベース > Create Managed KB

スクリーンショット 2026-07-01 23.35.56.png

「S3を参照」ボタンから上記のバケットを選択。他はデフォルトのまま「ナレッジベースを作成」

スクリーンショット 2026-07-01 23.36.51.png

自動でRAG構築と初回同期が開始される。数分かかるので次の作業に進んでOK

スクリーンショット 2026-07-01 23.41.33.png

マネージドKBは、裏で使われるLLMや埋め込みモデルもAWS管理のため、新規AWSアカウントでBedrockのクォータが0でも使えます!

AIエージェント編

AgentCoreゲートウェイを構築

AIエージェントとRAGを繋ぐゲートウェイを先に作成します。

スクリーンショット 2026-07-02 1.29.44.png

AgentCoreのコンソールに移動(右クリックして新しいタブで開くと便利)

スクリーンショット 2026-07-01 23.43.24.png

構築 > ゲートウェイ > ゲートウェイを作成

スクリーンショット 2026-07-01 23.45.10.png

Step 1はデフォルトのままNext

スクリーンショット 2026-07-01 23.45.27.png

Step 2は、Inbound Auth typeで「IAM許可」を選んでNext

スクリーンショット 2026-07-01 23.46.22.png

Step 3はターゲットタイプをConnectorsにして、今作成したKBを選択してNext > ゲートウェイを作成

スクリーンショット 2026-07-01 23.47.38.png

ここでWeb Search Toolも選べますが、日本語の検索精度が悪いです。このハンズオン後半で紹介するAgentCoreブラウザで代替するのがお手軽です。

AgentCoreハーネスを構築

「Strands Agents + AgentCoreランタイム」のセットをデプロイします。

スクリーンショット 2026-07-02 1.29.51.png

構築 > ハーネス > 高度なハーネス作成

スクリーンショット 2026-07-01 23.50.32.png

モデルとシステムプロンプトを開く

  • APIソース:Bedrock Mantle
  • モデル:GLM 5

スクリーンショット 2026-07-01 23.57.49.png

ここでMantle(Bedrockの新基盤)を選ぶことで、新規AWSアカウントがBedrockのクォータ0でもモデルを呼び出せます。

ただしClaudeやGPTは利用許可されないことが多いため、他の賢いモデルで代替。

ツール > ゲートウェイ を有効にして、今作ったゲートウェイを選択して「ハーネスを作成」

スクリーンショット 2026-07-01 23.55.50.png

ここでゲートウェイを選んでおくと、AgentCoreハーネスから呼び出すためのIAMポリシーが自動で設定されるので便利。(後から付けるとポリシー手動編集が必要)

2〜3分かかるので、先に進みましょう。

動作確認(RAG)

先ほど作ったKBの画面から「ナレッジベースをテスト」

スクリーンショット 2026-07-02 0.07.05.png

KAGってエンジニア教育サービスもやってるの? などと質問

スクリーンショット 2026-07-02 0.10.14.png

動作確認(エージェント + RAG)

先ほど作ったハーネスの画面から「ハーネスをテスト」

スクリーンショット 2026-07-02 0.11.09.png

KAGってエンジニア教育サービスもやってるの? などと質問

スクリーンショット 2026-07-02 0.13.53.png

ブラウザツール追加編

課金が気になる方は、ここを飛ばして次の「フロントエンド構築編」に進めば安くハンズオンを完走できます。

ブラウザの操作画面を読み込みながら操作を繰り返すため、Bedrockへの入力トークン量が膨れてしまいがちなためです。

スクリーンショット 2026-07-02 1.29.59.png

ハーネスプレイグラウンドの右側から「ツールを追加」より、ブラウザツールを追加

スクリーンショット 2026-07-02 0.18.39.png

ところでJAWS-UG東京でもこれを学べそうか、ブラウザで調べて などと追加質問

スクリーンショット 2026-07-02 0.38.44.png

右上の「︙」から「既存のハーネスを更新」すればデプロイ完了

スクリーンショット 2026-07-02 0.41.05.png

フロントエンド構築編

スクリーンショット 2026-07-02 1.30.07.png

Webサーバー起動

画面右上の「>_」アイコンからCloudShellを起動

スクリーンショット 2026-07-02 0.43.28.png

フロントエンドのPythonファイルを作成

nano frontend.py

以下コードを貼り付け

frontend.py
import boto3, uuid
import streamlit as st

# サイドバー
harness_arn = st.sidebar.text_input("ハーネスARNを入力")

# ページタイトルとチャットボックス
st.title("おしえて! AgentCore")
prompt = st.chat_input("メッセージを入力")

if prompt:
    # ユーザーのメッセージを表示
    st.chat_message("user").write(prompt)

    # エージェントを呼び出す
    response = boto3.client("bedrock-agentcore").invoke_harness(
        harnessArn=harness_arn,
        runtimeSessionId=str(uuid.uuid4()),
        messages=[{"role": "user", "content": [{"text": prompt}]}],
    )

    # ステータスを表示
    answer = ""
    with st.status("考えています") as status:
        for event in response["stream"]:
            tool = event.get("contentBlockStart", {}).get("start", {}).get("toolUse")

            # ツール実行中はツール名を画面に表示
            if tool:
                answer = ""
                status.update(label=f"{tool.get('name')} ツールを実行中")
            answer += event.get("contentBlockDelta", {}).get("delta", {}).get("text", "")

        # ストリーミングが完了したらステータスに反映
        status.update(label="完了しました", state="complete")

    # エージェントの回答を表示
    st.chat_message("assistant").write(answer)

nano画面下部の案内どおり「Ctrl + X」>「y」>「Enter」で保存して閉じる

スクリーンショット 2026-07-02 0.48.24.png

以下コマンドでWebサーバーを起動

# Pythonライブラリを追加インストール
pip install -U boto3 streamlit

# Streamlitアプリを起動
streamlit run frontend.py

動作確認

ここにブラウザからアクセスするため、+ボタンから2つ目のus-east-1ターミナルを起動

スクリーンショット 2026-07-02 0.51.25.png

以下コマンドで、このCloudShellへアクセス可能なURLを発行

# Cloudflare Tunnelクライアントをダウンロード
wget -O cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64

# 実行権限を付与
chmod +x cloudflared

# Streamlitのローカルポートを、Tunnelでインターネット公開
./cloudflared tunnel --url http://localhost:8501

スクリーンショット 2026-07-02 0.53.20.png

途中で出力されるURL( https://XXXXX.trycloudflare.com )にアクセス

スクリーンショット 2026-07-02 0.56.39.png

マネコンで、今作ったハーネスのARNをコピー

スクリーンショット 2026-07-02 0.57.21.png

KAGAI Learning Hubについて社内文書を調べて などと質問

スクリーンショット 2026-07-02 1.02.56.png

おかたづけ

マネージドKBはストレージ分の従量課金もあるので、ハンズオンが終わったら「削除」ボタンから消しておきましょう。

スクリーンショット 2026-07-02 1.06.18.png

英語で「delete」と入れないと消えませんw

スクリーンショット 2026-07-02 1.07.56.png

最後に宣伝

AgentCoreに興味を持ったら、JAWS-UGメンバーが書いた本でさらに学んでみよう!

ビラ2.png

39
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?