這個活動用的動手做步驟,任何人都可以在自己方便的時候嘗試!(約 30 分鐘~1 小時)

我們會用低程式碼快速做出來。

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

可惜的是,最近新建立的 AWS 帳號(尤其不是公司契約的那種),Bedrock 的模型呼叫配額常常預設為 0,或是沒有使用新 Frontier Model 的權限,不過,即使在這種情況下,我們也想辦法讓大家仍然能體驗這個動手做!

會產生一些 AWS 使用費用(預估數十日圓起)。請自行負責執行。

因為是全伺服器無狀態架構,所以費用大多是瀏覽過程中 LLM API 的推論 token 費用。

事前準備

新建立 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 儲存貯體

  • 儲存貯體名稱要在全世界唯一。其他項目維持預設即可

スクリーンショット 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 並進行首次同步。這需要幾分鐘,期間可以先進行下一步。

スクリーンショット 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

第 1 步保持預設直接按 Next

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

第 2 步在 Inbound Auth type 中選擇「IAM 權限」,然後按 Next

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

第 3 步將目標類型設為 Connectors,選擇剛建立的 KB,然後 Next > 建立閘道

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

這裡也可以選擇 Web Search Tool,但日文搜尋精準度不太好。建議改用本動手做後半段會介紹的 AgentCore 瀏覽器,會比較方便。

建立 AgentCore Harness

部署「Strands Agents + AgentCore Runtime」這組合。

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

建置 > Harness > 建立進階 Harness

スクリーンショット 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 通常不會被授權使用,因此改用其他同樣聰明的模型。

啟用工具 > 閘道,選擇剛才建立的閘道,然後按「建立 Harness」

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

先在這裡選好閘道,這樣系統會自動設定從 AgentCore Harness 呼叫所需的 IAM 政策,很方便。(如果之後才加,會需要手動編輯政策。)

這裡需要 2~3 分鐘,先往下進行。

動作確認(RAG)

從剛建立的 KB 畫面中選擇「測試知識庫」

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

例如輸入 KAG 也有在做工程師教育服務嗎? 之類的問題

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

動作確認(代理人 + RAG)

從剛建立的 Harness 畫面中選擇「測試 Harness」

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

例如輸入 KAG 也有在做工程師教育服務嗎? 之類的問題

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

新增瀏覽器工具篇

如果你在意費用,可以跳過這裡,直接進入下一個「前端建置篇」,這樣就能用比較低的成本完成整個動手做。

因為在反覆操作時,系統會一邊讀取瀏覽器畫面,一邊進行操作,容易讓送往 Bedrock 的輸入 token 數量暴增。

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

從 Harness Playground 右側的「新增工具」加入瀏覽器工具

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

再加上一個問題,例如 順便幫我用瀏覽器查一下,JAWS-UG 東京也能學到這個嗎?

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

從右上角的「︙」選單選擇「更新現有的 Harness」,就完成部署了

スクリーンショット 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("請輸入 Harness 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

動作確認

因為要從瀏覽器連到這裡,所以先按加號按鈕開啟第二個 us-east-1 終端機

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

使用以下指令,取得可以存取這個 CloudShell 的網址

# 下載 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

開啟過程中輸出的網址(https://XXXXX.trycloudflare.com

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

在管理主控台中複製剛建立的 Harness 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


原文出處:https://qiita.com/minorun365/items/7d06434cf830df9c54ff


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝15   💬3   ❤️3
634
🥈
我愛JS
📝2   💬3   ❤️3
118
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登