🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

現在話題的 Amazon Bedrock AgentCore 在東京地區也開始提供一般性服務,似乎已經成為一大趨勢。

功能非常多,跟上著實不易,但我最近總算有點入門了。
在本文中,我想對最主要的 Runtime 功能進行解說。此外,我計畫未來也將撰寫有關各項功能的解說文章。

Amazon Bedrock AgentCore Runtime 介紹

概要

「Runtime」是指使所創建的代理能夠實際運行的執行環境。
簡言之,就是將在本地開發的代理或使用 Strands 構建的代理部署到 Bedrock 上的管理環境,並使其能夠運行的機制。

利用 Runtime 有以下幾個優點:

  • 不需要伺服器管理:將代理容器化並註冊到 ECR,Bedrock 會自動為您準備執行環境
  • 透過統一的 API 調用:能夠使用 InvokeAgentRuntime API,從 Lambda 或其他應用程序以一致的方式進行使用。
  • 自動管理擴展及日誌:在流量增加時自動進行擴展,並可通過 CloudWatch 進行觀測。

形象化

僅僅用文字可能難以掌握具體形象,但官方圖示如下所示。

image.png

通過構建 Docker 映像並推送至 ECR,僅需使用 AgentCore CLI 或 AWS SDK 進行 Runtime 登記及啟動,即可使其運行。
具體來說,可以視為在 Bedrock 上運行的自製代理的托管環境

實作步驟

安裝必要的套件

BedrockAgentCore 提供了一個名為 Starter Toolkit 的便利項目,使用該工具能簡單進行部署。
首先,為了使用它,請通過以下命令安裝 bedrock-agentcore-starter-toolkit。

pip install bedrock-agentcore

將自製代理更改為 AgentCore 規範

這次打算使用 StrandsAgents 進行部署。這個 StrandsAgents 非常簡單,因此請務必試試看。

我之前也曾撰寫過 StrandsAgents 的文章,若有興趣可以查看。

不過手中運行的代理,若不加以修改是無法在 Bedrock 的執行環境(Runtime)上使用的。此處將幾乎不改變現有代碼,利用 AgentCore 的 SDK 將其 HTTP 端點化,並便於引入 Runtime。

from strands import Agent
agent = Agent()
agent("請告訴我關於 JAWS-UG 的事")

可使用以下命令先確認其運行效果。

uv run runtime_ex.py 

接下來,我們將上述代碼更改為符合 AgentCore 的規範。
同時,還需額外創建以下檔案,具體整理如下:

專案根目錄/
├── runtime_ex.py # 存放代理代碼
├── requirements.txt # 記錄依賴關係
└── __init__.py # 這個可以是空的
requirements.txt
strands-agents
bedrock-agentcore

將代理的代碼修改如下。

from strands import Agent
from bedrock_agentcore.runtime import BedrockAgentCoreApp

agent = Agent()
app = BedrockAgentCoreApp()

@app.entrypoint
def invoke(payload):
    user_message = payload.get("prompt", "")
    response = agent(user_message)
    return str(response)

if __name__ == "__main__":
    app.run()
  • @app.entrypoint 是用於註冊 Runtime 調用的函數的裝飾器。
    Bedrock 的 Runtime 會呼叫此處指定的函數並接收結果。

到此為止,已經能夠完成一個基礎的設置,接下來便要將其實際部署到 AgentCore。
首先使用以下命令進行部署前的準備。

uv run agentcore configure --entrypoint runtime_ex.py 

上述命令會執行圖片中框線所圍的部分。

這時將自動生成以下檔案。

  • Dockerfile
  • .bedrock_agentcore.yaml
  • .dockerignore

執行命令後會出現多個選項,基本上按 Enter 一直點擊即可。
這樣就會自動創建

  • IAM 角色
  • ECR 儲存庫
    等。
Configuring Bedrock AgentCore...
Entrypoint parsed: file=/Users/hogehoge/Desktop/strands/runtime_ex.py, bedrock_agentcore_name=runtime_ex
Agent name: runtime_ex

