AgentCore CLI でゼロから AI エージェントを作って AWS にデプロイしてみた

AgentCore CLI でゼロから AI エージェントを作って AWS にデプロイしてみた

Amazon Bedrock AgentCore の AgentCore CLI を使用して、AI エージェントを AWS にデプロイしてみました。プロジェクト作成からデプロイまでの一連の流れを、初心者向けに解説します。
2026.05.27

こんにちは、コンサルティング部の村瀬です。

今回は、Amazon Bedrock AgentCore の AgentCore CLI を使用して、AWS に AI エージェントをデプロイしてみたいと思います。
AgentCore CLI は、Amazon Bedrock AgentCore の開発・運用を行うために AWS が公式提供しているオープンソースの専用 CLI です。

https://github.com/aws/agentcore-cli

本記事では、CLI によるプロジェクト作成 → ローカル実行 → AWS にデプロイ までを通しでやってみます。これから始める方の助けになれば幸いです。

本記事で行うこと

  1. AgentCore CLI で雛形プロジェクトを作る
  2. ローカルでエージェントを起動し、対話できるようにする
  3. AWS にデプロイし、AgentCore Runtime 上で動作させる
  4. 動作確認ができたらエージェントを削除する

検証環境

参考までに、私が検証した際の環境は以下の通りです。

  • macOS 26.4.1(Apple Silicon)
  • Node.js 24.15.0
  • Python 3.14.5
  • uv 0.11.15
  • AWS CLI 2.34.46
  • AgentCore CLI 0.15.0

やってみた

STEP 1: AgentCore CLI のインストール

まず、AgentCore CLI のインストールを行います。インストールは以下のコマンドで行います。

$ npm install -g @aws/agentcore

インストールが完了したら、以下のコマンドで確認します。

$ agentcore --version
0.15.0

STEP 2: プロジェクトの初期化

以下のコマンドを実行することで、プロジェクトの雛形を作成することができます。

$ agentcore create

プロジェクトの作成の前に、いくつか質問されたので以下のように回答しました。今回は、おみくじを引くエージェントを作成しようと思い、OmikujiAgent としました。

image1-argondev22-bedrock-agent-core-cli-intro

回答し終えると、以下のようなディレクトリ構成のプロジェクトが作成されました。ちなみに、質問でプロジェクト名を聞かれた際に、 bedrockAgentCoreIntro という名前にしたため、bedrockAgentCoreIntro ディレクトリ配下にプロジェクトが作成されています。

bedrockAgentCoreIntro/
├── AGENTS.md
├── README.md
├── agentcore/
│   ├── agentcore.json
│   ├── aws-targets.json
│   ├── .env.local
│   ├── .llm-context/
│   └── cdk/
└── app/
    └── OmikujiAgent/
        ├── main.py
        ├── model/load.py
        ├── mcp_client/
        └── pyproject.toml

agentcore/agentcore.json がプロジェクトの設定ファイルになっていて、中身を確認してみると、質問で回答した内容も一部含まれていることが分かります。

agentcore/agentcore.json
{
  "$schema": "https://schema.agentcore.aws.dev/v1/agentcore.json",
  "name": "s",
  "version": 1,
  "managedBy": "CDK",
  "tags": {
    "agentcore:created-by": "agentcore-cli",
    "agentcore:project-name": "s"
  },
  "runtimes": [
    {
      "name": "MyAgent",
      "build": "CodeZip",
      "entrypoint": "main.js",
      "codeLocation": "app/MyAgent/",
      "runtimeVersion": "NODE_22",
      "networkMode": "PUBLIC",
      "protocol": "HTTP"
    }
  ],
  "memories": [],
  "credentials": [],
  "evaluators": [],
  "onlineEvalConfigs": [],
  "agentCoreGateways": [],
  "policyEngines": [],
  "configBundles": [],
  "abTests": [],
  "httpGateways": [],
  "datasets": []
}

STEP 3: ローカルでエージェントを起動する

特にファイルの中身を触らなくても、プロジェクトのディレクトリに移動した上で以下のコマンドを実行するだけで、ローカルでエージェントが起動し、対話することができます。

$ agentcore dev

コマンド実行後、ブラウザが立ち上がり、以下の画面に遷移します。

image3-argondev22-bedrock-agent-core-cli-intro

試しに挨拶してみたところ、以下のようなエラーが発生してしまいました。

image4-argondev22-bedrock-agent-core-cli-intro

Your session has expired or credentials have changed. Please reauthenticate using 'aws login'.

AWS アカウントのセッションが切れている とのことだったので、aws login コマンドで認証を行ったところ無事に返事が返ってきました。

image5-argondev22-bedrock-agent-core-cli-intro

ローカルで動いているのに AWS アカウントへのログインが必要なのは、エージェント自体はローカル環境で動いていますが、LLM は AWS で動いているためです。

