AgentCore Gateway 入門
在此快速入門指南中,您將了解如何設定閘道,並使用 AgentCore CLI 將其整合到您的代理程式。如需更完整的指南和範例,請參閱 Amazon Bedrock AgentCore Gateway GitHub 儲存庫
注意
AgentCore CLI 提供命令和互動式 TUI 精靈,用於管理 AgentCore Gateway 資源。如需完整的 AWS SDK API 參考,請參閱 AgentCore 控制平面操作
先決條件
開始之前,請確定您有下列項目:
-
AWS 已設定登入資料的帳戶。若要設定登入資料,您可以依照 CLI AWS 入門中的步驟安裝和使用 AWS 命令列界面。
-
已安裝 Node.js 18+ (適用於 AgentCore CLI)。
-
已安裝 Python 3.10+ (適用於代理程式指令碼)。
-
建立角色、Lambda 函數和使用 Amazon Bedrock AgentCore 的 IAM 許可。
-
模型存取 – 在 Amazon Bedrock 主控台 (或示範代理程式的其他模型) 中啟用 Anthropic 的 Claude Sonnet 3.7
步驟 1:設定和安裝
全域安裝 AgentCore CLI:
npm install -g @aws/agentcore
使用 代理程式和閘道建立新的 AgentCore 專案:
範例
步驟 2:建立閘道
使用 AgentCore CLI 將閘道和目標新增至您的專案:
範例
若要改用 JWT 型授權,--authorizer-type CUSTOM_JWT請使用 OAuth 探索 URL 指定 :
範例
步驟 3:執行設定
將您的專案部署至 AWS:
agentcore deploy
CLI 會合成 AWS CDK 堆疊,並將您的閘道、目標和代理程式部署到 Amazon Bedrock AgentCore。這大約需要 2-3 分鐘。
步驟 4:搭配 代理程式使用閘道
使用 AgentCore CLI 擷取您的閘道 URL:
agentcore status
建立名為 的新檔案run_agent.py,並插入下列程式碼。首先安裝 Python 相依性:
pip install strands-agents mcp
""" Agent script to test the Gateway Run this after setup: python run_agent.py """ from strands import Agent from strands.models import BedrockModel from strands.tools.mcp.mcp_client import MCPClient from mcp.client.streamable_http import streamablehttp_client import json import sys def create_streamable_http_transport(mcp_url: str): return streamablehttp_client(mcp_url) def get_full_tools_list(client): """Get all tools with pagination support""" more_tools = True tools = [] pagination_token = None while more_tools: tmp_tools = client.list_tools_sync(pagination_token=pagination_token) tools.extend(tmp_tools) if tmp_tools.pagination_token is None: more_tools = False else: more_tools = True pagination_token = tmp_tools.pagination_token return tools def run_agent(): # Get the gateway URL from agentcore status gateway_url = "<YOUR_GATEWAY_URL>" # Replace with URL from 'agentcore status' # Model configuration - change if needed model_id = "anthropic.claude-3-7-sonnet-20250219-v1:0" print("Starting AgentCore Gateway Test Agent") print(f"Gateway URL: {gateway_url}") print(f"Model: {model_id}") print("-" * 60) # Setup Bedrock model bedrockmodel = BedrockModel( model_id=model_id, streaming=True, ) # Setup MCP client (no auth token needed for NONE authorizer) mcp_client = MCPClient(lambda: create_streamable_http_transport(gateway_url)) with mcp_client: # List available tools tools = get_full_tools_list(mcp_client) print(f"\nAvailable tools: {[tool.tool_name for tool in tools]}") print("-" * 60) # Create agent agent = Agent(model=bedrockmodel, tools=tools) # Interactive loop print("\nInteractive Agent Ready!") print("Try asking: 'What's the weather in Seattle?'") print("Type 'exit', 'quit', or 'bye' to end.\n") while True: user_input = input("You: ") if user_input.lower() in ["exit", "quit", "bye"]: print("Goodbye!") break print("\nThinking...\n") response = agent(user_input) print(f"\nAgent: {response.message.get('content', response)}\n") if __name__ == "__main__": run_agent()
執行您的代理程式
透過執行代理程式並與工具互動來測試您的閘道。
python run_agent.py
就這樣!代理程式將啟動,您可以詢問下列問題:
-
「西雅圖的天氣如何?」
-
「在紐約是幾點?」
您已建置的內容
透過本入門教學課程,您已建立下列資源:
-
MCP 伺服器 (閘道):位於 的受管端點
https://gateway-id.gateway.bedrock-agentcore.region.amazonaws.com/mcp -
Lambda 工具 :傳回測試資料的模擬函數 (天氣:「72°F,陽光」,時間:「下午 2:30」)
-
AI 代理程式 :可探索和使用您的工具的 Claude 支援助理
疑難排解
下表顯示一些可能的問題及其解決方案:
| 問題 | 解決方案 |
|---|---|
|
「沒有名為 'strands' 的模組」 |
執行: |
|
「未啟用模型」 |
在 Bedrock 主控台中啟用 Claude Sonnet 3.7 → 模型存取 |
|
「AccessDeniedException」 |
檢查 bedrock-agentcore 的 IAM 許可:* |
|
閘道未回應 |
建立 DNS 傳播後等待 30-60 秒 |
快速驗證
在終端機中執行下列命令,以檢查您的閘道是否正常運作。
# Check your Gateway is working curl -X POST YOUR_GATEWAY_URL \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' # Watch live logs aws logs tail /aws/bedrock-agentcore/gateways/YOUR_GATEWAY_ID --follow
清除
若要從專案中移除閘道及其目標:
agentcore remove gateway --name TestGateway
若要移除所有資源並重新部署:
agentcore remove all agentcore deploy
後續步驟
-
自訂 Lambda 工具 :使用業務邏輯建立 Lambda 函數
-
新增您自己的 APIs:使用真實服務的 OpenAPI 規格擴展閘道
-
生產設定:設定 VPC 端點、自訂網域和監控