🔐 執行角色
按 Enter 自動創建執行角色,或提供現有執行角色 ARN/名稱
之前配置的: arn:aws:iam::hogehoge:role/AmazonBedrockAgentCore
執行角色 ARN/名稱(或按 Enter 自動創建):
✓ 將自動創建執行角色

🏗️ ECR 儲存庫
按 Enter 自動創建 ECR 儲存庫,或提供現有的 ECR 儲存庫 URI 
之前配置的: hogehoge.dkr.ecr.us-west-2.amazonaws.com/bedrock-agentcore-agent_core
ECR 儲存庫 URI(或按 Enter 自動創建):
✓ 將自動創建 ECR 儲存庫

🔍 檢測到依賴檔案: requirements.txt
按 Enter 使用此檔案,或輸入其他路徑(使用 Tab 自動補全):
路徑或按 Enter 使用偵測到的依賴檔案:
✓ 使用偵測到的檔案: requirements.txt

🔐 授權配置
Bedrock AgentCore 默認使用 IAM 授權。
是否改用 OAuth 授權?(是/否)[否]:
✓ 使用默認 IAM 授權

🔒 請求標頭白名單
配置允許通過的請求標頭。
常見標頭: Authorization, X-Amzn-Bedrock-AgentCore-Runtime-Custom-*
配置請求標頭白名單?(是/否)[否]:
✓ 使用默認請求標頭配置
配置 BedrockAgentCore 代理: runtime_ex

🧠 記憶配置
✅ 已為區域初始化 MemoryManager: us-west-2

檢測到現有記憶資源:
  1. hogehoge
     ID: hogehoge
  2. hogehoge
     ID: hogehogenJl

選項:
  • 輸入數字以使用現有記憶
  • 按 Enter 創建新記憶
  • 輸入 's' 跳過記憶設置
您的選擇:

🧠 記憶配置
✓ 短期記憶默認啟用
  • 在會話內儲存對話記錄
  • 提供即時上下文回憶

選擇性: 長期記憶
  • 提取跨會話的用戶偏好
  • 記住事實和模式
  • 創建會話摘要
  • 注意: 需要 60-90 秒進行處理

啟用長期記憶提取?(是/否)[否]:
✓ 僅使用短期記憶
將創建新記憶,模式: STM_ONLY
記憶配置: 僅短期記憶
生成的 Dockerfile: /Users/hogehoge/Desktop/strands/Dockerfile
生成的 .dockerignore: /Users/hogehoge/Desktop/strands/.dockerignore
將默認代理從 'agent_core' 變更為 'runtime_ex'
╭─────────────────────────────────────────────────────────── 配置成功 ────────────────────────────────────────────────────────────╮
│ 配置完成                                                                                                                               │
│ 代理詳情:                                                                                                                             │
│ 代理名稱: runtime_ex                                                                                                                 │
│ Runtime: Docker                                                                                                                        │
│ 區域: us-west-2                                                                                                                      │
│ 帳戶: hogehoge                                                                                                                        │
│                                                                                                                                          │
│ 配置:                                                                                                                               │
│ 執行角色: 無                                                                                                                         │
│ ECR 儲存庫: 自動創建                                                                                                              │
│ 授權: IAM(默認)                                                                                                                    │
│                                                                                                                                          │
│                                                                                                                                          │
│ 記憶: 短期記憶(保留 30 天)                                                                                                        │
│                                                                                                                                          │
│ 📄 配置已保存至: /Users/hogehoge/Desktop/strands/.bedrock_agentcore.yaml                                                          │
│                                                                                                                                          │
│ 下一步:                                                                                                                                  │
│    agentcore launch                                                                                                                    │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

到這一步,準備已經完成,可以開始將代理部署到 Runtime。

這裡利用 configure 命令準備的配置檔在 CodeBuild 上進行構建。
執行以下命令以將其部署到 AgentCore。
執行後的日誌顯示,構建已完成並提示請求 agentcore invoke。

