{"id":9836,"date":"2025-10-17T07:43:25","date_gmt":"2025-10-17T07:43:25","guid":{"rendered":"https:\/\/pokecon.jp\/job\/?p=9836"},"modified":"2025-10-17T07:43:25","modified_gmt":"2025-10-17T07:43:25","slug":"amazon-bedrock-agentcore-%e3%81%a7-lambda-%e3%81%a7ai%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e3%82%92%e9%96%8b%e7%99%ba%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f%ef%bc%88mcp%e3%81%a7%e5%86%85","status":"publish","type":"post","link":"https:\/\/pokecon.jp\/job\/9836\/","title":{"rendered":"Amazon Bedrock AgentCore \u3067 Lambda \u3067AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u3066\u307f\u305f\uff08MCP\u3067\u5185\u90e8\u9023\u643a\u3042\u308a\uff09"},"content":{"rendered":"\n<\/p>\n<div>\n<p>\u3053\u3093\u306b\u3061\u306f\u3001\u4e38\u5c71\u3067\u3059\u3002<br \/><span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><a target=\"_blank\" href=\"http:\/\/f.hatena.ne.jp\/acro-hayakawa\/20211026111913\" class=\"hatena-fotolife\" itemprop=\"url\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-hayakawa\/20211026\/20211026111913.png\" width=\"151\" height=\"125\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife hatena-image-right\" style=\"width:25px\" itemprop=\"image\"\/><\/a><\/span><br \/>\n2025\/10\/13\u306b\u3001<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Amazon\">Amazon<\/a> Bedrock AgentCore \u304c\u3064\u3044\u306b\u4e00\u822c\u516c\u958b\uff08Generally Available\uff09\u3068\u306a\u308a\u307e\u3057\u305f\uff01<br \/>\u3082\u3061\u308d\u3093\u3001\u6771\u4eac\u30ea\u30fc\u30b8\u30e7\u30f3\u3067\u3082\u5229\u7528\u53ef\u80fd\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u300c\u4eca\u5e74\u306e re:Ivent \u306b\u5408\u308f\u305b\u3066\u300112\u6708\u3054\u308d\u306bGA\u304b\u306a\u300d\u3068\u52dd\u624b\u306b\u4e88\u60f3\u3057\u3066\u3044\u305f\u306e\u3067\u3059\u304c\u3001\u898b\u4e8b\u306b\u88cf\u5207\u3089\u308c\u307e\u3057\u305f\u306d\u3002<\/p>\n<p><iframe src=\"https:\/\/hatenablog-parts.com\/embed?url=https%3A%2F%2Faws.amazon.com%2Fjp%2Fblogs%2Fnews%2Famazon-bedrock-agentcore-is-now-generally-available%2F\" title=\"Amazon Bedrock AgentCore\u3001\u6771\u4eac\u3092\u542b\u3080AWS\u30ea\u30fc\u30b8\u30e7\u30f3\u3067\u4e00\u822c\u63d0\u4f9b\u958b\u59cb\uff1aAI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u73fe\u5b9f\u306e\u4e16\u754c\u3078 | Amazon Web Services\" class=\"embed-card embed-webcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;\" loading=\"lazy\"><\/iframe><cite class=\"hatena-citation\"><a target=\"_blank\" href=\"https:\/\/aws.amazon.com\/jp\/blogs\/news\/amazon-bedrock-agentcore-is-now-generally-available\/\">aws.amazon.com<\/a><\/cite><\/p>\n<p>\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u65e9\u901f\u3001<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Amazon\">Amazon<\/a> Bedrock AgentCore \u3067\u3001AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u305f\u5185\u5bb9\u3092\u7d39\u4ecb\u3057\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<h2 id=\"1-\u306f\u3058\u3081\u306b\">1. \u306f\u3058\u3081\u306b<\/h2>\n<h3 id=\"11-Amazon-Bedrock-AgentCore\u3068\u306f\">1.1 <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Amazon\">Amazon<\/a> Bedrock AgentCore\u3068\u306f<\/h3>\n<p><strong><a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Amazon\">Amazon<\/a> Bedrock AgentCore<\/strong> \u306f\u3001AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u672c\u683c\u7684\u306b\u904b\u7528\u3059\u308b\u305f\u3081\u306b\u8a2d\u8a08\u3055\u308c\u305f<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/AWS\">AWS<\/a>\u306e\u65b0\u3057\u3044\u30b5\u30fc\u30d3\u30b9\u7fa4\u3067\u3059\u3002<br \/>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u5b9f\u884c\u74b0\u5883\u3001\u5916\u90e8\u30c4\u30fc\u30eb\u3068\u306e\u9023\u643a\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u7ba1\u7406\u306a\u3069\u3001\u904b\u7528\u306b\u5fc5\u8981\u306a\u6a5f\u80fd\u3092\u5305\u62ec\u7684\u306b\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u305d\u306e\u4e2d\u3067\u3082 <strong>AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a><\/strong> \u306b\u6ce8\u76ee\u3057\u307e\u3059\u3002<br \/>\u3053\u306e\u30b5\u30fc\u30d3\u30b9\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u65e2\u5b58\u306e\u30ea\u30bd\u30fc\u30b9\uff08Lambda\u3084<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a>\uff09\u3092<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/MCP\">MCP<\/a>\u30c4\u30fc\u30eb\u3068\u3057\u3066\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u7d44\u307f\u8fbc\u3080\u3053\u3068\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\u3053\u308c\u306b\u3088\u308a\u3001\u5c11\u306a\u3044\u30b3\u30b9\u30c8\u3067\u591a\u6a5f\u80fd\u306a\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u69cb\u7bc9\u3067\u304d\u308b\u70b9\u304c\u5927\u304d\u306a\u9b45\u529b\u3067\u3059\u3002<\/p>\n<p><iframe src=\"https:\/\/hatenablog-parts.com\/embed?url=https%3A%2F%2Faws.amazon.com%2Fjp%2Fbedrock%2Fagentcore%2F\" title=\"Amazon Bedrock AgentCore (\u30d7\u30ec\u30d3\u30e5\u30fc) \u2013 AWS\" class=\"embed-card embed-webcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;\" loading=\"lazy\"><\/iframe><cite class=\"hatena-citation\"><a target=\"_blank\" href=\"https:\/\/aws.amazon.com\/jp\/bedrock\/agentcore\/\">aws.amazon.com<\/a><\/cite><\/p>\n<h3 id=\"12-AgentCore\u306e\u30b5\u30fc\u30d3\u30b9\u6982\u8981\">1.2 AgentCore\u306e\u30b5\u30fc\u30d3\u30b9\u6982\u8981<\/h3>\n<p>AgentCore\u306f\u8907\u6570\u306e\u30b5\u30fc\u30d3\u30b9\u304b\u3089\u69cb\u6210\u3055\u308c\u3066\u304a\u308a\u3001\u672c\u8a18\u4e8b\u3067\u306f\u4ee5\u4e0b\u306e\u30b5\u30fc\u30d3\u30b9\u3092\u53d6\u308a\u6271\u3044\u307e\u3059\u3002<\/p>\n<p><figure class=\"figure-image figure-image-fotolife\" title=\"AgentCore Gateway\u306e\u69cb\u6210\"><span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20250913\/20250913185018.png\" width=\"1200\" height=\"416\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><figcaption>AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u306e\u69cb\u6210<\/figcaption><\/figure>\n<\/p>\n<div class=\"s_table\"><table>\n<thead>\n<tr>\n<th> \u30b5\u30fc\u30d3\u30b9\u540d <\/th>\n<th> \u4e3b\u306a\u6a5f\u80fd <\/th>\n<th> \u7279\u5fb4\u30fb\u30e1\u30ea\u30c3\u30c8 <\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td> <strong><a target=\"_blank\" href=\"https:\/\/docs.aws.amazon.com\/bedrock-agentcore\/latest\/devguide\/agents-tools-runtime.html\">AgentCore Runtime<\/a><\/strong> <\/td>\n<td> \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3084<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/MCP\">MCP<\/a>\u30b5\u30fc\u30d0\u30fc\u306e\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9\u5b9f\u884c <\/td>\n<td> \u5fc5\u8981\u6642\u306e\u307f\u8d77\u52d5\u3001\u81ea\u52d5\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u3001\u69d8\u3005\u306a<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/%A5%D5%A5%EC%A1%BC%A5%E0%A5%EF%A1%BC%A5%AF\">\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af<\/a>\uff08LangChain\u3001Strands\u7b49\uff09\u306b\u5bfe\u5fdc <\/td>\n<\/tr>\n<tr>\n<td> <strong><a target=\"_blank\" href=\"https:\/\/docs.aws.amazon.com\/bedrock-agentcore\/latest\/devguide\/gateway.html\">AgentCore Gateway<\/a><\/strong> <\/td>\n<td> \u5916\u90e8\u30c4\u30fc\u30eb\u30fb<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a>\u306e\u7d71\u5408\u7ba1\u7406 <\/td>\n<td> \u65e2\u5b58\u306e<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a>\u3084Lambda\u95a2\u6570\u3092<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/MCP\">MCP<\/a>\u5bfe\u5fdc\u30c4\u30fc\u30eb\u306b\u5909\u63db <\/td>\n<\/tr>\n<tr>\n<td> <strong><a target=\"_blank\" href=\"https:\/\/docs.aws.amazon.com\/bedrock-agentcore\/latest\/devguide\/identity.html\">AgentCore Identity<\/a><\/strong> <\/td>\n<td> \u8a8d\u8a3c\u30fb\u8a8d\u53ef\u306e\u5b89\u5168\u306a\u7ba1\u7406 <\/td>\n<td> \u8a8d\u8a3c\u30fb\u8a8d\u53ef\u3092\u4e00\u5143\u7ba1\u7406\u3001<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a>\u30ad\u30fc\u306e\u6697\u53f7\u5316\u4fdd\u5b58\u3001OAuth\u5bfe\u5fdc\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ea\u30b9\u30af\u3092\u5927\u5e45\u8efd\u6e1b <\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<h3 id=\"13-\u6982\u8981\u30e1\u30ea\u30c3\u30c8\">1.3 \u6982\u8981\u30fb\u30e1\u30ea\u30c3\u30c8<\/h3>\n<p>Runtime\u3084<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u3001Identity\u3092\u9023\u643a\u3055\u305b\u308b\u3053\u3068\u3067\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u6027\u3092\u9ad8\u3081\u305f\u4e0a\u3067\u3001\u591a\u6a5f\u80fd\u306a\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002<\/p>\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304cAgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u7d4c\u7531\u3067\u8907\u6570\u306e\u30c4\u30fc\u30eb\u3092\u5229\u7528\u3059\u308b\u69cb\u6210\u4f8b\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<br \/>\u3053\u308c\u306b\u3088\u308a\u4ee5\u4e0b\u306e\u5229\u70b9\u304c\u5f97\u3089\u308c\u307e\u3059\u3002<\/p>\n<ul>\n<li><strong>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u6a5f\u80fd\u306e\u62e1\u5f35<\/strong>\n<ul>\n<li>\u5916\u90e8<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a>\u3084Lambda\u95a2\u6570\u3092\u30c4\u30fc\u30eb\u3068\u3057\u3066\u7d71\u5408\u3059\u308b\u3053\u3068\u3067\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u5b9f\u884c\u53ef\u80fd\u306a\u51e6\u7406\u7bc4\u56f2\u3092\u62e1\u5f35\u3067\u304d\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u65e2\u5b58\u8cc7\u7523\u306e\u6709\u52b9\u6d3b\u7528<\/strong>\n<ul>\n<li>\u65e2\u5b58\u306e<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a>\/Lambda\u3092<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/MCP\">MCP<\/a>\u30c4\u30fc\u30eb\u5316\u3057\u3066\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u516c\u958b\u3059\u308b\u3053\u3068\u3067\u3001\u904e\u53bb\u306e\u6295\u8cc7\u3092\u7121\u99c4\u306b\u3059\u308b\u3053\u3068\u306a\u304f\u6d3b\u7528\u3067\u304d\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u7d71\u5408\u7684\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u7ba1\u7406<\/strong>\n<ul>\n<li><a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u304c\u8a8d\u8a3c\u30fb\u8a8d\u53ef\u3092\u4e00\u5143\u7684\u306b\u51e6\u7406\u3059\u308b\u305f\u3081\u3001\u500b\u5225\u306e\u30c4\u30fc\u30eb\u3054\u3068\u306b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u3092\u5b9f\u88c5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u305b\u3093<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"2-\u691c\u8a3c\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u69cb\u6210\">2. \u691c\u8a3c\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u69cb\u6210<\/h2>\n<h3 id=\"21-\u6982\u8981\">2.1 \u6982\u8981<\/h3>\n<p>\u4eca\u56de\u306f\u3001<strong>\u300cTavily\u3067\u8abf\u3079\u305f\u3053\u3068\u306e\u30b5\u30de\u30ea\u3092S3\u306b\u914d\u7f6e\u3059\u308b\u554f\u3044\u5408\u308f\u305bAgent\u300d<\/strong>\u3092\u4f5c\u3063\u3066\u691c\u8a3c\u3057\u3066\u307f\u307e\u3059\u3002<br \/>\u4ee5\u4e0b\u306e\u30c4\u30fc\u30eb\u3092AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u306e<strong>\u30bf\u30fc\u30b2\u30c3\u30c8<\/strong>\u3068\u3057\u3066\u767b\u9332\u3057\u307e\u3059\u3002<br \/>\n\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306f\u3001<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3067\u3001<strong>\u5358\u4e00\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8<\/strong>\u304b\u3089\u30c4\u30fc\u30eb\u3092\u767a\u898b\u30fb\u547c\u3073\u51fa\u305b\u307e\u3059\u3002<\/p>\n<ul>\n<li><strong>Tavily\u691c\u7d22\u30c4\u30fc\u30eb<\/strong>\uff1a\u5916\u90e8<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a>\u3092\u4f7f\u7528\u3057\u3066\u6700\u65b0\u60c5\u5831\u3092\u53ce\u96c6<\/li>\n<li><strong>\u30d5\u30a1\u30a4\u30eb\u4fdd\u5b58\u30c4\u30fc\u30eb\uff08Lambda\uff09<\/strong>\uff1a\u8abf\u67fb\u7d50\u679c\u306e\u30b5\u30de\u30ea\u3092S3\u306b\u4fdd\u5b58<\/li>\n<\/ul>\n<h3 id=\"22-\u69cb\u6210\u56f3\">2.2 \u69cb\u6210\u56f3<\/h3>\n<p><figure class=\"figure-image figure-image-fotolife\" title=\"\u691c\u8a3c\u3067\u4f5c\u6210\u3059\u308b\u30b7\u30b9\u30c6\u30e0\u306e\u69cb\u6210\"><span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20250923\/20250923143754.jpg\" width=\"1200\" height=\"518\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><figcaption>\u691c\u8a3c\u3067\u4f5c\u6210\u3059\u308b\u30b7\u30b9\u30c6\u30e0\u306e\u69cb\u6210<\/figcaption><\/figure>\n<\/p>\n<h2 id=\"3-\u5b9f\u88c5\">3. \u5b9f\u88c5<\/h2>\n<h3 id=\"31-Lambda\u3092Gateway\u3092\u4f7f\u3063\u3066MCP\u30c4\u30fc\u30eb\u3068\u3057\u3066\u547c\u3073\u51fa\u305b\u308b\u3088\u3046\u306b\u3059\u308b\">3.1 Lambda\u3092<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u3092\u4f7f\u3063\u3066<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/MCP\">MCP<\/a>\u30c4\u30fc\u30eb\u3068\u3057\u3066\u547c\u3073\u51fa\u305b\u308b\u3088\u3046\u306b\u3059\u308b<\/h3>\n<p><strong>Lambda\u306e\u30c7\u30d7\u30ed\u30a4<\/strong>\uff1a<\/p>\n<pre class=\"code lang-python\" data-lang=\"python\" data-unlink=\"\"><span class=\"synStatement\">def<\/span> <span class=\"synIdentifier\">lambda_handler<\/span>(event, context):\n    <span class=\"synStatement\">if<\/span> <span class=\"synStatement\">not<\/span> BUCKET:\n        <span class=\"synStatement\">return<\/span> {\n            <span class=\"synConstant\">'statusCode'<\/span>: <span class=\"synConstant\">500<\/span>,\n            <span class=\"synConstant\">'body'<\/span>: {<span class=\"synConstant\">'error'<\/span>: <span class=\"synConstant\">'\u74b0\u5883\u5909\u6570 S3_PATH \u304c\u672a\u8a2d\u5b9a\u307e\u305f\u306f\u4e0d\u6b63\u3067\u3059\u3002'<\/span>},\n        }\n\n    tool = _tool_name_from_context(context)\n    title = event.get(<span class=\"synConstant\">'title'<\/span>)\n    text = event.get(<span class=\"synConstant\">'text'<\/span>)\n\n    <span class=\"synStatement\">if<\/span> <span class=\"synStatement\">not<\/span> title <span class=\"synStatement\">or<\/span> <span class=\"synStatement\">not<\/span> <span class=\"synIdentifier\">isinstance<\/span>(title, <span class=\"synIdentifier\">str<\/span>):\n        <span class=\"synStatement\">return<\/span> {<span class=\"synConstant\">'statusCode'<\/span>: <span class=\"synConstant\">400<\/span>, <span class=\"synConstant\">'body'<\/span>: {<span class=\"synConstant\">'error'<\/span>: <span class=\"synConstant\">'title \u306f\u5fc5\u9808\u3067\u3059\u3002'<\/span>}}\n    <span class=\"synStatement\">if<\/span> text <span class=\"synStatement\">is<\/span> <span class=\"synIdentifier\">None<\/span>:\n        <span class=\"synStatement\">return<\/span> {<span class=\"synConstant\">'statusCode'<\/span>: <span class=\"synConstant\">400<\/span>, <span class=\"synConstant\">'body'<\/span>: {<span class=\"synConstant\">'error'<\/span>: <span class=\"synConstant\">'text \u306f\u5fc5\u9808\u3067\u3059\u3002'<\/span>}}\n\n    \n    <span class=\"synStatement\">if<\/span> tool == <span class=\"synConstant\">'s3_put_md'<\/span>:\n        title = _force_ext(title, <span class=\"synConstant\">'.md'<\/span>)\n        key = f<span class=\"synConstant\">'{PREFIX}\/{title}'<\/span> <span class=\"synStatement\">if<\/span> PREFIX <span class=\"synStatement\">else<\/span> title\n        body = text.encode(<span class=\"synConstant\">'utf-8'<\/span>)\n        res = _put_and_presign(BUCKET, key, body, <span class=\"synConstant\">'text\/markdown; charset=utf-8'<\/span>)\n        <span class=\"synStatement\">return<\/span> {<span class=\"synConstant\">'statusCode'<\/span>: <span class=\"synConstant\">200<\/span>, <span class=\"synConstant\">'body'<\/span>: res}\n\n    <span class=\"synStatement\">elif<\/span> tool == <span class=\"synConstant\">'s3_put_txt'<\/span>:\n        title = _force_ext(title, <span class=\"synConstant\">'.txt'<\/span>)\n        key = f<span class=\"synConstant\">'{PREFIX}\/{title}'<\/span> <span class=\"synStatement\">if<\/span> PREFIX <span class=\"synStatement\">else<\/span> title\n        body = text.encode(<span class=\"synConstant\">'utf-8'<\/span>)\n        res = _put_and_presign(BUCKET, key, body, <span class=\"synConstant\">'text\/plain; charset=utf-8'<\/span>)\n        <span class=\"synStatement\">return<\/span> {<span class=\"synConstant\">'statusCode'<\/span>: <span class=\"synConstant\">200<\/span>, <span class=\"synConstant\">'body'<\/span>: res}\n\n    <span class=\"synStatement\">else<\/span>:\n        <span class=\"synStatement\">return<\/span> {<span class=\"synConstant\">'statusCode'<\/span>: <span class=\"synConstant\">400<\/span>, <span class=\"synConstant\">'body'<\/span>: {<span class=\"synConstant\">'error'<\/span>: f<span class=\"synConstant\">'\u672a\u5bfe\u5fdc\u306e\u30c4\u30fc\u30eb\u540d: {tool}'<\/span>}}\n<\/pre>\n<p><strong><a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/%A5%B9%A5%AD%A1%BC%A5%DE\">\u30b9\u30ad\u30fc\u30de<\/a>\u30d5\u30a1\u30a4\u30eb\u306e\u914d\u7f6e<\/strong>\uff1a<\/p>\n<p>Lambda\u95a2\u6570\u3092AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u3068\u3057\u3066\u8ffd\u52a0\u3059\u308b\u969b\u306f\u3001<strong><a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/MCP\">MCP<\/a>\u30c4\u30fc\u30eb<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/%A5%B9%A5%AD%A1%BC%A5%DE\">\u30b9\u30ad\u30fc\u30de<\/a><\/strong>\u3092\u5b9a\u7fa9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<br \/><a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/%A5%B9%A5%AD%A1%BC%A5%DE\">\u30b9\u30ad\u30fc\u30de<\/a>\u306e\u5b9a\u7fa9\u306f\u3001\u30a4\u30f3\u30e9\u30a4\u30f3\u3068S3\u306b\u914d\u7f6e\u3059\u308b\u4e8c\u3064\u306e\u9078\u629e\u80a2\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u4eca\u56de\u306fS3\u306b\u914d\u7f6e\u3057\u307e\u3059\u3002<br \/>\n\u4ee5\u4e0b\u306e<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/JSON\">JSON<\/a>\u30d5\u30a1\u30a4\u30eb\u3092\u9069\u5f53\u306b\u914d\u7f6e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<br \/>\n<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/%A5%B9%A5%AD%A1%BC%A5%DE\">\u30b9\u30ad\u30fc\u30de<\/a>\u306e\u8a73\u7d30\u306a\u4ed5\u69d8\u306b\u3064\u3044\u3066\u306f\u3001<a target=\"_blank\" href=\"https:\/\/docs.aws.amazon.com\/bedrock-agentcore\/latest\/devguide\/gateway-add-target-lambda.html\">AWS\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<\/a>\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"code lang-json\" data-lang=\"json\" data-unlink=\"\"><span class=\"synSpecial\">[<\/span>\n  <span class=\"synSpecial\">{<\/span>\n    \"<span class=\"synStatement\">name<\/span>\": \"<span class=\"synConstant\">s3_put_md<\/span>\",\n    \"<span class=\"synStatement\">description<\/span>\": \"<span class=\"synConstant\">Markdown(.md)\u3092S3\u306b\u4fdd\u5b58\u3057\u3001\u7f72\u540d\u4ed8\u304dGET URL\u3092\u8fd4\u3059\u3002<\/span>\",\n    \"<span class=\"synStatement\">inputSchema<\/span>\": <span class=\"synSpecial\">{<\/span>\n      \"<span class=\"synStatement\">type<\/span>\": \"<span class=\"synConstant\">object<\/span>\",\n      \"<span class=\"synStatement\">properties<\/span>\": <span class=\"synSpecial\">{<\/span>\n        \"<span class=\"synStatement\">title<\/span>\": <span class=\"synSpecial\">{<\/span>\n          \"<span class=\"synStatement\">type<\/span>\": \"<span class=\"synConstant\">string<\/span>\",\n          \"<span class=\"synStatement\">description<\/span>\": \"<span class=\"synConstant\">\u30d5\u30a1\u30a4\u30eb\u540d\uff08\u62e1\u5f35\u5b50\u4ed8\u304d\uff09<\/span>\"\n        <span class=\"synSpecial\">}<\/span>,\n        \"<span class=\"synStatement\">text<\/span>\": <span class=\"synSpecial\">{<\/span>\n          \"<span class=\"synStatement\">type<\/span>\": \"<span class=\"synConstant\">string<\/span>\",\n          \"<span class=\"synStatement\">description<\/span>\": \"<span class=\"synConstant\">Markdown\u672c\u6587\uff08UTF-8\uff09<\/span>\"\n        <span class=\"synSpecial\">}<\/span>\n      <span class=\"synSpecial\">}<\/span>,\n      \"<span class=\"synStatement\">required<\/span>\": <span class=\"synSpecial\">[<\/span>\"<span class=\"synConstant\">title<\/span>\", \"<span class=\"synConstant\">text<\/span>\"<span class=\"synSpecial\">]<\/span>\n    <span class=\"synSpecial\">}<\/span>\n  <span class=\"synSpecial\">}<\/span>,\n  <span class=\"synSpecial\">{<\/span>\n    \"<span class=\"synStatement\">name<\/span>\": \"<span class=\"synConstant\">s3_put_txt<\/span>\",\n    \"<span class=\"synStatement\">description<\/span>\": \"<span class=\"synConstant\">\u30c6\u30ad\u30b9\u30c8(.txt)\u3092S3\u306b\u4fdd\u5b58\u3057\u3001\u7f72\u540d\u4ed8\u304dGET URL\u3092\u8fd4\u3059\u3002<\/span>\",\n    \"<span class=\"synStatement\">inputSchema<\/span>\": <span class=\"synSpecial\">{<\/span>\n      \"<span class=\"synStatement\">type<\/span>\": \"<span class=\"synConstant\">object<\/span>\",\n      \"<span class=\"synStatement\">properties<\/span>\": <span class=\"synSpecial\">{<\/span>\n        \"<span class=\"synStatement\">title<\/span>\": <span class=\"synSpecial\">{<\/span>\"<span class=\"synStatement\">type<\/span>\": \"<span class=\"synConstant\">string<\/span>\"<span class=\"synSpecial\">}<\/span>,\n        \"<span class=\"synStatement\">text<\/span>\": <span class=\"synSpecial\">{<\/span>\"<span class=\"synStatement\">type<\/span>\": \"<span class=\"synConstant\">string<\/span>\"<span class=\"synSpecial\">}<\/span>\n      <span class=\"synSpecial\">}<\/span>,\n      \"<span class=\"synStatement\">required<\/span>\": <span class=\"synSpecial\">[<\/span>\"<span class=\"synConstant\">title<\/span>\", \"<span class=\"synConstant\">text<\/span>\"<span class=\"synSpecial\">]<\/span>\n    <span class=\"synSpecial\">}<\/span>\n  <span class=\"synSpecial\">}<\/span>\n<span class=\"synSpecial\">]<\/span>\n<\/pre>\n<h3 id=\"32-Tavily\u3092MCP\u30c4\u30fc\u30eb\u3068\u3057\u3066\u547c\u3073\u51fa\u305b\u308b\u3088\u3046\u306b\u3059\u308b\">3.2 Tavily\u3092<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/MCP\">MCP<\/a>\u30c4\u30fc\u30eb\u3068\u3057\u3066\u547c\u3073\u51fa\u305b\u308b\u3088\u3046\u306b\u3059\u308b<\/h3>\n<p><strong>Tavily\u306eAPIKey\u767a\u884c<\/strong><\/p>\n<p><a target=\"_blank\" href=\"https:\/\/tavily.com\/\">Tavily\u516c\u5f0f\u30b5\u30a4\u30c8<\/a>\u3067<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a>\u30ad\u30fc\u3092\u53d6\u5f97\u3057\u3001AgentCore Identity\u306b\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/p>\n<p><span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20250913\/20250913210101.png\" width=\"1200\" height=\"352\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><\/p>\n<p><strong>Tavily\u7528AgentCore Identity\u306e\u4f5c\u6210<\/strong><\/p>\n<p>Tavily\u7528\u306eIdentity\u3092\u4f5c\u6210\u3057\u3001<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a>\u30ad\u30fc\u3092\u5b89\u5168\u306b\u7ba1\u7406\u3057\u307e\u3059\u3002<br \/><a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/AWS\">AWS<\/a> Console\u4e0a\u3067AgentCore Identity\u306e\u30bf\u30d6\u306b\u79fb\u52d5\u3057\u3066\u3001\u4ee5\u4e0b\u306e\u624b\u9806\u3067<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a>\u30ad\u30fc\u3092\u767b\u9332\u3057\u307e\u3059\u3002<br \/>\n<span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20250913\/20250913192336.png\" width=\"1200\" height=\"521\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><br \/>\n<span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20250917\/20250917224428.png\" width=\"1200\" height=\"662\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><\/p>\n<h3 id=\"33-AgentCore-Gateway\u306e\u4f5c\u6210\">3.3 AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u306e\u4f5c\u6210<\/h3>\n<p>Tavily\u3068Lambda\u3092\u5229\u7528\u3067\u304d\u308bAgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u3092\u4f5c\u6210\u3057\u3001\u4e21\u65b9\u306e\u30c4\u30fc\u30eb\u3092\u7d71\u5408\u3057\u307e\u3059\u3002<br \/><a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/AWS\">AWS<\/a> Console\u4e0a\u3067AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u306e\u30bf\u30d6\u306b\u79fb\u52d5\u3057\u3066\u3001\u4ee5\u4e0b\u306e\u624b\u9806\u3067<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<p><span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20250913\/20250913210609.png\" width=\"1200\" height=\"571\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><br \/>\n<span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20250913\/20250913210629.png\" width=\"1200\" height=\"494\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><br \/>\n<span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20250913\/20250913210651.png\" width=\"1200\" height=\"815\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><\/p>\n<h3 id=\"34-AgentCore-Gateway\u7528AgentCore-Identity\u8a2d\u5b9a\">3.4 AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u7528AgentCore Identity\u8a2d\u5b9a<\/h3>\n<p>AgentCore Identity\u3067AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u3092\u5229\u7528\u3059\u308b\u305f\u3081\u306eOAuth\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<br \/><span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20250923\/20250923143617.png\" width=\"1200\" height=\"421\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><\/p>\n<p>\u307e\u305a\u3001AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u4f5c\u6210\u6642\u306b\u3001\u81ea\u52d5\u4f5c\u6210\u3055\u308c\u305fCognito\u30ea\u30bd\u30fc\u30b9\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<br \/>\u305d\u306e\u305f\u3081\u306b\u3001<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/AWS\">AWS<\/a> Console\u4e0a\u3067AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u306e\u30bf\u30d6\u306b\u79fb\u52d5\u3057\u3066\u3001\u4f5c\u6210\u3057\u305f<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u3092\u30af\u30ea\u30c3\u30af\u3057\u3001\u8a73\u7d30\u753b\u9762\u3092\u958b\u304d\u307e\u3059\u3002<br \/>\n<span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20250913\/20250913200839.png\" width=\"1200\" height=\"493\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><\/p>\n<p>\u6b21\u306b\u3001<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/AWS\">AWS<\/a> Console\u4e0a\u3067AgentCore Identity\u306e\u30bf\u30d6\u306b\u79fb\u52d5\u3057\u3066\u3001\u4ee5\u4e0b\u306e\u624b\u9806\u3067OAuth\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u767b\u9332\u3057\u307e\u3059\u3002<br \/>\n<span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20250913\/20250913201445.png\" width=\"1200\" height=\"512\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><\/p>\n<h3 id=\"35-AgentCore-Runtime-\u30c7\u30d7\u30ed\u30a4\">3.5 AgentCore Runtime \u30c7\u30d7\u30ed\u30a4<\/h3>\n<p><strong>\u74b0\u5883<\/strong>\uff1a<\/p>\n<p><strong>\u5fc5\u8981\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong>\uff1a<\/p>\n<pre class=\"code powershell\" data-lang=\"powershell\" data-unlink=\"\">&gt; uv add bedrock-agentcore strands-agents \n&gt; uv add --dev bedrock-agentcore-starter-toolkit<\/pre>\n<p><strong>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u5b9f\u88c5<\/strong> (<code>agent.py<\/code>)\uff1a<\/p>\n<pre class=\"code lang-python\" data-lang=\"python\" data-unlink=\"\"><span class=\"synPreProc\">import<\/span> os\n\n<span class=\"synPreProc\">from<\/span> bedrock_agentcore <span class=\"synPreProc\">import<\/span> BedrockAgentCoreApp\n<span class=\"synPreProc\">from<\/span> bedrock_agentcore.identity.auth <span class=\"synPreProc\">import<\/span> requires_access_token\n<span class=\"synPreProc\">from<\/span> mcp.client.streamable_http <span class=\"synPreProc\">import<\/span> streamablehttp_client\n<span class=\"synPreProc\">from<\/span> strands <span class=\"synPreProc\">import<\/span> Agent\n<span class=\"synPreProc\">from<\/span> strands.tools.mcp <span class=\"synPreProc\">import<\/span> MCPClient\n\napp = BedrockAgentCoreApp()\n\n\nGATEWAY_URL = os.environ[<span class=\"synConstant\">'AGENTCORE_GATEWAY_URL'<\/span>]\n\nOAUTH_PROVIDER = os.environ[<span class=\"synConstant\">'AGENTCORE_GATEWAY_OAUTH_PROVIDER'<\/span>]\n\nOAUTH_SCOPE = os.environ[<span class=\"synConstant\">'AGENTCORE_GATEWAY_OAUTH_SCOPES'<\/span>].split(<span class=\"synConstant\">','<\/span>)\n\n\n\n<span class=\"synPreProc\">@<\/span><span class=\"synIdentifier\">requires_access_token<\/span>(\n    provider_name=OAUTH_PROVIDER, scopes=OAUTH_SCOPE, auth_flow=<span class=\"synConstant\">'M2M'<\/span>\n)\n<span class=\"synStatement\">async<\/span> <span class=\"synStatement\">def<\/span> <span class=\"synIdentifier\">get_access_token<\/span>(*, access_token) -&gt; <span class=\"synIdentifier\">str<\/span>:\n    <span class=\"synConstant\">\"\"\"Fetch access token using Bedrock AgentCore identity service.\"\"\"<\/span>\n    <span class=\"synStatement\">return<\/span> access_token\n\n\n<span class=\"synPreProc\">@<\/span><span class=\"synIdentifier\">app.entrypoint<\/span>\n<span class=\"synStatement\">async<\/span> <span class=\"synStatement\">def<\/span> <span class=\"synIdentifier\">invoke<\/span>(payload):\n    <span class=\"synConstant\">\"\"\"Your AI agent function\"\"\"<\/span>\n    \n    access_token = <span class=\"synStatement\">await<\/span> get_access_token()  \n\n    mcp_client = MCPClient(\n        <span class=\"synStatement\">lambda<\/span>: streamablehttp_client(\n            \n            GATEWAY_URL,\n            headers={<span class=\"synConstant\">'Authorization'<\/span>: f<span class=\"synConstant\">'Bearer {access_token}'<\/span>},\n        )\n    )\n\n    user_message = payload[<span class=\"synConstant\">'prompt'<\/span>]\n    <span class=\"synStatement\">with<\/span> mcp_client:\n        tools = mcp_client.list_tools_sync()\n        agent = Agent(tools=tools)\n        <span class=\"synStatement\">async<\/span> <span class=\"synStatement\">for<\/span> event <span class=\"synStatement\">in<\/span> agent.stream_async(user_message):\n            <span class=\"synStatement\">if<\/span> <span class=\"synConstant\">'data'<\/span> <span class=\"synStatement\">in<\/span> event:\n                <span class=\"synStatement\">yield<\/span> event[<span class=\"synConstant\">'data'<\/span>]\n\n\n<span class=\"synStatement\">if<\/span> __name__ == <span class=\"synConstant\">'__main__'<\/span>:\n    app.run()\n<\/pre>\n<p><strong>\u4f9d\u5b58\u95a2\u4fc2\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210<\/strong><br \/>\n<code>agent.py<\/code>\u3067\u5229\u7528\u3057\u3066\u3044\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u66f8\u3044\u305f<code>requirements.txt<\/code>\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"code requirements.txt\" data-lang=\"requirements.txt\" data-unlink=\"\">bedrock-agentcore\nstrands-agents<\/pre>\n<p><strong>\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u8a2d\u5b9a<\/strong>\uff1a<br \/>AgentCoreRuntime\u306f<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Linux\">Linux<\/a> ARM64\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e\u307f\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u308b\u305f\u3081\u3001<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/x86\">x86<\/a>\u74b0\u5883\u3067\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u5834\u5408\u306f\u3001<br \/>\n\u624b\u52d5\u3067\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u30fb\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u78ba\u8a8d<\/p>\n<pre class=\"code powershell\" data-lang=\"powershell\" data-unlink=\"\">&gt; docker buildx ls<\/pre>\n<p>\u25bc<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/x86\">x86<\/a>\u74b0\u5883\u3067\u306e\u51fa\u529b\u7d50\u679c<\/p>\n<pre class=\"code powershell\" data-lang=\"powershell\" data-unlink=\"\">NAME\/NODE     DRIVER\/ENDPOINT   STATUS    BUILDKIT   PLATFORMS\ndefault*      docker\n \\_ default    \\_ default       running   v0.16.0    linux\/amd64 (+3), linux\/386<\/pre>\n<p>\u30fb\uff08<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/x86\">x86<\/a>\u74b0\u5883\u3067\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u5834\u5408\uff09ARM64\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/p>\n<pre class=\"code powershell\" data-lang=\"powershell\" data-unlink=\"\">&gt; docker run --privileged --rm tonistiigi\/binfmt --install arm64<\/pre>\n<p>\u30fb\uff08<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/x86\">x86<\/a>\u74b0\u5883\u3067\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u5834\u5408\uff09\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u304c\u8ffd\u52a0\u3055\u308c\u305f\u3053\u3068\u3092\u78ba\u8a8d<\/p>\n<pre class=\"code powershell\" data-lang=\"powershell\" data-unlink=\"\">&gt; docker buildx ls<\/pre>\n<p>\u25bc\u51fa\u529b\u7d50\u679c\uff08PLATFORMS\u306b<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/linux\">linux<\/a>\/arm64\u304c\u8ffd\u52a0\u3055\u308c\u3066\u3044\u308b\uff09<\/p>\n<pre class=\"code powershell\" data-lang=\"powershell\" data-unlink=\"\">NAME\/NODE     DRIVER\/ENDPOINT   STATUS    BUILDKIT   PLATFORMS\ndefault*      docker\n \\_ default    \\_ default       running   v0.16.0    linux\/amd64 (+3), linux\/arm64, linux\/386<\/pre>\n<p><strong>\u30c7\u30d7\u30ed\u30a4\u5b9f\u884c<\/strong>\uff1a<\/p>\n<pre class=\"code powershell\" data-lang=\"powershell\" data-unlink=\"\"># \u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u8a2d\u5b9a\uff08agentcore\u30b3\u30de\u30f3\u30c9\u306b\u306fprofile\u6307\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u306a\u3044\u305f\u3081\uff09\n&gt; $Env:AWS_DEFAULT_PROFILE=\"\"\n\n# \u8a2d\u5b9a\n&gt; uv run agentcore configure -e agent.py\n\u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u6642\u306b\u3001\u300cExecution Role\u300d\u300cECR Repository\u300d\u300cDetected dependency file\u300d\u300cAuthorization Configuration\u300d\u306b\u3064\u3044\u3066\u8cea\u554f\u3055\u308c\u307e\u3059\u304c\u3001\u300cExecution Role\u300d\u306e\u307f\u4f5c\u6210\u3057\u305fAgentCore Runtime\u7528\u30ed\u30fc\u30eb\u3092\u6307\u5b9a\u3057\u3001\u4ed6\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u8a2d\u5b9a\uff08Enter\u3092\u62bc\u3059\u3060\u3051\uff09\u3067\u69cb\u3044\u307e\u305b\u3093\u3002\n\n# \u30ed\u30fc\u30ab\u30eb\u30d3\u30eb\u30c9\u3067\u30c7\u30d7\u30ed\u30a4\n&gt; uv run agentcore launch --local-build --env AGENTCORE_GATEWAY_URL=<gateway> --env AGENTCORE_GATEWAY_OAUTH_PROVIDER=<identity> --env AGENTCORE_GATEWAY_OAUTH_SCOPES=<identity scope=\"\"\/><\/identity><\/gateway><\/pre>\n<p><strong>\u52d5\u4f5c\u78ba\u8a8d<\/strong>\uff1a<br \/>\u30b7\u30b9\u30c6\u30e0\u304c\u6b63\u5e38\u306b\u52d5\u4f5c\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"code lang-python\" data-lang=\"python\" data-unlink=\"\"><span class=\"synPreProc\">import<\/span> json\n<span class=\"synPreProc\">import<\/span> os\n\n<span class=\"synPreProc\">import<\/span> boto3\n\nagent_arn = os.environ[<span class=\"synConstant\">'AGENT_ARN'<\/span>]\nprompt = <span class=\"synIdentifier\">input<\/span>(<span class=\"synConstant\">'User Message: '<\/span>)\n\n\nagent_core_client = boto3.client(<span class=\"synConstant\">'bedrock-agentcore'<\/span>)\n\n\npayload = json.dumps({<span class=\"synConstant\">'prompt'<\/span>: prompt}).encode()\n\n\nresponse = agent_core_client.invoke_agent_runtime(\n    agentRuntimeArn=agent_arn, payload=payload, runtimeUserId=<span class=\"synConstant\">'user1'<\/span>\n)\n\ncontent = []\n<span class=\"synStatement\">for<\/span> line <span class=\"synStatement\">in<\/span> response[<span class=\"synConstant\">'response'<\/span>].iter_lines(chunk_size=<span class=\"synConstant\">1024<\/span>):\n    <span class=\"synStatement\">if<\/span> line:\n        <span class=\"synStatement\">try<\/span>:\n            text = line.decode(<span class=\"synConstant\">'utf-8'<\/span>)\n        <span class=\"synStatement\">except<\/span> <span class=\"synType\">UnicodeDecodeError<\/span>:\n            text = line.decode(<span class=\"synConstant\">'utf-8'<\/span>, errors=<span class=\"synConstant\">'replace'<\/span>)\n        \n        <span class=\"synStatement\">if<\/span> text.startswith(<span class=\"synConstant\">'data: '<\/span>):\n            text = text[<span class=\"synIdentifier\">len<\/span>(<span class=\"synConstant\">'data: '<\/span>) :].strip()\n            \n            text = text.replace(<span class=\"synConstant\">'\"'<\/span>, <span class=\"synConstant\">''<\/span>)\n            <span class=\"synIdentifier\">print<\/span>(text, end=<span class=\"synConstant\">''<\/span>)\n<\/pre>\n<p><strong>\u51fa\u529b\u7d50\u679c<\/strong>\uff1a<\/p>\n<pre class=\"code bash\" data-lang=\"bash\" data-unlink=\"\">User Message: Amazon Bedrock\u306b\u3064\u3044\u3066\u30b5\u30de\u30ea\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u305d\u3057\u3066\u3001\u305d\u306e\u30b5\u30de\u30ea\u3092\u5171\u6709\u3059\u308b\u305f\u3081\u306e\u30ea\u30f3\u30af\u3092\u304f\u3060\u3055\u3044\u3002\n\nAmazon Bedrock\u306b\u3064\u3044\u3066\u8abf\u67fb\u3057\u3066\u3001\u30b5\u30de\u30ea\u3092\u4f5c\u6210\u3044\u305f\u3057\u307e\u3059\u3002\u8abf\u67fb\u7d50\u679c\u3092\u57fa\u306b\u3001Amazon Bedrock\u306e\u30b5\u30de\u30ea\u3092\u4f5c\u6210\u3057\u3066Markdown\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4fdd\u5b58\u3044\u305f\u3057\u307e\u3059\u3002Amazon Bedrock\u306b\u3064\u3044\u3066\u306e\u30b5\u30de\u30ea\u3092\u4f5c\u6210\u3057\u3001\u5171\u6709\u7528\u306e\u30ea\u30f3\u30af\u3092\u751f\u6210\u3044\u305f\u3057\u307e\u3057\u305f\u3002\n\n## \ud83d\udccb Amazon Bedrock \u30b5\u30de\u30ea\u5b8c\u6210\n\n\u4ee5\u4e0b\u306e\u30ea\u30f3\u30af\u304b\u3089\u3001Amazon Bedrock\u306e\u8a73\u7d30\u306a\u30b5\u30de\u30ea\u3092\u3054\u89a7\u3044\u305f\u3060\u3051\u307e\u3059\uff1a\n\n**\ud83d\udd17 \u5171\u6709\u30ea\u30f3\u30af**: \n\n### \u30b5\u30de\u30ea\u306e\u4e3b\u8981\u5185\u5bb9\uff1a\n- **Amazon Bedrock\u306e\u6982\u8981**\u3068\u57fa\u672c\u7684\u306a\u7279\u5fb4\n- **\u4e3b\u8981\u6a5f\u80fd**\uff08\u30d5\u30a1\u30f3\u30c7\u30fc\u30b7\u30e7\u30f3\u30e2\u30c7\u30eb\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3001\u30ab\u30b9\u30bf\u30de\u30a4\u30bc\u30fc\u30b7\u30e7\u30f3\u3001\u904b\u7528\u7ba1\u7406\uff09\n- **\u5229\u7528\u7528\u9014**\uff08\u30ab\u30b9\u30bf\u30de\u30fc\u30b5\u30dd\u30fc\u30c8\u3001\u30b3\u30f3\u30c6\u30f3\u30c4\u751f\u6210\u3001\u696d\u52d9\u52b9\u7387\u5316\uff09\n- **\u958b\u767a\u8005\u30fb\u7d44\u7e54\u5411\u3051\u306e\u30e1\u30ea\u30c3\u30c8**\n- **\u6280\u8853\u7684\u8a73\u7d30**\u3068\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\n\n\u3053\u306e\u30ea\u30f3\u30af\u306f**1\u6642\u9593\u6709\u52b9**\u3067\u3059\u306e\u3067\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u4fdd\u5b58\u3084\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3092\u304a\u9858\u3044\u3044\u305f\u3057\u307e\u3059\u3002Amazon Bedrock \u3092\u691c\u8a0e\u3055\u308c\u308b\u969b\u306e\u53c2\u8003\u8cc7\u6599\u3068\u3057\u3066\u3054\u6d3b\u7528\u304f\u3060\u3055\u3044\u3002<\/pre>\n<p>\u51fa\u529b\u3055\u308c\u305f\u7f72\u540d\u4ed8\u304dURL\u3092\u78ba\u8a8d\u3059\u308b\u3068\u3001\u751f\u6210\u3055\u308c\u305f<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Markdown\">Markdown<\/a>\u30d5\u30a1\u30a4\u30eb\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3057\u305f\u3002<\/p>\n<figure class=\"figure-image figure-image-fotolife\" title=\"S3\u306b\u51fa\u529b\u3055\u308c\u305f\u30b5\u30de\u30ea\"><span itemscope=\"\" itemtype=\"http:\/\/schema.org\/Photograph\"><img decoding=\"async\" src=\"https:\/\/cdn-ak.f.st-hatena.com\/images\/fotolife\/a\/acro-maruyama\/20251014\/20251014230219.png\" width=\"1200\" height=\"641\" loading=\"lazy\" title=\"\" class=\"hatena-fotolife\" itemprop=\"image\"\/><\/span><figcaption>S3\u306b\u51fa\u529b\u3055\u308c\u305f\u30b5\u30de\u30ea<\/figcaption><\/figure>\n<\/p>\n<h2 id=\"4-\u307e\u3068\u3081\">4. \u307e\u3068\u3081<\/h2>\n<p>AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u7d4c\u7531\u3067Lambda\u95a2\u6570\u3092<strong><a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/MCP\">MCP<\/a>\u30c4\u30fc\u30eb<\/strong>\u3068\u3057\u3066\u6b63\u5e38\u306b\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306f\u4ee5\u4e0b\u306e\u6d41\u308c\u3067\u52d5\u4f5c\u3059\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\uff1a<\/p>\n<div class=\"s_table\"><table>\n<thead>\n<tr>\n<th> \u30b9\u30c6\u30c3\u30d7 <\/th>\n<th> \u8aac\u660e <\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td> \u30c4\u30fc\u30eb\u767a\u898b <\/td>\n<td> tools\/list\u3067<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u304b\u3089\u5229\u7528\u53ef\u80fd\u306a\u30c4\u30fc\u30eb\u4e00\u89a7\u3092\u53d6\u5f97 <\/td>\n<\/tr>\n<tr>\n<td> Tavily\u691c\u7d22 <\/td>\n<td> \u5916\u90e8<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a>\u3067\u6700\u65b0\u60c5\u5831\u3092\u53ce\u96c6 <\/td>\n<\/tr>\n<tr>\n<td> \u30b5\u30de\u30ea\u751f\u6210 <\/td>\n<td> \u53ce\u96c6\u3057\u305f\u60c5\u5831\u3092\u5206\u6790\u30fb\u8981\u7d04 <\/td>\n<\/tr>\n<tr>\n<td> \u30d5\u30a1\u30a4\u30eb\u4fdd\u5b58 <\/td>\n<td> \u30b5\u30de\u30ea\u306e\u30d5\u30a1\u30a4\u30eb\u3092S3\u306b\u4fdd\u5b58 <\/td>\n<\/tr>\n<tr>\n<td> \u30e6\u30fc\u30b6\u30fc\u3078\u306e\u56de\u7b54 <\/td>\n<td> \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u601d\u8003\u7d50\u679c\u3092\u51fa\u529b <\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306f\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u30c4\u30fc\u30eb\u3092\u81ea\u52d5\u9078\u629e\u3057\u3001AgentCore <a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Gateway\">Gateway<\/a>\u3092\u901a\u3058\u3066<strong>\u8907\u6570\u306e\u7570\u306a\u308b\u30c4\u30fc\u30eb<\/strong>\uff08\u5916\u90e8<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/API\">API<\/a> + Lambda\uff09\u3092\u7d71\u5408\u3057\u3066\u81ea\u5f8b\u7684\u306b\u6d3b\u7528\u3067\u304d\u308b\u3053\u3068\u304c\u5b9f\u8a3c\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n<p><strong>\u7d71\u5408\u7684\u306a\u63a5\u7d9a\u30fb\u8a8d\u8a3c\u30fb\u30b9\u30b1\u30fc\u30eb\u904b\u7528<\/strong>\u3092AgentCore\u304c\u62c5\u3063\u3066\u304f\u308c\u3066\u3001\u4fbf\u5229\u3060\u3068\u601d\u3044\u307e\u3057\u305f\u3002<br \/>\n\u4eca\u5f8c\u3001\u5b9f\u52d9\u3067\u3082\u3044\u308d\u3044\u308d\u3068\u6709\u52b9\u6d3b\u7528\u3067\u304d\u305d\u3046\u3067\u3059\uff01<\/p>\n<blockquote>\n<p><span style=\"color: #0000cc\"><b><i><span style=\"font-size: 120%\"><a target=\"_blank\" href=\"https:\/\/www.wantedly.com\/companies\/acroquest\/projects\">Acroquest Technology\u3067\u306f\u3001\u30ad\u30e3\u30ea\u30a2\u63a1\u7528\u3092\u884c\u3063\u3066\u3044\u307e\u3059\u3002<\/a><\/span><\/i><\/b><\/span><\/p>\n<ul>\n<li>Azure OpenAI\uff0f<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/Amazon\">Amazon<\/a> Bedrock\u7b49\u3092\u4f7f\u3063\u305f\u751f\u6210AI\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a<\/li>\n<li><a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/%A5%C7%A5%A3%A1%BC%A5%D7%A5%E9%A1%BC%A5%CB%A5%F3%A5%B0\">\u30c7\u30a3\u30fc\u30d7\u30e9\u30fc\u30cb\u30f3\u30b0<\/a>\u7b49\u3092\u4f7f\u3063\u305f<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/%BC%AB%C1%B3%B8%C0%B8%EC\">\u81ea\u7136\u8a00\u8a9e<\/a>\uff0f\u753b\u50cf\uff0f\u97f3\u58f0\uff0f\u52d5\u753b\u89e3\u6790\u306e\u7814\u7a76\u958b\u767a<\/li>\n<li>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u3001DevOps\u3001\u6700\u65b0\u306e<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/OSS\">OSS<\/a>\u3084<a target=\"_blank\" class=\"keyword\" href=\"https:\/\/d.hatena.ne.jp\/keyword\/%A5%AF%A5%E9%A5%A6%A5%C9\">\u30af\u30e9\u30a6\u30c9<\/a>\u30b5\u30fc\u30d3\u30b9\u3092\u5229\u7528\u3059\u308b\u958b\u767a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8<\/li>\n<li>\u66f8\u7c4d\u30fb\u96d1\u8a8c\u7b49\u306e\u57f7\u7b46\u3084\u3001\u793e\u5185\u5916\u3067\u306e\u6280\u8853\u306e\u767a\u4fe1\u30fb\u5171\u6709\u306b\u3088\u308b\u30a8\u30f3\u30b8\u30cb\u30a2\u3068\u3057\u3066\u306e\u6210\u9577<\/li>\n<\/ul>\n<p>\u5c11\u3057\u3067\u3082\u4e0a\u8a18\u306b\u8208\u5473\u3092\u6301\u305f\u308c\u305f\u65b9\u306f\u3001\u662f\u975e\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002<\/p>\n<p><iframe src=\"https:\/\/hatenablog-parts.com\/embed?url=https%3A%2F%2Fwww.wantedly.com%2Fprojects%2F1725933\" title=\"ChatGPT\u3092\u6d3b\u7528\u3057\u3066\u696d\u52d9\u9769\u65b0\u3092\u5b9f\u73fe\u3057\u305f\u3044\u30d7\u30ed\u30f3\u30d7\u30c8\u30a8\u30f3\u30b8\u30cb\u30a2\u52df\u96c6\uff01 - Acroquest Technology\u682a\u5f0f\u4f1a\u793e\u306e\u30c7\u30fc\u30bf\u30b5\u30a4\u30a8\u30f3\u30c6\u30a3\u30b9\u30c8\u306e\u63a1\u7528 - Wantedly\" class=\"embed-card embed-webcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;\" loading=\"lazy\"><\/iframe><cite class=\"hatena-citation\"><a target=\"_blank\" href=\"https:\/\/www.wantedly.com\/projects\/1725933\">www.wantedly.com<\/a><\/cite><\/p>\n<\/blockquote>\n<\/div>\n<p><script>(function(d, s, id) {\n  var js, fjs = d.getElementsByTagName(s)[0];\n  if (d.getElementById(id)) return;\n  js = d.createElement(s); js.id = id;\n  js.src = \"\/\/connect.facebook.net\/ja_JP\/sdk.js#xfbml=1&appId=719729204785177&version=v17.0\";\n  fjs.parentNode.insertBefore(js, fjs);\n}(document, 'script', 'facebook-jssdk'));<\/script><br \/>\n<br \/>\n<br \/><a href=\"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000\">\u5143\u306e\u8a18\u4e8b\u3092\u78ba\u8a8d\u3059\u308b <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\u3053\u3093\u306b\u3061\u306f\u3001\u4e38\u5c71\u3067\u3059\u3002 2025\/10\/13\u306b\u3001Amazon Bedrock AgentCore \u304c\u3064\u3044\u306b\u4e00\u822c\u516c\u958b\uff08Generally Available\uff09\u3068\u306a\u308a\u307e\u3057\u305f\uff01\u3082\u3061\u308d\u3093\u3001\u6771\u4eac\u30ea\u30fc\u30b8\u30e7\u30f3\u3067\u3082\u5229\u7528\u53ef\u80fd\u306b\u306a\u3063\u3066\u3044\u307e\u3059 [&hellip;]","protected":false},"author":1,"featured_media":9837,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-9836","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hatena-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Amazon Bedrock AgentCore \u3067 Lambda \u3067AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u3066\u307f\u305f\uff08MCP\u3067\u5185\u90e8\u9023\u643a\u3042\u308a\uff09 - \u30dd\u30b1\u30b3\u30f3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Amazon Bedrock AgentCore \u3067 Lambda \u3067AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u3066\u307f\u305f\uff08MCP\u3067\u5185\u90e8\u9023\u643a\u3042\u308a\uff09 - \u30dd\u30b1\u30b3\u30f3\" \/>\n<meta property=\"og:description\" content=\"\u3053\u3093\u306b\u3061\u306f\u3001\u4e38\u5c71\u3067\u3059\u3002 2025\/10\/13\u306b\u3001Amazon Bedrock AgentCore \u304c\u3064\u3044\u306b\u4e00\u822c\u516c\u958b\uff08Generally Available\uff09\u3068\u306a\u308a\u307e\u3057\u305f\uff01\u3082\u3061\u308d\u3093\u3001\u6771\u4eac\u30ea\u30fc\u30b8\u30e7\u30f3\u3067\u3082\u5229\u7528\u53ef\u80fd\u306b\u306a\u3063\u3066\u3044\u307e\u3059 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000\" \/>\n<meta property=\"og:site_name\" content=\"\u30dd\u30b1\u30b3\u30f3\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-17T07:43:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/10\/https3A2F2Fcdn-ak.f.st-hatena.com2Fimages2Ffotolife2Fa2Facro-maruyama2F202510172F2025101711.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1300\" \/>\n\t<meta property=\"og:image:height\" content=\"1290\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"info@pokecon.jp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"info@pokecon.jp\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/acro-engineer.hatenablog.com\\\/entry\\\/2025\\\/10\\\/17\\\/120000#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/9836\\\/\"},\"author\":{\"name\":\"info@pokecon.jp\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\"},\"headline\":\"Amazon Bedrock AgentCore \u3067 Lambda \u3067AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u3066\u307f\u305f\uff08MCP\u3067\u5185\u90e8\u9023\u643a\u3042\u308a\uff09\",\"datePublished\":\"2025-10-17T07:43:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/9836\\\/\"},\"wordCount\":186,\"image\":{\"@id\":\"https:\\\/\\\/acro-engineer.hatenablog.com\\\/entry\\\/2025\\\/10\\\/17\\\/120000#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/https3A2F2Fcdn-ak.f.st-hatena.com2Fimages2Ffotolife2Fa2Facro-maruyama2F202510172F2025101711.png\",\"articleSection\":[\"\u306f\u3066\u306a\u30d6\u30ed\u30b0\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/9836\\\/\",\"url\":\"https:\\\/\\\/acro-engineer.hatenablog.com\\\/entry\\\/2025\\\/10\\\/17\\\/120000\",\"name\":\"Amazon Bedrock AgentCore \u3067 Lambda \u3067AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u3066\u307f\u305f\uff08MCP\u3067\u5185\u90e8\u9023\u643a\u3042\u308a\uff09 - \u30dd\u30b1\u30b3\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/acro-engineer.hatenablog.com\\\/entry\\\/2025\\\/10\\\/17\\\/120000#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/acro-engineer.hatenablog.com\\\/entry\\\/2025\\\/10\\\/17\\\/120000#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/https3A2F2Fcdn-ak.f.st-hatena.com2Fimages2Ffotolife2Fa2Facro-maruyama2F202510172F2025101711.png\",\"datePublished\":\"2025-10-17T07:43:25+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/acro-engineer.hatenablog.com\\\/entry\\\/2025\\\/10\\\/17\\\/120000#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/acro-engineer.hatenablog.com\\\/entry\\\/2025\\\/10\\\/17\\\/120000\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/acro-engineer.hatenablog.com\\\/entry\\\/2025\\\/10\\\/17\\\/120000#primaryimage\",\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/https3A2F2Fcdn-ak.f.st-hatena.com2Fimages2Ffotolife2Fa2Facro-maruyama2F202510172F2025101711.png\",\"contentUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/https3A2F2Fcdn-ak.f.st-hatena.com2Fimages2Ffotolife2Fa2Facro-maruyama2F202510172F2025101711.png\",\"width\":1300,\"height\":1290},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/acro-engineer.hatenablog.com\\\/entry\\\/2025\\\/10\\\/17\\\/120000#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u30db\u30fc\u30e0\",\"item\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Amazon Bedrock AgentCore \u3067 Lambda \u3067AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u3066\u307f\u305f\uff08MCP\u3067\u5185\u90e8\u9023\u643a\u3042\u308a\uff09\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#website\",\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/\",\"name\":\"\u30dd\u30b1\u30b3\u30f3\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\",\"name\":\"info@pokecon.jp\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"caption\":\"info@pokecon.jp\"},\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/author\\\/infopokecon-jp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Amazon Bedrock AgentCore \u3067 Lambda \u3067AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u3066\u307f\u305f\uff08MCP\u3067\u5185\u90e8\u9023\u643a\u3042\u308a\uff09 - \u30dd\u30b1\u30b3\u30f3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000","og_locale":"ja_JP","og_type":"article","og_title":"Amazon Bedrock AgentCore \u3067 Lambda \u3067AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u3066\u307f\u305f\uff08MCP\u3067\u5185\u90e8\u9023\u643a\u3042\u308a\uff09 - \u30dd\u30b1\u30b3\u30f3","og_description":"\u3053\u3093\u306b\u3061\u306f\u3001\u4e38\u5c71\u3067\u3059\u3002 2025\/10\/13\u306b\u3001Amazon Bedrock AgentCore \u304c\u3064\u3044\u306b\u4e00\u822c\u516c\u958b\uff08Generally Available\uff09\u3068\u306a\u308a\u307e\u3057\u305f\uff01\u3082\u3061\u308d\u3093\u3001\u6771\u4eac\u30ea\u30fc\u30b8\u30e7\u30f3\u3067\u3082\u5229\u7528\u53ef\u80fd\u306b\u306a\u3063\u3066\u3044\u307e\u3059 [&hellip;]","og_url":"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000","og_site_name":"\u30dd\u30b1\u30b3\u30f3","article_published_time":"2025-10-17T07:43:25+00:00","og_image":[{"width":1300,"height":1290,"url":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/10\/https3A2F2Fcdn-ak.f.st-hatena.com2Fimages2Ffotolife2Fa2Facro-maruyama2F202510172F2025101711.png","type":"image\/png"}],"author":"info@pokecon.jp","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"info@pokecon.jp","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"4\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000#article","isPartOf":{"@id":"https:\/\/pokecon.jp\/job\/9836\/"},"author":{"name":"info@pokecon.jp","@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997"},"headline":"Amazon Bedrock AgentCore \u3067 Lambda \u3067AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u3066\u307f\u305f\uff08MCP\u3067\u5185\u90e8\u9023\u643a\u3042\u308a\uff09","datePublished":"2025-10-17T07:43:25+00:00","mainEntityOfPage":{"@id":"https:\/\/pokecon.jp\/job\/9836\/"},"wordCount":186,"image":{"@id":"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000#primaryimage"},"thumbnailUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/10\/https3A2F2Fcdn-ak.f.st-hatena.com2Fimages2Ffotolife2Fa2Facro-maruyama2F202510172F2025101711.png","articleSection":["\u306f\u3066\u306a\u30d6\u30ed\u30b0"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/pokecon.jp\/job\/9836\/","url":"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000","name":"Amazon Bedrock AgentCore \u3067 Lambda \u3067AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u3066\u307f\u305f\uff08MCP\u3067\u5185\u90e8\u9023\u643a\u3042\u308a\uff09 - \u30dd\u30b1\u30b3\u30f3","isPartOf":{"@id":"https:\/\/pokecon.jp\/job\/#website"},"primaryImageOfPage":{"@id":"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000#primaryimage"},"image":{"@id":"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000#primaryimage"},"thumbnailUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/10\/https3A2F2Fcdn-ak.f.st-hatena.com2Fimages2Ffotolife2Fa2Facro-maruyama2F202510172F2025101711.png","datePublished":"2025-10-17T07:43:25+00:00","author":{"@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997"},"breadcrumb":{"@id":"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000#primaryimage","url":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/10\/https3A2F2Fcdn-ak.f.st-hatena.com2Fimages2Ffotolife2Fa2Facro-maruyama2F202510172F2025101711.png","contentUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/10\/https3A2F2Fcdn-ak.f.st-hatena.com2Fimages2Ffotolife2Fa2Facro-maruyama2F202510172F2025101711.png","width":1300,"height":1290},{"@type":"BreadcrumbList","@id":"https:\/\/acro-engineer.hatenablog.com\/entry\/2025\/10\/17\/120000#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u30db\u30fc\u30e0","item":"https:\/\/pokecon.jp\/job\/"},{"@type":"ListItem","position":2,"name":"Amazon Bedrock AgentCore \u3067 Lambda \u3067AI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3057\u3066\u307f\u305f\uff08MCP\u3067\u5185\u90e8\u9023\u643a\u3042\u308a\uff09"}]},{"@type":"WebSite","@id":"https:\/\/pokecon.jp\/job\/#website","url":"https:\/\/pokecon.jp\/job\/","name":"\u30dd\u30b1\u30b3\u30f3","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pokecon.jp\/job\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997","name":"info@pokecon.jp","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","caption":"info@pokecon.jp"},"url":"https:\/\/pokecon.jp\/job\/author\/infopokecon-jp\/"}]}},"_links":{"self":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/9836","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/comments?post=9836"}],"version-history":[{"count":1,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/9836\/revisions"}],"predecessor-version":[{"id":9838,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/9836\/revisions\/9838"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/media\/9837"}],"wp:attachment":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/media?parent=9836"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/categories?post=9836"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/tags?post=9836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}