ちなみに、プロジェクト作成時の質問の中のモデル選択で、私は Amazon Bedrock を選択したため、 AWS アカウントのログインが必要となりましたが、Anthropic や OpenAI など別のモデルを選択した場合は、AWS アカウントへのログインではなく、各プロバイダの API キーが必要になります。

STEP 4: エージェントをカスタマイズしてみる

今のままではおみくじ仕様になっていないため、エージェントをおみくじ仕様にカスタマイズしてみます。

エージェントは app/[エージェント名]/main.py で記述されています(プロジェクト作成時の質問で TypeScript を選択した場合は、main.ts になっています)。

Claude Code にお願いしたところ、いい感じに改修してくれました。

app/OmikujiAgent/main.py (一部抜粋)
import random

from strands import Agent, tool
from bedrock_agentcore.runtime import BedrockAgentCoreApp
from model.load import load_model

app = BedrockAgentCoreApp()
log = app.logger

DEFAULT_SYSTEM_PROMPT = """
あなたは神社のおみくじを引いてくれる「おみくじさん」です。
ユーザーから運勢や占いを尋ねられたら、提供されているツールを使っておみくじを引き、
巫女さんのような落ち着いた優しい口調で結果を伝えてください。

出力は3〜5行程度で簡潔にまとめてください。
"""

tools = []

@tool
def pick_lucky_aws_service() -> str:
    """Pick today's lucky AWS service."""
    services = [
        "Lambda", "S3", "DynamoDB", "EC2", "CloudFront", "Bedrock",
        "AgentCore", "Step Functions", "EventBridge", "RDS",
        "CloudWatch", "IAM", "Route 53", "Cognito", "API Gateway",
    ]
    return random.choice(services)
tools.append(pick_lucky_aws_service)

_agent = None

ローカルで動作確認をしてみると、しっかりと tool を使用して回答してくれていることが分かります。

image7-argondev22-bedrock-agent-core-cli-intro

STEP 5: AWS にデプロイ

AWS にデプロイする際には、下記のコマンドを実行します。この時も、AWS アカウントにログインしている必要があるため、セッションが切れている場合は、再度認証しておく必要があります。

agentcore deploy

実行してみると、CDK ブートストラップ が必要とのことなので、そのまま Enter を押して進めます。

image8-argondev22-bedrock-agent-core-cli-intro

少し待っていると、無事にデプロイできました。

image9-argondev22-bedrock-agent-core-cli-intro

親切なことに、出力の最後に Next: Run… で次のアクションを示してくれているので、agentcore status コマンドでステータスを確認してみると、OmikujiAgent がしっかりとデプロイできていることが確認できました。

image15-argondev22-bedrock-agent-core-cli-intro

続いて、agentcore invoke コマンドを実行して動作確認をしてみます。

image10-argondev22-bedrock-agent-core-cli-intro

しっかりと、ローカルと同じように動作していることが分かります。

AWSのマネジメントコンソールからも確認してみるとランタイムリソースに作成したエージェントが存在することを確認できました。

image11-argondev22-bedrock-agent-core-cli-intro

STEP 6: エージェントの削除

最後にデプロイしたエージェントを削除します。

エージェントを削除する際も agentcore deploy コマンドを使用します。
agentcore deploy コマンドは、このコマンドを実行したときにagentcore/agentcore.json の設定ファイルの runtimes キーに定義されているエージェントが AWS にデプロイされるという仕様になっています。先ほど特に何も意識せずに agentcore deploy コマンドでエージェントを AWS にデプロイできたのは、STEP 2 のプロジェクト初期化時に、runtimes に既にエージェントの情報が記載されていたためです。
したがって、エージェントを削除するためには、runtimes からエージェントの記載を削除した上で、agentcore deploy を実行します。手動でファイルからエージェントの記載を削除しても良いのですが、agentcore remove というコマンドが用意されているため使用してみました。

実際に、agentcore remove コマンドを実行してみると、以下のような選択肢が表示されます。Agent を選択した後、削除したいエージェントを選択することで設定ファイルからエージェントの記述を削除することができます(この時点ではまだ AWS 上からエージェントが削除されていないため要注意)。

image12-argondev22-bedrock-agent-core-cli-intro

続いて、agentcore deploy コマンドを実行すると「本当に削除しますか?」という旨のメッセージが表示されるので、Enter を押して進めます。

image13-argondev22-bedrock-agent-core-cli-intro

少し待っていると、無事にデプロイ(削除)できました。

image14-argondev22-bedrock-agent-core-cli-intro

再度エージェントをデプロイする際は、agentcore add でエージェントの記述を設定ファイルに追加し、再度 agentcore deploy を実行する形になります。

最後に

Amazon Bedrock AgentCore 初心者でも、AgentCore CLI を使用することで簡単に入門することができました。インターフェースがとても親切で使いやすかったため、Amazon Bedrock AgentCore に興味がある人はぜひチェックしてみてください。

この記事をシェアする

関連記事