uv run agentcore launch

此命令執行的是以下框線部分。

🚀 正在啟動 Bedrock AgentCore(codebuild 模式 - 建議)...
   • 在雲中使用 CodeBuild 構建 ARM64 容器
   • 不需要本地 Docker(默認行為)
   • 生產就緒部署

💡 部署選項:
   • agentcore launch                → CodeBuild(當前)
   • agentcore launch --local        → 本地開發
   • agentcore launch --local-build  → 本地構建 + 雲部署

為代理創建記憶資源: runtime_ex
✅ 已為區域初始化 MemoryManager: us-west-2
⠙ 正在啟動 Bedrock AgentCore... 創建新的 STM 內存...
⠋ 正在啟動 Bedrock AgentCore... 創建記憶: runtime_ex_mem-eyH8CX2jlV
✅ 已創建新記憶: runtime_ex_mem-eyH8CX2jlV(在背景中配置中)
開始為代理 'runtime_ex' 在帳戶 hogehoge (us-west-2) 進行 CodeBuild ARM64 部署
⠙ 正在啟動 Bedrock AgentCore... 正在設置 AWS 資源 (ECR 儲存庫、執行角色)...
獲取或創建代理的 ECR 儲存庫: runtime_ex
儲存庫不存在,創建新 ECR 儲存庫: hogehoge
⠹ 正在啟動 Bedrock AgentCore...✅ ECR 儲存庫可用: hogehoge.dkr.ecr.us-west-2.amazonaws.com/bedrock-agentcore-runtime_ex
獲取或創建代理的執行角色: runtime_ex
使用 AWS 區域: us-west-2、帳戶 ID: hogehoge
角色名稱: hogehoge
⠙ 正在啟動 Bedrock AgentCore...角色不存在,創建新角色: hogehoge
⠹ 正在啟動 Bedrock AgentCore...開始為代理 'runtime_ex' 創建執行角色流程
✓ 角色創建中: hogehoge
創建 IAM 角色: hogehoge
⠴ 正在啟動 Bedrock AgentCore...✓ 角色創建: arn:aws:iam::hogehoge
⠋ 正在啟動 Bedrock AgentCore...✓ 附加執行策略: hogehogeBedrockAgentCoreRuntimeExecutionPolicy-runtime_ex
角色創建完成並準備與 Bedrock AgentCore 一同使用
✅ 執行角色可用: arn:aws:iam::hogehoge:role/AmazonBedrockAgentCoreSDKRuntime-us-west-2-d69978d78f
準備 CodeBuild 專案並上傳來源...
⠏ 正在啟動 Bedrock AgentCore... 獲取或創建代理的 CodeBuild 執行角色: runtime_ex
角色名稱: hogehoge
⠇ 正在啟動 Bedrock AgentCore... CodeBuild 角色不存在,創建新角色: AmazonBedrockAgentCoreSDKCodeBuild-us-west-2-d69978d78f
創建 IAM 角色: AmazonBedrockAgentCoreSDKCodeBuild-us-west-2-d69978d78f
⠏ 正在啟動 Bedrock AgentCore...✓ 角色創建: arn:aws:iam::hogehoge:role/AmazonBedrockAgentCoreSDKCodeBuild-us-west-2-d69978d78f
附加內聯策略: CodeBuildExecutionPolicy 到角色: AmazonBedrockAgentCoreSDKCodeBuild-us-west-2-d69978d78f
⠸ 正在啟動 Bedrock AgentCore...✓ 策略已附加: CodeBuildExecutionPolicy
等待 IAM 角色生成...
⠇ 正在啟動 Bedrock AgentCore...CodeBuild 執行角色創建完成: arn:aws:iam::hogehoge:role/AmazonBedrockAgentCoreSDKCodeBuild-us-west-2-d69978d78f
⠸ 正在啟動 Bedrock AgentCore...使用 .dockerignore,包含 44 個模式
⠋ 正在啟動 Bedrock AgentCore...上傳來源至 S3: runtime_ex/source.zip
⠏ 正在啟動 Bedrock AgentCore...創建 CodeBuild 專案: bedrock-agentcore-runtime_ex-builder
開始 CodeBuild 構建(這可能需要幾分鐘)...
⠴ 正在啟動 Bedrock AgentCore...開始 CodeBuild 監控...
⠇ 正在啟動 Bedrock AgentCore...🔄 排隊開始(總計: 0s)
⠸ 正在啟動 Bedrock AgentCore...✅ 排隊完成,耗時 1.2s
🔄 配置開始(總計: 1s)
⠏ 正在啟動 Bedrock AgentCore...✅ 配置完成,耗時 9.3s
🔄 下載來源開始(總計: 11s)
⠸ 正在啟動 Bedrock AgentCore...✅ 下載來源完成,耗時 1.2s
🔄 構建開始(總計: 12s)
⠏ 正在啟動 Bedrock AgentCore...✅ 構建完成,耗時 14.1s
🔄 後構建開始(總計: 26s)
⠹ 正在啟動 Bedrock AgentCore...✅ 後構建完成,耗時 5.8s
🔄 完成開始(總計: 32s)
⠧ 正在啟動 Bedrock AgentCore...✅ 完成,耗時 1.2s
🎉 CodeBuild 成功完成,耗時 0m 32s
CodeBuild 成功完成
✅ CodeBuild 專案配置已保存
部署至 Bedrock AgentCore...
將記憶配置傳遞至代理: runtime_ex_mem-eyH8CX2jlV
⠸ 正在啟動 Bedrock AgentCore...✅ 代理已創建/更新: arn:aws:bedrock-agentcore:us-west-2:017820658462:runtime/runtime_ex-JSXMBUGk3e
觀測已啟用,配置交易搜索...
⠙ 正在啟動 Bedrock AgentCore...CloudWatch 日誌資源策略已配置
⠋ 正在啟動 Bedrock AgentCore...X-Ray 追蹤目的地已配置
⠹ 正在啟動 Bedrock AgentCore...X-Ray 索引規則已配置
✅ 交易搜尋已完全配置
🔍 GenAI 觀測儀表板:
   https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#gen-ai-observability/agent-core
