ãã®ããã°ã¯ Transform your MCP architecture: Unite MCP servers through AgentCore Gateway ã®ç¿»èš³èšäºã§ãã â AI ãšãŒãžã§ã³ããå€§èŠæš¡ã«å©çšãããŠããäžã§ãç¬èªã® Model Context Protocol (MCP) ãµãŒããŒãäœæããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ããã¡ã€ã³ãçµç¹ã®æ©èœãããŒã åãã« AI ãšãŒãžã§ã³ããã«ã¹ã¿ãã€ãºããã±ãŒã¹ãå¢ããŠããŸãããŸããæ¢åã® MCP ãµãŒããŒããªãŒãã³ãœãŒã¹ã® MCP ãµãŒããŒã AI ã¯ãŒã¯ãããŒçšã«çµ±åããå¿
èŠããããŸããã«ã¹ã¿ã ãã«ãããããªãã¯å©çšå¯èœããªãŒãã³ãœãŒã¹ãªã©ã®æ§ã
ãªåœ¢æ
ã® MCP ãµãŒããŒããAI ãšãŒãžã§ã³ãã容æã«å©çšã§ããçµç¹å
šäœã§çµ±äžãããã€ã³ã¿ãŒãã§ãŒã¹ã«å¹ççã«çµ±åããæ¹æ³ãå¿
èŠã§ãã ä»å¹Žã®åãã« AWS 㯠Amazon Bedrock AgentCore Gateway ãçºè¡šããŸãããããã¯å®å
šãããŒãžãåãµãŒãã¹ã§ãäžå€®éçŽåã® MCP ãµãŒããŒãšããŠæ©èœãããšãŒãžã§ã³ããããŒã«ãçºèŠãã¢ã¯ã»ã¹ãåŒã³åºãããã®çµ±äžãããã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸãããããŠçŽè¿ã§ã¯ã AgentCore Gateway ã«æ¢åã® MCP ãµãŒããŒãã¿ãŒã²ããã¿ã€ããšããŠãµããŒãããæ©èœæ¡åŒµã宿œããŸããããã®æ©èœã«ãããè€æ°ã®ã¿ã¹ã¯åºæã® MCP ãµãŒããŒããåäžã® MCP ã²ãŒããŠã§ã€ã€ã³ã¿ãŒãã§ãŒã¹ã®èåŸã«ã°ã«ãŒãåã§ããŸããããã«ãããåå¥ã®ã²ãŒããŠã§ã€ãç¶æããéçšã®è€éãã軜æžããã(AgentCore Gateway ã®ã¿ãŒã²ãããšããŠãããŸã§å©çšå¯èœã§ãã£ã) REST API ã AWS Lambda 颿°ãšåæ§ã«äžå€®éçŽåã®ããŒã«ããã³èªèšŒç®¡çãæäŸãããŸãã äžå€®éçŽåã®ã¢ãããŒããåããªãå Žåã1) çµç¹å
šäœã§ããŒã«ãçºèŠãå
±æããããšãå°é£ãšãªãã2) è€æ°ã® MCP ãµãŒããŒéã§ã®èªèšŒç®¡çãè€éã«ãªãã3) åãµãŒããŒã«å¯ŸããŠåå¥ã®ã²ãŒããŠã§ã€ã€ã³ã¹ã¿ã³ã¹ãç¶æãã管çå·¥æ°ãã課é¡ãšãªããŸããAmazon Bedrock AgentCore Gateway ã¯ãæ¢åã® MCP ãµãŒããŒããã€ãã£ãã¿ãŒã²ãããšããŠæ±ãããšã§ãããã®èª²é¡ã解決ããã«ãŒãã£ã³ã°ãèªèšŒãããŒã«ç®¡çã®ããã®åäžã®å¶åŸ¡ãã€ã³ããé¡§å®¢ã«æäŸããŸããããã«ãããMCP ãµãŒããŒã®çµ±åãä»ã®ã¿ãŒã²ãããã²ãŒããŠã§ã€ã«è¿œå ããã®ãšåãæ§ã«ç°¡åã«å®çŸã§ããŸãã MCP ã®ãµã€ããæç Žãã: ãšã³ã¿ãŒãã©ã€ãºããŒã ãçµ±äžããã Gateway ãå¿
èŠãšããçç± è€æ°ã®ããŒã ãç¹å®ã®ãã¡ã€ã³çšã«ç¹åãã MCP ãµãŒããŒãéçšãã e ã³ããŒã¹æ³šæã·ã¹ãã ã®ã±ãŒã¹ãèããŠã¿ãŸãããã ã·ã§ããã³ã°ã«ãŒãããŒã ã¯ã«ãŒã管çããŒã«ãæã€ MCP ãµãŒããŒãéçšããŠããŸãã 補åã«ã¿ãã°ããŒã ã¯è£œåã®é²èŠ§ãšæ€çŽ¢ã®ããã® MCP ãµãŒããŒãéçšããŠããŸãã ããã¢ãŒã·ã§ã³ããŒã ã¯ããã¢ãŒã·ã§ã³ããžãã¯ãåŠçãã MCP ãµãŒããŒãéçšããŠããŸãã 以åã¯ã泚æãšãŒãžã§ã³ãã¯ãããã®å MCP ãµãŒããŒã«åå¥ã«æ¥ç¶ãèªèšŒã³ã³ããã¹ãã管çããå¿
èŠããããŸãããAgentCore Gateway ã® MCP ãµãŒããŒã¿ãŒã²ããã«ãããåäžã®ã²ãŒããŠã§ã€ã®äžã«çµ±åããªãããããŒã åºæã®æææš©ãšã¢ã¯ã»ã¹å¶åŸ¡ãç¶æã§ããããã«ãªããŸããããã®ã¢ãããŒãã®åšåã¯ãçµç¹å©çšã«ããã MCP ãµãŒããŒã®èšèšãæè»ã«ã§ããããšã§ããè€æ°ã®ããžãã¯ã«åºã¥ã㊠MCP ãµãŒããŒãã°ã«ãŒãåã§ããŸãã ããžãã¹ãŠããããšã®æŽå : MCP ãµãŒããŒãããžãã¹ãŠãããããšã«æŽçããŸãã è£œåæ©èœã®å¢ç : å補åããŒã ããã¡ã€ã³åºæã®ããŒã«ãæã€ MCP ãµãŒããŒãææããæç¢ºãªæææš©ãç¶æããªãããšãŒãžã§ã³ãçšã®çµ±äžãããã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸãã ã»ãã¥ãªãã£ãšã¢ã¯ã»ã¹å¶åŸ¡ : ç°ãªã MCP ãµãŒããŒã«ã¯ç°ãªãèªèšŒã¡ã«ããºã ãå¿
èŠã§ããã²ãŒããŠã§ã€ãèªèšŒã®è€éããåŠçããèªå¯ããããšãŒãžã§ã³ããå¿
èŠãªããŒã«ã«ç°¡åã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãã æ¬¡ã®å³ã¯ã泚æãšãŒãžã§ã³ãã AgentCore Gateway ãéããŠè€æ°ã® MCP ãµãŒããŒãšããåãããæ§åã瀺ããŠããŸãããšãŒãžã§ã³ãã¯ã²ãŒããŠã§ã€ã«æ¥ç¶ããå©çšå¯èœãªããŒã«ãçºèŠããŸããåããŒã ã¯ãã¡ã€ã³åºæã®ããŒã«ã管çããªãããçµç¹å
šäœã§ã®äžè²«ãããšãŒãžã§ã³ãå©çšäœéšã«è²¢ç®ããŸããã²ãŒããŠã§ã€ã¯ããŒã«åã®ç«¶åãèªèšŒãåŠçããããŒã«å
šäœã§çµ±äžçãªã»ãã³ãã£ãã¯æ€çŽ¢ãæäŸããŸãã AgentCore Gateway ã¯ãææ°ã®ãšãŒãžã§ã³ãã¢ãŒããã¯ãã£ã«ãããçµ±åãããšããŠæ©èœãã倿§ãªãšãŒãžã§ã³ãå®è£
ãå¹
åºãããŒã«ãããã€ããŒãšæ¥ç¶ããããã®çµ±äžãããã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸããå³ã«ç€ºãããŠããã¢ãŒããã¯ãã£ã¯ãã²ãŒããŠã§ã€ããšãŒãžã§ã³ããšããŒã«å®è£
ã¢ãããŒãã®éã®ã®ã£ãããåããæ¹æ³ã瀺ããŠãããçŸåšã¯ MCP ãµãŒããŒã¿ãŒã²ãããçŽæ¥çµ±åããæ©èœã匷åãããŠããŸãã AgentCore Gateway çµ±åã¢ãŒããã¯ã㣠AgentCore Gateway ã§ã¯ãã¿ãŒã²ããããšãŒãžã§ã³ãã«æäŸããããŒã«ãèŠå®ããŸããã¿ãŒã²ããã«ã¯ Lambda 颿°ãOpenAPI 仿§ãSmithy ã¢ãã«ãMCP ãµãŒããŒããã®ä»ã®ããŒã«å®çŸ©ãæå®ããããšãã§ããŸãã ã¢ãŒããã¯ãã£ã®ã¿ãŒã²ããçµ±ååŽã¯ãããŒã«çµ±åã«ãããã²ãŒããŠã§ã€ã®æ±çšæ§ã瀺ããŠããŸããMCP ãµãŒããŒã¿ãŒã²ããæ©èœã«ãããã²ãŒããŠã§ã€ã¯ãããªã㯠MCP ãµãŒããŒããã®ããŒã«ãçŽæ¥çµã¿èŸŒãããšãã§ããä»ã®ã¿ãŒã²ããã¿ã€ããšåçã«æ±ããŸãããã®æ©èœã¯ããã AgentCore Gateway ã€ã³ã¹ã¿ã³ã¹ãå¥ã®ã€ã³ã¹ã¿ã³ã¹ã®ã¿ãŒã²ãããšããŠæ©èœãããã§ãã¬ãŒã·ã§ã³ã·ããªãªã«ãæ¡åŒµãããçµç¹ã®å¢çãè¶ããéå±€çãªããŒã«ç·šæãå¯èœã«ãªããŸããã²ãŒããŠã§ã€ã¯ãããŒã«ãšããŠå
¬éããããšãŒãžã§ã³ããæã€ AgentCore Runtime ã€ã³ã¹ã¿ã³ã¹ããã©ã€ããŒã MCP ãµãŒããŒãåŸæ¥ã® AWS Lambda 颿°ãSmithy ããã³ AWS ãµãŒãã¹ API ã®äž¡æ¹ãšã·ãŒã ã¬ã¹ã«çµ±åã§ããŸãã ã¿ãŒã²ããã®å€æ§æ§ã«å ããŠãã²ãŒããŠã§ã€ã®èªèšŒã¢ãŒããã¯ãã£ã¯æŽãªãéçšäžã®ã¡ãªãããæäŸããŸããã²ãŒããŠã§ã€ã¯ãã€ã³ããŠã³ãèªèšŒãã¿ãŒã²ããã·ã¹ãã ããåãé¢ãããšãŒãžã§ã³ããåäžã®ã€ã³ã¿ãŒãã§ãŒã¹ãéããŠè€æ°ã® ID ãããã€ããŒã䜿çšããããŒã«ã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãããã®äžå€®éçŽåã®ã¢ãããŒãã«ãããAI ãšãŒãžã§ã³ãã®éçºããããã€ãã¡ã³ããã³ã¹ãç°¡çŽ åãããŸããMCP ãµãŒããŒã¿ãŒã²ããã«ãåãã¢ãããŒãã䜿çšã§ããã²ãŒããŠã§ã€ãã¿ãŒã²ããçšã«æ§æããã ID ãããã€ããŒã䜿çšããŠãµãŒããŒãšã®ã€ã³ã¿ãŒãã§ãŒã¹ã®è€éãã管çããŸãã ã²ãŒããŠã§ã€ãæäŸããèªèšŒæ©èœã«ãããçµ±äžãããã¢ãŒããã¯ãã£ã§ããŒã«ã管çããããšãã§ããŸãããšãŒãžã§ã³ããããŒã«ã®çºèŠãèŠæ±ãããšãã²ãŒããŠã§ã€ã¯ã¿ãŒã²ããã®çš®é¡ã«ãããäžè²«ããããŒã«æ
å ±ãæäŸããŸããã»ãã³ãã£ãã¯æ€çŽ¢æ©èœã¯ããŒã«ã¿ã€ãå
šäœã§åäœããããããšãŒãžã§ã³ãã¯å®è£
ã«é¢ä¿ãªãé¢é£ããããŒã«ãçºèŠã§ããŸããããŒã«ã®åŒã³åºãäžãã²ãŒããŠã§ã€ã¯å¿
èŠãªãããã³ã«å€æãèªèšŒãããŒãããŒã¿å€æãåŠçããç°ãªãã¿ãŒã²ããã·ã¹ãã ã®è€éãã管çããªããããšãŒãžã§ã³ãã«ã¯ãªãŒã³ã§äžè²«ããã€ã³ã¿ãŒãã§ãŒã¹ãæç€ºããŸãã MCP ãµãŒããŒã¿ãŒã²ãããµããŒãã®è¿œå ã¯ãã²ãŒããŠã§ã€ã®æ©èœã«ãããéèŠãªé²åã衚ããŠããŸããåŸæ¥ã® API ã Lambda 颿°ãç¶æããªãããMCP ãã€ãã£ãããŒã«ãçŽæ¥çµ±åã§ããããã«ãªããŸããããã®æè»æ§ã«ãããæ®µéçãªç§»è¡æŠç¥ãå¯èœã«ãªããããŒã ã¯æ¢åã®çµ±åãç¶ç¶çã«éçšããªãããç¬èªã®ããŒã¹ã§ MCP ãã€ãã£ãå®è£
ãæ¡çšã§ããŸããã²ãŒããŠã§ã€ã®åæã¡ã«ããºã ã¯ãç°ãªãã¿ãŒã²ããã¿ã€ãéã§ããŒã«å®çŸ©ãææ°ã®ç¶æ
ãä¿ã€ããšãä¿èšŒãããã®èªèšŒããã³æ¿èªã·ã¹ãã ã¯ãåºç€ãšãªãããŒã«å®è£
ã«é¢ä¿ãªãäžè²«ããã»ãã¥ãªãã£å¶åŸ¡ãæäŸããŸãã ã²ãŒããŠã§ã€ã¯ãMCP ãµãŒããŒãåŸæ¥ã® APIããµãŒããŒã¬ã¹é¢æ°ãäžè²«ããããŒã«ç°å¢ã«çµ±åããŸãããã®æ©èœã¯ããšã³ã¿ãŒãã©ã€ãºã°ã¬ãŒãã®ã»ãã¥ãªãã£ãšããã©ãŒãã³ã¹ãšãšãã«ããšãŒãžã§ã³ãã³ã³ãã¥ãŒãã£ã³ã°ã«ãšã£ãŠæçãªã€ã³ãã©ã¹ãã©ã¯ãã£ãšãªããŸãã ãœãªã¥ãŒã·ã§ã³ã®ãŠã©ãŒã¯ã¹ã«ãŒ ãã®ã»ã¯ã·ã§ã³ã§ã¯ãAgentCore Gateway ã§ MCP ãµãŒããŒã¿ãŒã²ãããèšå®ããæé ãã玹ä»ããŸããMCP ãµãŒããŒã AgentCore Gateway ã«è¿œå ããããšã§ãå€§èŠæš¡ãª MCP ãµãŒããŒã管çããéã®ããŒã«ç®¡çãã»ãã¥ãªãã£èªèšŒãéçšã®ãã¹ããã©ã¯ãã£ã¹ãäžå
åã§ããŸãã AgentCore Gateway ãž MCP Server ã远å ãã AgentCore Gateway ãäœæããMCP Server ãã¿ãŒã²ãããšããŠè¿œå ããŸãã åææ¡ä»¶ 次ã®åææ¡ä»¶ã確èªããŠãã ããã Amazon Bedrock AgentCore ã¢ã¯ã»ã¹æš©ãæã€ AWS ã¢ã«ãŠã³ãã詳现ã«ã€ããŠã¯ã Permissions for AgentCore Runtime ã®ããã¥ã¡ã³ããåç
§ããŠãã ããã Python 3.12 以é OAuth 2.0 ã®åºæ¬çãªçè§£ è€æ°ã®ã€ã³ã¿ãŒãã§ãŒã¹ãéããŠã²ãŒããŠã§ã€ãäœæããã¿ãŒã²ããã远å ã§ããŸãã AWS SDK for Python (Boto3) AWS Management Console AWS Command Line Interface (AWS CLI) é«éã§ç°¡åãªã»ããã¢ããã®ããã® AgentCore starter toolkit 次ã®å®çšçãªäŸãšã³ãŒãã¹ããããã¯ãAmazon Bedrock AgentCore Gateway ã®ã»ããã¢ãããšäœ¿ç𿹿³ã瀺ããŠããŸããã€ã³ã¿ã©ã¯ãã£ãã«æäœãããå Žåã¯ã GitHub ã® Jupyter Notebook ãµã³ãã« ããåç
§ãã ããã ã²ãŒããŠã§ã€ãäœæãã ã²ãŒããŠã§ã€ãäœæããã«ã¯ãAgentCore starter toolkit ã䜿çšããŠãJWT ããŒã¹ã®ã€ã³ããŠã³ãèªèšŒçšã« Amazon Cognito ã䜿çšãã ããã©ã«ãã®èªèšŒæ§æãäœæ ã§ããŸããCognito ã®ä»£ããã«å¥ã® OAuth 2.0 æºæ ã®èªèšŒãããã€ã㌠ã䜿çšããããšãã§ããŸãã import time import boto3 gateway_client = boto3.client("bedrock-agentcore-control") # èªèšŒæ§æãäœæããŸãããã® Gateway ãžã®ã¢ã¯ã»ã¹ãæ¿èªãããã¯ã©ã€ã¢ã³ããæå®ããŸã auth_config = { "customJWTAuthorizer": { "allowedClients": ['<cognito_client_id>'], # ã¯ã©ã€ã¢ã³ã㯠Cognito ã§æ§æããã ClientId ãšäžèŽããå¿
èŠããããŸã "discoveryUrl": '<cognito_oauth_discovery_url>', } } # create_gateway API ãåŒã³åºããŸã # ãã®æäœã¯éåæãªã®ã§ãGateway ã®äœæã«æéããããå ŽåããããŸã # ãã® Gateway 㯠CUSTOM_JWT ãªãŒãœã©ã€ã¶ãŒãã€ãŸã auth_config ã§åç
§ãã Cognito User Pool ãæŽ»çšããŸã def deploy_gateway(poll_interval=5): create_response = gateway_client.create_gateway( name="DemoGateway", roleArn="<IAM Role>", # IAM Role ã«ã¯ Gateway ã®äœæ/äžèŠ§è¡šç€º/ååŸ/åé€ã®æš©éãå¿
èŠã§ã protocolType="MCP", authorizerType="CUSTOM_JWT", authorizerConfiguration=auth_config, description="AgentCore Gateway with MCP Server Target", ) gatewayID = create_response["gatewayId"] gatewayURL = create_response["gatewayUrl"] # ãããã€ãåŸ
æ©ããŸã while True: status_response = gateway_client.get_gateway(gatewayIdentifier=gatewayID) status = status_response["status"] if status == "READY": print("â
AgentCore Gateway is READY!") break elif status in ["FAILED"]: print(f"â Deployment failed: {status}") return None print(f"Status: {status} - waiting...") time.sleep(poll_interval) if __name__ == "__main__": deploy_gateway() # < > ã®å€ã¯å®éã®å€ã«çœ®ãæããå¿
èŠããããŸã ãµã³ãã« MCP Server ãäœæãã äŸãšããŠãéçãªå¿çãè¿ã 3 ã€ã®ç°¡åãªããŒã«ãæã€ãµã³ãã« MCP ãµãŒããŒãäœæããŸãããããµãŒããŒã¯ stateless_http=True ãæå®ãã FastMCP ã䜿çšããŠããããã㯠AgentCore Runtime ã®äºææ§ã«å¿
èŠ ã§ãã from mcp.server.fastmcp import FastMCP mcp = FastMCP(host="0.0.0.0", stateless_http=True) @mcp.tool() def getOrder() -> int: """泚æãååŸããŸã""" return 123 @mcp.tool() def updateOrder(orderId: int) -> int: """æ¢åã®æ³šæãæŽæ°ããŸã""" return 456 @mcp.tool() def cancelOrder(orderId: int) -> int: """æ¢åã®æ³šæããã£ã³ã»ã«ããŸã""" return 789 if __name__ == "__main__": mcp.run(transport="streamable-http") AgentCore Runtime ãããã€ãæ§æãã æ¬¡ã«ãstarter toolkit ã䜿çšã㊠AgentCore Runtime ãããã€ãæ§æããŸãããã®ããŒã«ãããã¯ãèµ·åæã« Amazon ECR ãªããžããªãäœæããAgentCore Runtime ãžã®ãããã€çšã® Dockerfile ãçæã§ããŸãããã®å®è£
ã¯äŸãšããŠç€ºããŠãããã®ã®ãããå®éã«ã¯ç¬èªã® MCP ãµãŒããŒå®è£
ã䜿çšããŠãã ãããå®éã®ç°å¢ã§ã¯ãMCP ãµãŒããŒã®ã€ã³ããŠã³ãèªèšŒã¯ã²ãŒããŠã§ã€ã®æ§æãšã¯ç°ãªãå¯èœæ§ããããŸãããã®å Žåã Runtime èªèšŒçšã® Amazon Cognito ãŠãŒã¶ãŒããŒã«ãäœæãã ãµã³ãã«ã³ãŒããåç
§ããŠãã ããã from bedrock_agentcore_starter_toolkit import Runtime from boto3.session import Session boto_session = Session() region = boto_session.region_name print(f"Using AWS region: {region}") required_files = ['mcp_server.py', 'requirements.txt'] for file in required_files: if not os.path.exists(file): raise FileNotFoundError(f"Required file {file} not found") print("All required files found â") agentcore_runtime = Runtime() auth_config = { "customJWTAuthorizer": { "allowedClients": [ '<runtime_cognito_client_id>' # ã¯ã©ã€ã¢ã³ã㯠Cognito ã§æ§æããã ClientId ãšäžèŽããå¿
èŠããããGateway Cognito ãããã€ããŒãšã¯å¥ã«ããããšãã§ããŸã ], "discoveryUrl": '<cognito_oauth_discovery_url>', } } print("Configuring AgentCore Runtime...") response = agentcore_runtime.configure( entrypoint="mcp_server.py", auto_create_execution_role=True, auto_create_ecr=True, requirements_file="requirements.txt", region=region, authorizer_configuration=auth_config, protocol="MCP", agent_name="mcp_server_agentcore" ) print("Configuration completed â") # < > ã®å€ã¯å®éã®å€ã«çœ®ãæããå¿
èŠããããŸã MCP ãµãŒããŒã AgentCore Runtime äžã§èµ·åãã Dockerfile ãã§ããã®ã§ãMCP ãµãŒããŒã AgentCore Runtime äžã§èµ·åããŸãããã print("Launching MCP server to AgentCore Runtime...") print("This may take several minutes...") launch_result = agentcore_runtime.launch() agent_arn = launch_result.agent_arn agent_id = launch_result.agent_id print("Launch completed â") encoded_arn = agent_arn.replace(':', '%3A').replace('/', '%2F') mcp_url = f"https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{encoded_arn}/invocations?qualifier=DEFAULT" print(f"Agent ARN: {launch_result.agent_arn}") print(f"Agent ID: {launch_result.agent_id}") AgentCore Gateway ã®ã¿ãŒã²ãããšã㊠MCP ãµãŒããŒãäœæãã AgentCore Gateway ã AgentCore Runtime äžã® MCP ãµãŒããŒãžã¢ã¯ã»ã¹ããéã®ã¢ãŠãããŠã³ãèªèšŒçšã«ãAgentCore Identity Resource Credential Provider ãäœæããŸãã identity_client = boto3.client('bedrock-agentcore-control', region_name=region) cognito_provider = identity_client.create_oauth2_credential_provider( name="gateway-mcp-server-identity", credentialProviderVendor="CustomOauth2", oauth2ProviderConfigInput={ 'customOauth2ProviderConfig': { 'oauthDiscovery': { 'discoveryUrl': '<cognito_oauth_discovery_url>', }, 'clientId': '<runtime_cognito_client_id>', # ã¯ã©ã€ã¢ã³ã㯠Runtime ãªãŒãœã©ã€ã¶ãŒçšã« Cognito ã§æ§æããã ClientId ãšäžèŽããå¿
èŠããããŸã 'clientSecret': '<cognito_client_secret>' } } ) cognito_provider_arn = cognito_provider['credentialProviderArn'] print(cognito_provider_arn) # < > ã®å€ã¯å®éã®å€ã«çœ®ãæããå¿
èŠããããŸã MCP ãµãŒããŒãæãã²ãŒããŠã§ã€ã¿ãŒã²ãããäœæããŸãã gateway_client = boto3.client("bedrock-agentcore-control", region_name=region) create_gateway_target_response = gateway_client.create_gateway_target( name="mcp-server-target", gatewayIdentifier=gatewayID, targetConfiguration={"mcp": {"mcpServer": {"endpoint": mcp_url}}}, credentialProviderConfigurations=[ { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": cognito_provider_arn, "scopes": ["<cognito_oauth_scopes>"], } }, }, ], ) # ã²ãŒããŠã§ã€ã¿ãŒã²ãããéåæã«äœæããŸã gatewayTargetID = create_gateway_target_response["targetId"] # < > ã®å€ã¯å®éã®å€ã«çœ®ãæããå¿
èŠããããŸã ã²ãŒããŠã§ã€ã¿ãŒã²ãããäœæããåŸã get_gateway_target API åŒã³åºãã䜿çšããŠã²ãŒããŠã§ã€ã¿ãŒã²ããã®ã¹ããŒã¿ã¹ã確èªããããŒãªã³ã°åŠçãå®è£
ããŸãã import time def poll_for_status(interval=5): # READY ã¹ããŒã¿ã¹ãããŒãªã³ã°ããŸã while True: gateway_target_response = gateway_client.get_gateway_target(gatewayIdentifier=gatewayID, targetId=gatewayTargetID) status = gateway_target_response["status"] if status == 'READY': break elif status in ['FAILED', 'UPDATE_UNSUCCESSFUL', 'SYNCHRONIZE_UNSUCCESSFUL']: raise Exception(f"Gateway target failed with status: {status}") time.sleep(interval) poll_for_status() Strands Agents ãã¬ãŒã ã¯ãŒã¯ã§ã²ãŒããŠã§ã€ããã¹ããã MCP ãµãŒããŒããããŒã«ããªã¹ãããããã«ã Strands Agents ã§ã²ãŒããŠã§ã€ããã¹ãããŠã¿ãŸããããç°ãªããšãŒãžã§ã³ããã¬ãŒã ã¯ãŒã¯ã§æ§ç¯ãããä»ã® MCP äºæãšãŒãžã§ã³ãã䜿çšã§ããŸãã from strands import Agent from mcp.client.streamable_http import streamablehttp_client from strands.tools.mcp.mcp_client import MCPClient def create_streamable_http_transport(): return streamablehttp_client(gatewayURL,headers={"Authorization": f"Bearer {token}"}) client = MCPClient(create_streamable_http_transport) with client: # listTools ãåŒã³åºããŸã tools = client.list_tools_sync() # ã¢ãã«ãšããŒã«ã䜿çšããŠãšãŒãžã§ã³ããäœæããŸã agent = Agent(model=yourmodel,tools=tools) ## ä»»æã®ã¢ãã«ã«çœ®ãæããããšãã§ããŸã # ãµã³ãã«ããã³ããã§ãšãŒãžã§ã³ããåŒã³åºããŸãããã㯠MCP listTools ã®ã¿ãåŒã³åºããLLM ãã¢ã¯ã»ã¹ã§ããããŒã«ã®ãªã¹ããååŸããŸãã以äžã¯å®éã«ããŒã«ãåŒã³åºããŸããã agent("Hi , can you list all tools available to you") # ãµã³ãã«ããã³ããã§ãšãŒãžã§ã³ããåŒã³åºããããŒã«ãåŒã³åºããŠå¿çã衚瀺ããŸã agent("Get the Order id") AgentCore Gateway ã§ã® MCP ãµãŒããŒã®ããŒã«å®çŸ©ã®æŽæ° SynchronizeGatewayTargets API ã¯ãMCP ãµãŒããŒã¿ãŒã²ããããã®ããŒã«ã®ãªã³ããã³ãåæãå¯èœã«ããæ°ããéåææäœã§ããMCP ãµãŒããŒã¯ããšãŒãžã§ã³ããçºèŠããŠåŒã³åºãããšãã§ããããŒã«ããã¹ãããŸããæéã®çµéãšãšãã«ããããã®ããŒã«ãæŽæ°ããå¿
èŠããã£ãããæ¢åã® MCP ãµãŒããŒã¿ãŒã²ããã«æ°ããããŒã«ãå°å
¥ããå¿
èŠããã£ããããå ŽåããããŸãããããã³ã«ãã³ãã·ã§ã€ã¯ãå®è¡ããå©çšå¯èœãªããŒã«ãã€ã³ããã¯ã¹åãã SynchronizeGatewayTargets API ãéããŠå€éš MCP ãµãŒããŒã«æ¥ç¶ã§ããŸãããã® API ã«ãããMCP ãµãŒããŒã®ããŒã«æ§æã倿ŽããåŸã«ãããŒã«å®çŸ©ãæŽæ°ããã¿ã€ãã³ã°ãæç€ºçã«å¶åŸ¡ã§ããŸãã ã¿ãŒã²ããã OAuth èªèšŒã§æ§æãããŠããå ŽåãAPI ã¯ãŸã AgentCore Identity ãµãŒãã¹ãšããåãããŠãæå®ãããèªèšŒæ
å ±ãããã€ããŒããå¿
èŠãªèªèšŒæ
å ±ãååŸããŸãããããã®èªèšŒæ
å ±ã¯ãMCP ãµãŒããŒãšã®éä¿¡ãéå§ããåã«ã鮮床ãšå©çšå¯åŠã«ã€ããŠæ€èšŒãããŸããèªèšŒæ
å ±ã®ååŸã倱æããå ŽåããŸãã¯æéåãã®ããŒã¯ã³ãè¿ãããå Žåãåææäœã¯é©åãªãšã©ãŒè©³çްãšãšãã«å³åº§ã«å€±æããã¿ãŒã²ãã㯠FAILED ç¶æ
ã«é·ç§»ããŸããèªèšŒãªãã§æ§æãããã¿ãŒã²ããã®å ŽåãAPI ã¯ããŒã«åæã«çŽæ¥é²ã¿ãŸãã ããŒã«åŠçã¯ãŒã¯ãããŒã¯ãã»ãã·ã§ã³ã確ç«ããããã® MCP ãµãŒããŒãžã®åæååŒã³åºãããå§ãŸããŸããåæåãæåããåŸãAPI 㯠MCP ãµãŒããŒã® tools/list æ©èœã«ããŒãžåå²ãããåŒã³åºããè¡ããããã©ãŒãã³ã¹ãšãªãœãŒã¹äœ¿çšçãæé©åããããã« 100 åã®ãããã§ããŒã«ãåŠçããŸããåããŒã«ã®ãããã¯æ£èŠåãåããAPI ã¯ã¿ãŒã²ããåºæã®ãã¬ãã£ãã¯ã¹ã远å ããŠãä»ã®ã¿ãŒã²ããããã®ããŒã«ãšã®åœåã®ç«¶åãé²ããŸããåŠçäžãããŒã«å®çŸ©ã¯ç°ãªãã¿ãŒã²ããã¿ã€ãéã§ã®äžè²«æ§ãä¿é²ããããã«æ£èŠåãããŸãããå
ã® MCP ãµãŒããŒå®çŸ©ããã®éèŠãªã¡ã¿ããŒã¿ã¯ä¿æãããŸãã åæãããŒã¯æ¬¡ã®ãšãã«éå§ãããŸãã éçšç®¡çè
ã SynchronizeGatewayTargets API ãéå§ããAgentCore Gateway ãããªã¬ãŒããŠæ§æããã MCP ã¿ãŒã²ãããæŽæ°ããŸãã ã²ãŒããŠã§ã€ã¯ MCP ã¿ãŒã²ãããžã®å®å
šãªã¢ã¯ã»ã¹ã®ããã« AgentCore Identity ãã OAuth ããŒã¯ã³ãååŸããŸãã æ¬¡ã«ãã²ãŒããŠã§ã€ã¯ããŒãžã§ã³æ©èœãååŸããããã« MCP ãµãŒããŒãšã®å®å
šãªã»ãã·ã§ã³ãåæåããŸãã æåŸã«ãã²ãŒããŠã§ã€ã¯ MCP ãµãŒããŒã® tools/list ãšã³ããã€ã³ãã«ããŒãžåå²ãããåŒã³åºããè¡ã£ãŠããŒã«å®çŸ©ãååŸããã²ãŒããŠã§ã€ãææ°ã§æ£ç¢ºãªããŒã«ã®ãªã¹ããç¶æããããšãä¿èšŒããŸãã SynchronizeGatewayTargets API ã¯ãAgentCore Gateway å
ã§ MCP ã¿ãŒã²ããã管çããéã®éèŠãªèª²é¡ã«å¯ŸåŠããŸããããã¯ãã·ã¹ãã ã®ããã©ãŒãã³ã¹ãšãªãœãŒã¹äœ¿çšçãæé©åããªãããå©çšå¯èœãªããŒã«ã®æ£ç¢ºãªè¡šçŸãç¶æããããšã§ãããã®æç€ºçãªåæã¢ãããŒãã䟡å€ãããçç±ã¯æ¬¡ã®ãšããã§ãã ã¹ããŒãã®äžè²«æ§ç®¡ç : æç€ºçãªåæããªãå ŽåãAgentCore Gateway 㯠ListTools æäœäžã« MCP ãµãŒããŒãžã®ãªã¢ã«ã¿ã€ã åŒã³åºããè¡ãå¿
èŠãããã (ã¬ã€ãã³ã·ãšä¿¡é Œæ§ã«åœ±é¿)ãå€ãããŒã«å®çŸ©ãæäŸãããªã¹ã¯ããããŸãã SynchronizeGatewayTargets API ã¯ãæ°ããããŒã«ããããã€ããåŸã MCP ãµãŒããŒã§æ¢åã®ããŒã«ãæŽæ°ããåŸãªã©ãæŠç¥çãªã¿ã€ãã³ã°ã§ããŒã«ã¹ããŒããæŽæ°ã§ããå¶åŸ¡ãããã¡ã«ããºã ãæäŸããŸãããã®ã¢ãããŒãã«ãããã²ãŒããŠã§ã€ã®ããŒã«å®çŸ©ãããã©ãŒãã³ã¹ãæãªãããšãªãã¿ãŒã²ãã MCP ãµãŒããŒã®æ©èœãæ£ç¢ºã«åæ ããããšãä¿èšŒãããŸãã ããã©ãŒãã³ã¹ãžã®åœ±é¿ã®ãã¬ãŒããªã : API ã¯ãäžæŽåãªç¶æ
ã«ã€ãªããå¯èœæ§ã®ããåæå€æŽãé²ãããã«ãåæäžã«æ¥œèгçããã¯ãå®è£
ããŠããŸããããã¯ãç«¶åãããå Žåã«è€æ°ã®åæãªã¯ãšã¹ããå詊è¡ããå¿
èŠãããå¯èœæ§ãããããšãæå³ããŸããããã®ãã¬ãŒããªãã¯æ¬¡ã®çç±ãã蚱容ãããŸãã ããŒã«ã¹ããŒãã®å€æŽã¯ãéåžžã®å®è¡æã®çºçã§ã¯ãªããé »åºŠã®äœãéçšã€ãã³ãã§ã åæã®ããã©ãŒãã³ã¹ã³ã¹ãã¯ãéåžžã®ããŒã«åŒã³åºãäžã§ã¯ãªããæç€ºçã«èŠæ±ããããšãã«ã®ã¿çºçããŸã ãã£ãã·ã¥ãããããŒã«å®çŸ©ã«ãããåæããŠããéã§ã ListTools æäœã«äžè²«ããŠé«ãããã©ãŒãã³ã¹ãåŸãããŸãã SynchronizeGatewayTargets API ãåŒã³åºã 次ã®ãµã³ãã«ã³ãŒãã䜿çšããŠãSynchronizeGatewayTargets API ãåŒã³åºããŸãã gateway_client = boto3.client('bedrock-agentcore-control', region_name=REGION) synchronize_gateway_response = gateway_client.synchronize_gateway_targets( gatewayIdentifier=gatewayID, targetIdList=[gatewayTargetID] ) print(synchronize_gateway_response) ããŒã«ã¹ããŒãã®æé»çãªåæ CreateGatewayTarget ããã³ UpdateGatewayTarget æäœäžãAgentCore Gateway ã¯æç€ºç㪠SynchronizeGatewayTargets API ãšã¯ç°ãªãæé»çãªåæãå®è¡ããŸãããã®æé»çãªåæã«ãããMCP ã¿ãŒã²ãããæå¹ã§ææ°ã®ããŒã«å®çŸ©ã§äœæãŸãã¯æŽæ°ãããããšãä¿èšŒãããREADY ç¶æ
ã®ã¿ãŒã²ããã¯ããã«äœ¿çšå¯èœãšä¿èšŒãããŸããããã«ãããäœæ/æŽæ°æäœãä»ã®ã¿ãŒã²ããã¿ã€ããããæéããããå¯èœæ§ããããŸãããæ€èšŒãããããŒã«å®çŸ©ã®ãªãã¿ãŒã²ãããæã€ããšã®è€éããšæœåšçãªåé¡ãé²ãã®ã«åœ¹ç«ã¡ãŸãã æé»çãªåæãããŒã¯æ¬¡ã®ãšãã«éå§ãããŸãã éçšç®¡çè
ã CreateGatewayTarget ãŸã㯠UpdateGatewayTarget æäœã䜿çšã㊠MCP ã¿ãŒã²ãããäœæãŸãã¯æŽæ°ããŸãã AgentCore Gateway ã¯æ°èŠãŸãã¯æŽæ°ããã MCP ã¿ãŒã²ãããæ§æããŸãã ã²ãŒããŠã§ã€ã¯ããŒã«å®çŸ©ãæŽæ°ããããã«éåæã§åæããã»ã¹ãããªã¬ãŒããŸãã ã²ãŒããŠã§ã€ã¯å®å
šãªã¢ã¯ã»ã¹ã®ããã« AgentCore Identity ãã OAuth ããŒã¯ã³ãååŸããŸãã æ¬¡ã«ãã²ãŒããŠã§ã€ã¯ããŒãžã§ã³æ©èœãååŸããããã« MCP ãµãŒããŒãšã®å®å
šãªã»ãã·ã§ã³ãåæåããŸãã æåŸã«ãã²ãŒããŠã§ã€ã¯ MCP ãµãŒããŒã® tools/list ãšã³ããã€ã³ãã«ããŒãžåå²ãããåŒã³åºããè¡ã£ãŠããŒã«å®çŸ©ãååŸããã²ãŒããŠã§ã€ãææ°ã§æ£ç¢ºãªããŒã«ã®ãªã¹ããç¶æããããšãä¿èšŒããŸãã MCP ã¿ãŒã²ããã® ListTools ã®åäœ AgentCore Gateway ã® ListTools æäœã¯ãMCP ã¿ãŒã²ãããã以åã«åæãããããŒã«å®çŸ©ãžã®ã¢ã¯ã»ã¹ãæäŸããããã©ãŒãã³ã¹ãšä¿¡é Œæ§ãåªå
ãããã£ãã·ã¥ãã¡ãŒã¹ãã¢ãããŒãã«åŸããŸããããŒã«å®çŸ©ãéçã«å®çŸ©ãããŠããåŸæ¥ã® OpenAPI ãŸã㯠Lambda ã¿ãŒã²ãããšã¯ç°ãªããMCP ã¿ãŒã²ããããŒã«ã¯åææäœãéããŠçºèŠããããã£ãã·ã¥ãããŸããã¯ã©ã€ã¢ã³ãã ListTools ãåŒã³åºããšãã²ãŒããŠã§ã€ã¯ MCP ãµãŒããŒãžã®ãªã¢ã«ã¿ã€ã åŒã³åºããè¡ãã®ã§ã¯ãªããæ°žç¶ã¹ãã¬ãŒãžããããŒã«å®çŸ©ãååŸããŸãããããã®å®çŸ©ã¯ãã¿ãŒã²ããäœæ/æŽæ°äžã®æé»çãªåæããŸãã¯æç€ºç㪠SynchronizeGatewayTargets API åŒã³åºããéããŠäºåã«ååŸãããã®ã§ãããã®æäœã¯æ£èŠåãããããŒã«å®çŸ©ã®ããŒãžåå²ããããªã¹ããè¿ããŸãã MCP ã¿ãŒã²ããã® InvokeTool (tools/call) ã®åäœ MCP ã¿ãŒã²ããã® InvokeTool æäœã¯ã ListTools ãéããŠçºèŠãããããŒã«ã®å®éã®å®è¡ãåŠçããã¿ãŒã²ãã MCP ãµãŒããŒãšã®ãªã¢ã«ã¿ã€ã éä¿¡ã管çããŸãããã£ãã·ã¥ããŒã¹ã® ListTools æäœãšã¯ç°ãªããtools/call 㯠MCP ãµãŒããŒãšã®ã¢ã¯ãã£ããªéä¿¡ãå¿
èŠãšããç¹å®ã®èªèšŒãã»ãã·ã§ã³ç®¡çããšã©ãŒåŠçãçºçããŸããtools/call ãªã¯ãšã¹ããå°çãããšãAgentCore Gateway ã¯ãŸããããŒã«ãåæãããå®çŸ©ã«ååšããããšãæ€èšŒããŸããMCP ã¿ãŒã²ããã®å ŽåãAgentCore Gateway 㯠MCP ãµãŒããŒãšã®ã»ãã·ã§ã³ã確ç«ããããã«åæååŒã³åºããå®è¡ããŸããã¿ãŒã²ããã OAuth èªèšŒæ
å ±ã§æ§æãããŠããå ŽåãAgentCore Gateway 㯠initialize åŒã³åºããè¡ãåã« AgentCore Identity ããæ°ããèªèšŒæ
å ±ãååŸããŸããããã«ãããListTools ãæéåãã®èªèšŒæ
å ±ãæã€ãã£ãã·ã¥ãããããŒã«ãè¿ããå Žåã§ããå®éã®åŒã³åºãã¯æå¹ãªèªèšŒã䜿çšããããšãä¿èšŒãããŸãã ã€ã³ããŠã³ãèªèšŒãããŒã¯æ¬¡ã®ãšãã«éå§ãããŸãã MCP ã¯ã©ã€ã¢ã³ã㯠MCP ãããã³ã«ããŒãžã§ã³ã䜿çšãããªã¯ãšã¹ãã AgentCore Gateway ã«åæåããŸãã æ¬¡ã«ãã¯ã©ã€ã¢ã³ã㯠tools/call ãªã¯ãšã¹ããã²ãŒããŠã§ã€ã«éä¿¡ããŸãã ã²ãŒããŠã§ã€ã¯å®å
šãªã¢ã¯ã»ã¹ã®ããã« AgentCore Identity ãã OAuth ããŒã¯ã³ãååŸããŸãã ã²ãŒããŠã§ã€ã¯ MCP ãµãŒããŒãšã®å®å
šãªã»ãã·ã§ã³ãåæåããŠãããŒã«ã®å®éã®å®è¡ãåŒã³åºããŠåŠçããŸãã MCP ã¿ãŒã²ããã®æ€çŽ¢ããŒã«ã®åäœ AgentCore Gateway ã®æ€çŽ¢æ©èœã«ãããMCP ã¿ãŒã²ãããå«ãç°ãªãã¿ãŒã²ããã¿ã€ãå
šäœã§ããŒã«ã®ã»ãã³ãã£ãã¯æ€çŽ¢ãå¯èœã«ãªããŸããMCP ã¿ãŒã²ããã®å Žåãæ€çŽ¢æ©èœã¯åææäœäžã«ãã£ããã£ãããã€ã³ããã¯ã¹åãããæ£èŠåãããããŒã«å®çŸ©ã§åäœãããªã¢ã«ã¿ã€ã ã® MCP ãµãŒããŒéä¿¡ãªãã§å¹ççãªã»ãã³ãã£ãã¯æ€çŽ¢ãæäŸããŸãã ããŒã«å®çŸ©ã MCP ã¿ãŒã²ããããåæããããšãAgentCore Gateway ã¯åããŒã«ã®ååã説æããã©ã¡ãŒã¿ã®èª¬æã«å¯ŸããŠèªåçã«ãã¯ãã«è¡šçŸãçæããŸãããããã®ãã¯ãã«è¡šçŸã¯æ£èŠåãããããŒã«å®çŸ©ãšäžç·ã«ä¿åãããæ€çŽ¢ã¯ãšãªã®æå³ãšã³ã³ããã¹ããçè§£ããã»ãã³ãã£ãã¯æ€çŽ¢ãå¯èœã«ããŸããåŸæ¥ã®ããŒã¯ãŒããããã³ã°ãšã¯ç°ãªããæ£ç¢ºãªçšèªãäžèŽããªãå Žåã§ããšãŒãžã§ã³ãã¯é¢é£ããããŒã«ãçºèŠã§ããŸãã ã²ãŒããŠã§ã€ãéã㊠MCP ãµãŒããŒããŒã«ãæ€çŽ¢ãã æ¬¡ã®äŸã䜿çšããŠã²ãŒããŠã§ã€ãéããŠããŒã«ãæ€çŽ¢ããŸãã import requests import json def search_tools(gateway_url, access_token, query): headers = { "Content-Type": "application/json", "Authorization": f"Bearer {access_token}" } payload = { "jsonrpc": "2.0", "id": "search-tools-request", "method": "tools/call", "params": { "name": "x_amz_bedrock_agentcore_search", "arguments": { "query": query } } } response = requests.post(gateway_url, headers=headers, json=payload, timeout=5) response.raise_for_status() return response.json() # 䜿çšäŸ token_response = utils.get_token(user_pool_id, client_id, client_secret, scopeString, REGION) access_token = token_response['access_token'] results = search_tools(gatewayURL, access_token, "math operations") print(json.dumps(results, indent=2)) ãŸãšã æè¿çºè¡šããã Amazon Bedrock AgentCore Gateway ã§ã®ã¿ãŒã²ããã¿ã€ããšããŠã® MCP ãµãŒããŒãµããŒãã¯ããšã³ã¿ãŒãã©ã€ãº AI ãšãŒãžã§ã³ãéçºã«ããã鲿©ã§ãããã®æ°æ©èœã¯ãã»ãã¥ãªãã£ãšéçšå¹çãç¶æããªãã MCP ãµãŒããŒå®è£
ãã¹ã±ãŒãªã³ã°ããéã®éèŠãªèª²é¡ã«å¯ŸåŠããŸããæ¢åã® MCP ãµãŒããŒã REST API ã Lambda 颿°ãšäžç·ã«çµ±åããããšã«ãããAgentCore Gateway ã¯å€§èŠæš¡ãªããŒã«çµ±åã®ããã®ããçµ±äžããããå®å
šã§ç®¡çãããããœãªã¥ãŒã·ã§ã³ãæäŸããŸããçµç¹ã¯ãçµ±äžãããèªèšŒãç°¡çŽ åãããããŒã«æ€åºãåæžãããã¡ã³ããã³ã¹ãªãŒããŒãããã®æ©æµãåããªãããåäžã®äžå€®éçŽåã€ã³ã¿ãŒãã§ãŒã¹ãéããŠããŒã«ã管çã§ããããã«ãªããŸããã 詳现æ
å ±ãšé«åºŠãªæ§æã«ã€ããŠã¯ã GitHub ã®ã³ãŒããµã³ãã« ã Amazon Bedrock AgentCore Gateway éçºè
ã¬ã€ã ã Amazon AgentCore Gateway ã®æé ãåç
§ããŠãã ããã èè
ã«ã€ã㊠Frank Dallezotte 㯠AWS ã® Senior Solutions Architect ã§ãç¬ç«ç³»ãœãããŠã§ã¢ãã³ããŒãšååã㊠AWS äžã§ã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ãèšèšããã³æ§ç¯ããããšã«æ
ç±ãæã£ãŠããŸãã圌ã¯ãœãããŠã§ã¢ã®äœæããã«ããã€ãã©ã€ã³ã®å®è£
ãã¯ã©ãŠãã§ã®ãããã®ãœãªã¥ãŒã·ã§ã³ã®ãããã€ã«é¢ããçµéšããããŸãã Ganesh Thiyagarajan 㯠Amazon Web Services (AWS) ã® Senior Solutions Architect ã§ããœãããŠã§ã¢ã¢ãŒããã¯ãã£ãIT ã³ã³ãµã«ãã£ã³ã°ããœãªã¥ãŒã·ã§ã³æäŸã«ãã㊠20 幎以äžã®çµéšããããŸãã圌㯠ISV ã AWS äžã§ã¢ããªã±ãŒã·ã§ã³ãå€é©ããã¢ããã€ãºããã®ãæ¯æŽããŠããŸãããŸããAI/ML ãã¯ãã«ã«ãã£ãŒã«ãã³ãã¥ããã£ã®äžå¡ãšããŠã顧客ã Gen AI ãœãªã¥ãŒã·ã§ã³ãæ§ç¯ããã³æ¡åŒµããã®ãæ¯æŽããŠããŸãã Dhawal Patel 㯠Amazon Web Services (AWS) ã® Principal Generative AI Tech lead ã§ãã圌ã¯ãAgentic AIãDeep learningã忣ã³ã³ãã¥ãŒãã£ã³ã°ã«é¢é£ããåé¡ã«ã€ããŠãå€§äŒæ¥ããäžèŠæš¡ã®ã¹ã¿ãŒãã¢ãããŸã§ããŸããŸãªçµç¹ãšååããŠããŸããã