輪詢以檢查端點是否就緒...
⠦ 正在啟動 Bedrock AgentCore...代理端點: arn:aws:bedrock-agentcore:us-west-2:hogehoge:runtime/runtime_ex-JSXMBUGk3e/runtime-endpoint/DEFAULT
部署成功完成 - 代理: arn:aws:bedrock-agentcore:us-west-2:hogehoge:runtime/runtime_ex-JSXMBUGk3e
╭───────────────────────────────────────────────────────────── 部署成功 ─────────────────────────────────────────────────────────────╮
│ ✅ CodeBuild 部署成功!                                                                                                           │
│                                                                                                                                              │
│ 代理詳情:                                                                                                                               │
│ 代理名稱: runtime_ex                                                                                                                       │
│ 代理 ARN: hogehoge                                                    │
│ ECR URI: hogehoge.dkr.ecr.us-west-2.amazonaws.com/bedrock-agentcore-runtime_ex:latest                                                    │
│ CodeBuild ID: hogehoge                                                  │
│                                                                                                                                              │
│ 🚀 ARM64 容器已部署到 Bedrock AgentCore                                                                                             │
│                                                                                                                                              │
│ 下一步:                                                                                                                                  │
│    agentcore status                                                                                                                          │
│    agentcore invoke '{"prompt": "Hello"}'                                                                                                    │
│                                                                                                                                              │
│ 📋 CloudWatch 日誌:                                                                                                                          │
│    /aws/bedrock-agentcore/runtimes/runtime_ex-JSXMBUGk3e-DEFAULT --log-stream-name-prefix "2025/10/17/[runtime-logs]"                        │
│    /aws/bedrock-agentcore/runtimes/runtime_ex-JSXMBUGk3e-DEFAULT --log-stream-names "otel-rt-logs"                                           │
│                                                                                                                                              │
│ 🔍 GenAI 觀測儀表板:                                                                                                            │
│    https://console.aws.amazon.com/cloudwatch/home?region=us-west-2#gen-ai-observability/agent-core                                           │
│                                                                                                                                              │
│ ⏱️  注意: 觀測數據可能需要長達 10 分鐘才能在第一次啟動後顯示                                                           │
│                                                                                                                                              │
│ 💡 查詢日誌:                                                                                                                           │
│    aws logs tail /aws/bedrock-agentcore/runtimes/runtime_ex-JSXMBUGk3e-DEFAULT --log-stream-name-prefix "2025/10/17/[runtime-logs]" --follow │
│    aws logs tail /aws/bedrock-agentcore/runtimes/runtime_ex-JSXMBUGk3e-DEFAULT --log-stream-name-prefix "2025/10/17/[runtime-logs]" --since 1h                                                           │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

確認運行效果

啟動可以使用以下命令進行。
這次我們詢問了有關 JAWS-UG 的問題。

uv run agentcore invoke '{"prompt": " JAWS-UG 說明"}'

回應如下。

Response:
{"result": {"role": "assistant", "content": [{"text": "JAWS-UG是,日本AWS用戶組(Japan AWS User Group)的簡稱。\n\n## 概要\n- 
**正式名稱**: Japan AWS User Group\n- **目的**: AWS(Amazon Web Services)用來進行日本的用戶之間的資訊交換・交流\n- **運營型態**: 
社群基地的非營利組織\n\n## 主要活動\n1. **舉辦學習會・講座**\n   - AWS的新服務介紹\n   - 實用的技術會議\n   - 
實作型的學習會\n\n2. **區域支部活動**\n   - 在全國各地有支部存在\n   - 根據地區特性舉辦活動\n\n3. **線上活動**\n   - 
在Slack等平台進行溝通\n   - 資訊共享・問題回應\n\n## 參加的好處\n- 與AWS技術者建立人脈\n- 獲取最新的AWS資訊\n- 
分享實務經驗\n- 職涯發展的機會\n\n## 參加方式\n- 確認官方網站或SNS上的資訊\n- 登錄參加學習會\n- 
參加線上社區\n\nJAWS-UG是,從想學習AWS的初學者到上級者均可參加的日本最大規模的AWS社群之一。"}]}}

日誌檢查

這部分可以通過使用 Amazon Bedrock AgentCore 的 GenAI 觀測工具更容易理解。

移動到 CloudWatch 控制台後,將可以見到 GenAI 觀測的新增資訊。
此時出現了在預覽期間沒有的 Model Invocation。

image.png

在儀表板上,可以跟蹤剛才在 Runtime 處理的日誌。
這次只是簡單地向 LLM 提問,但也可以查看它是如何處理的。
對於需要連接多個代理的結構來說,這會是一個不錯的功能。

image.png

此外,下面還可以查看更詳細的處理日誌。
這次處理似乎沒有問題,但若發生錯誤等,除錯會變得非常簡單。

image.png

image.png

付費體系

一般而言,將根據使用量進行收費。

CPU: $0.0895/vCPU 時間
記憶: $0.00945/GB 時間

詳細資訊請參考以下官方網站。

最後

本文介紹了如何使用 Amazon Bedrock AgentCore 將自製代理部署到 Runtime 並使其運行的流程。
步驟實在簡單,讓人忍不住想這樣真的可以嗎?

不過,一旦掌握流程後,就能將使用 Strands 等所創建的代理直接部署並運行到 Bedrock 上,而這樣「開發 → 測試 → 實際運行」的整個過程都可在管理下進行,也是極大的吸引力。


原文出處:https://qiita.com/yakumo_09/items/eaa3b6062396227615a2


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

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝26   💬9   ❤️7
656
🥈
我愛JS
📝4   💬13   ❤️7
284
🥉
御魂
💬1  
4
#4
2
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付