![[アップデート] AgentCore CLI v1.0.0がリリースされました!](https://devio2024-media.developers.io/image/upload/f_auto,q_auto,w_3840/f_auto,q_auto/v1790875048/eyecatch/edq4dfptctqlcwjhffhs.png)
[アップデート] AgentCore CLI v1.0.0がリリースされました!
はじめに
こんにちは、コンサル部の神野(じんの)です。
ついにAgentCore CLI v1.0.0がリリースされました!!!なんだか感慨深いですね・・・
本記事では主な変更点をまとめて、実際にいくつか触ってみます!以前までのAgentCore CLI自体については下記ブログで紹介しているので昔はこうだったんだーと見るのも面白いかもしれないですね!
前提
今回使用した環境は下記です。
| 項目 | バージョン |
|---|---|
| AgentCore CLI | 1.0.0(移行元として0.31.1も使用) |
| Node.js | 26.7.0 |
| リージョン | us-east-1 |
AgentCore CLIはpnpmでグローバルインストールしておきます。
pnpm add -g @aws/agentcore@1.0.0
主な変更点
リリースノートは変更が非常に多いので、使い方に関わるものを抜き出しました・・・!
プロジェクトの外からリソースを扱えるようになった
一番大きいのがコマンドの構成です。
0.x系では、statusやinvokeなどのコマンドはプロジェクト(agentcore.jsonのあるディレクトリ)の中で実行する前提で、外で実行するとNo agentcore project found.で呼び出すことはできませんでした。
それがv1.0.0では、プロジェクトを操作するコマンド(create、deployなど)とは別に、デプロイ済みのリソースを直接扱うコマンド(harness、runtime、memory、gatewayなど)が追加されました!
リソース系のコマンドはIDを指定して使うので、プロジェクトの外からでもアカウント内のリソースを一覧したり、呼び出したり、実行環境でコマンドを実行したりできます。

CLIや別のツールでデプロイしたエージェントをちょっと確認したいときに、コンソールへ移動しなくて済むのは嬉しいですね!!!
地味にこの機能は欲しいなーと思っていました。
Harnessの設定ファイルがYAMLになった
Harnessの設定ファイルがharness.jsonからharness.yamlに変わりました!
0.x系は独自の書き方でしたが、v1.0.0ではHarnessのAPIと同じ構造で書きます。
同じ設定(Bedrockのモデル、メモリなし)で比べるとこんな感じです。
{
"name": "legacy",
"model": {
"provider": "bedrock",
"modelId": "global.anthropic.claude-sonnet-4-6"
},
"tools": [],
"skills": [],
"memory": {
"mode": "disabled"
}
}
name: legacy
model:
bedrockModelConfig:
modelId: global.anthropic.claude-sonnet-4-6
tools: []
skills: []
memory:
disabled: {}
APIリファレンスと同じ項目名になったので、ドキュメントを見ながら設定を足しやすくなりました。
プロジェクトはテンプレートを選んで作る
agentcore createで言語やフレームワークを個別に指定する形から、テンプレート名を1つ選ぶ形に変わりました。
agentcore create --project-name MyProject --name agent \
--framework Strands --language Python --model-provider Bedrock --memory none
agentcore create --name MyProject --template agent-python-strands
agentcore create --helpで一覧できるテンプレートは、たとえば下記です。
- Strandsのエージェント(Python・TypeScript、Pythonはコンテナ版もあり)
- LangChainのエージェント
- Vercel AI SDKのエージェント(TypeScript)
- A2AやAG-UIで通信するStrandsのエージェント
- FastMCPで作るMCPサーバー
Bedrock以外のモデルを使う場合はオプションなしでagentcore createを実行してウィザードで選びます。Anthropic、OpenAI、Gemini、OpenAI互換のエンドポイント、LiteLLM(Pythonのみ)を選べます。
HarnessをIDのまま評価できるようになった
評価(eval)は0.x系でもできましたが評価対象に指定できるのはRuntimeだけでした(agentcore run eval --runtime ...)。
Harnessを評価するにはHarnessの裏で作られるRuntimeのARNを調べて--runtime-arnに渡す必要がありました(0.31.1で試したところ、この方法で評価できました)。
v1.0.0では評価のコマンドがagentcore evalの下にまとまり、評価対象の--agentにHarnessのIDをそのまま渡せます。もちろんRuntimeのIDも渡せます。

agentcore run eval --runtime MyAgent --evaluator Builtin.Helpfulness
agentcore eval ondemand evaluate --agent <HarnessまたはRuntimeのID> \
--session-ids <評価するセッションID> --evaluators Builtin.Helpfulness
オンライン評価(eval online-eval create)やバッチ評価(eval batch-evaluation evaluate)でも、同じように--agentでHarnessやRuntimeを指定できます。
評価器もプロジェクトに追加するだけでなく、eval evaluatorでプロジェクトなしに直接作れるようになりました。
0.x系のプロジェクトを移行できる
agentcore migrateで0.x系で作ったプロジェクトをv1.0.0の形式に変換できます。デプロイ済みのリソース名を保ったまま移行するので、作り直しは不要です。実際に試した結果は後半で紹介します。
そのほか
agentcore export harnessをプロジェクトの外からも実行できるようになった- ローカルに保存するプロジェクトの認証情報が暗号化されるようになった
0.x系から使い方が変わる点
agentcore createのオプションは--name、--template、--skip-install、--skip-gitの4つになった- 0.31.1で選べたGoogle ADKとOpenAI Agentsはv1.0.0のテンプレート一覧にはなかった
run evalやrun batch-evaluationなどの評価コマンドはagentcore evalの下に移った- Batch InsightsとOnline Insightsのコマンドとローカルに保存した評価結果の履歴(
evals history)がなくなった
スクリプトやCIからCLIを使っている場合は、リリースノートを確認しておきましょう!
やってみた
引数なしでagentcoreを実行するとTUIが開きます。
なんだかシュッとしていますね。

上半分がプロジェクト系、resourcesの下に並んでいるのがリソース系のコマンドです。
ここから、HarnessとRuntimeのデプロイ、一覧や呼び出し、セッションの確認、移行の順に試していきます!
HarnessとRuntimeをデプロイする
まずはプロジェクトを作ってHarnessを追加しデプロイします。
agentcore create --name CliV1Blog
cd CliV1Blog
agentcore add harness --name assistant --system-prompt "あなたは簡潔に日本語で答えるアシスタントです。"
agentcore deploy
作成されたapp/assistant/harness.yamlにはMCPツールやSkills、VPC、JWT認証の書き方がドキュメントのリンク付きでコメントとして記載されているので少し助かりそうです。
デプロイ先のaws-targets.jsonも、初回デプロイ時に認証中のアカウントとリージョンから自動で作られました。
created default deployment target: account 123456789012, region us-east-1 (agentcore/aws-targets.json)
verifying AWS account 123456789012
synthesizing CloudFormation templates
enabling CloudWatch Transaction Search
deploying AgentCore-CliV1Blog-default (usually takes a few minutes)
deployed project 'CliV1Blog' to target 'default'
さっそく呼び出してみます!
agentcore invoke --harness assistant --prompt "AgentCore CLIとは何ですか?一文で答えて"
AgentCore CLIは、Amazon Bedrock AgentCoreのコマンドラインツールです。`agentcore configure`、`launch`、`invoke` などのコマンドで、AIエージェントの設定、AgentCore Runtimeへのデプロイ、呼び出しを行えます。
応答は返ってきましたが、configureやlaunchはStarter Toolkit時代のコマンドですね。モデルが持っている知識で答えているのでここはご愛嬌です!
RuntimeのほうはStrandsのテンプレートでプロジェクトを作ってデプロイしました。
cd ..
agentcore create --name V1Strands --template agent-python-strands
cd V1Strands
agentcore deploy
テンプレートには足し算のツール(add_numbers)を持つStrandsのエージェントと、AgentCore Memoryの設定が入っています。Runtimeの呼び出しは次の節でプロジェクトの外から試します。
プロジェクトの外から一覧・呼び出しする
まずはプロジェクトの外でアカウント内のRuntimeを一覧してみます。
cd /tmp
agentcore runtime list --json
{
"agentRuntimes": [
{
"agentRuntimeId": "sample_resource_memory-UeIgHSCSNd",
"agentRuntimeName": "sample_resource_memory",
"status": "READY"
}
]
}
以前の検証で別にデプロイしたRuntimeも一覧に出てきました。
一覧だけでなくIDを指定すれば呼び出しもできます。HarnessとRuntimeをそれぞれプロジェクトの外から呼び出してみます。IDは、agentcore statusで表示されるARNの末尾や、agentcore runtime listなどの一覧で確認できます。
agentcore harness invoke --id <HarnessのID> \
--prompt "こんにちは。一言で自己紹介して" --json
こんにちは!シェルコマンドの実行やファイル編集もできる、簡潔にお答えする日本語アシスタントです。
RSID=blog-v1-runtime-$(uuidgen | tr A-Z a-z)
agentcore runtime invoke --id <RuntimeのID> \
--session-id $RSID --payload '{"prompt":"123 + 456 を計算して"}' --json
data: {"event": {"contentBlockStart": {"start": {"toolUse": {"toolUseId": "tooluse_sUdyeN1yTvVVn9EEUD7Fgq", "name": "add_numbers", "type": "tool_use"}}, "contentBlockIndex": 0}}}
data: {"event": {"contentBlockDelta": {"delta": {"text": "123 + 456 = **"}, "contentBlockIndex": 0}}}
data: {"event": {"contentBlockDelta": {"delta": {"text": "579**"}, "contentBlockIndex": 0}}}
どちらもプロジェクトの外から呼び出せました!
Runtimeはadd_numbersツールを使って579と答えていますね。Runtimeの応答は、エージェントが返すストリーミングのイベントがそのまま入っています。トップレベルのagentcore invokeも、--runtimeにIDを渡せばプロジェクトの外で使えました。
TUIでagentcore harness listからHarnessを選ぶと、詳細画面も確認できます。

linked resourcesに、Harnessの裏で作られたRuntimeとMemoryが表示されています。設定だけで動くHarnessの実体がどこにあるのか、コンソールを開かずに分かるのは便利ですね。
セッションの中を覗く
HarnessやRuntimeのセッションの実行環境に入って、中身を確認することもできます。この機能自体は0.31.1にもagentcore execとしてありました(--itを付けるとシェル)。ただ、個人的にこれまであまり触っていなかったので、v1.0.0でharness execやruntime shellのようにリソースごとのコマンドに分かれたこのタイミングで改めて紹介します!
まずはHarnessでセッションIDを指定してエージェントにファイルを作らせてみます。
cd <作業ディレクトリ>/CliV1Blog
SID=blog-v1-session-$(uuidgen | tr A-Z a-z)
agentcore invoke --harness assistant --session-id $SID \
--prompt "1から10までの数字の2乗を計算するPythonスクリプトをsquares.pyという名前で作業ディレクトリに保存して、実行結果も教えて"
同じセッションIDでharness execを実行し、作業ディレクトリを見てみます。
agentcore harness exec --id <HarnessのID> \
--session-id $SID --command "pwd && ls -la && cat squares.py"
/home
total 12
drwxr-xr-x 1 root root 4096 Oct 22 23:45 .
drwxr-xr-x 1 root root 4096 Oct 22 23:43 ..
-rw-r--r-- 1 root root 59 Oct 22 23:45 squares.py
for n in range(1, 11):
print(f"{n}の2乗 = {n ** 2}")
エージェントが作ったsquares.pyが残っていますね!別のセッションIDで同じようにls -laを実行すると/homeは空だったので、セッションごとに作業ディレクトリが分かれています。
harness shellなら対話で下記のように操作できます。

エージェントが本当にファイルを作ったのか、実行環境の中身で確かめられるのはデバッグで役に立ちそうですね!
Runtimeでもさきほど呼び出したセッションでruntime execを実行してみます。&&でつないだコマンドをそのまま渡すと期待した結果にならなかったので、sh -cでラップしています。
agentcore runtime exec --id <RuntimeのID> \
--session-id $RSID --command "sh -c 'pwd && ls -la && python3 --version'"
/
total 40
drwxr-xr-x 1 root root 4096 Aug 24 21:48 .
drwxr-xr-x 1 root root 4096 Aug 24 21:48 ..
lrwxrwxrwx 1 root root 7 Jan 30 2023 bin -> usr/bin
...
Python 3.14.2
runtime shellで入って、エージェントのプロセスも見てみました。

デプロイした/var/task/main.pyがPython 3.14で動いているのが見えますね!Harnessはrootでしたが、Runtimeはagentcore-runtime-userというユーザーで動いていました。
0.x系のプロジェクトを移行する
移行も、HarnessとRuntimeのプロジェクトでそれぞれ試してみます。まずは0.31.1で作ってデプロイしたHarnessのプロジェクト(V0Legacy)で試してみます。
v1.0.0でそのままaddを実行すると先に移行するよう案内されました。
Error: This project uses the v0 format (agentcore.json version 1). The v1 CLI cannot add or remove resources in it. Use 'agentcore migrate' to migrate the project fully before adding or removing resources.
migrateはGitの作業ツリーがクリーンな状態で実行する必要があるので、コミットしてから実行します。
cd <作業ディレクトリ>/V0Legacy
git add -A && git commit -m "v0 deployed"
agentcore migrate --yes
Migration plan: V0Legacy → v1 (target default, 123456789012/us-east-1)
Keeps the names of 2 deployed resources (harness legacy, harness-role legacy)
Moves 0 resources in AgentCore-V0Legacy-default to new logical IDs (stack refactor)
First v1 deploy: replaces nothing
Changes 13 files (agentcore/agentcore.json, agentcore/cdk/…, app/legacy/harness.json, app/legacy/harness.yaml)
Migrated. Review the changes with `git diff`, then run `agentcore deploy`.
ファイルを書き換える前にHarnessとIAMロールの名前を保つことや、初回デプロイでリソースを置き換えないことが計画として表示されます。harness.jsonもharness.yamlに変換されていました。
agentcore deployで再デプロイして、agentcore statusでHarnessのARNを確認します。
arn:aws:bedrock-agentcore:us-east-1:123456789012:harness/V0Legacy_legacy-UEjzc5CQi6
0.31.1でデプロイしたときと同じIDのままですね!作り直されずに引き継がれていて、移行後はaddも問題なく実行できました。
Runtimeのプロジェクトも0.31.1でStrandsのエージェントを作ってデプロイし、同じ手順で移行しました。
Migration plan: V0Strands → v1 (target default, 123456789012/us-east-1)
Keeps the names of 1 deployed resource (runtime agent)
Moves 3 resources in AgentCore-V0Strands-default to new logical IDs (stack refactor)
First v1 deploy: replaces nothing; updates 1 resource in place
✔ AgentCore-V0Strands-default: refactored, every physical ID unchanged
Migrated. Review the changes with `git diff`, then run `agentcore deploy`.
RuntimeではCloudFormationのスタックリファクタリングで3つのリソースの論理IDを付け替え、実体のID(物理ID)は変えずに移行したと表示されました。
デプロイ後のRuntimeのIDも0.31.1のとき(V0Strands_agent-trUPjZEz5C)と同じで、移行後もそのまま呼び出せました。
後片付け
プロジェクトからリソースをすべて外してデプロイすると、スタックが削除されます。Runtimeや移行したプロジェクトも同じ手順で削除しました。
# 削除するプロジェクトのディレクトリで実行
agentcore remove all --yes
agentcore deploy --yes
おわりに
コマンドの構成から設定ファイルまで大きく変わったリリースでついにv1.0.0か・・・という感じですね!
HarnessもRuntimeも、プロジェクトの外から呼び出してセッションの中まで確認できるようになったのは嬉しいですね!細かいところはまた触れてブログにしたいと思います!
本記事が少しでも参考になりましたら幸いです。最後までご覧いただきありがとうございました!
補足
createのウィザードが短くなった
オプションなしでagentcore createを実行するとウィザードでプロジェクトを作れます。
0.31.1では、Harnessを選ぶと「名前 → モデル → APIの形式 → 実行環境 → メモリ → 詳細設定 → 確認」の7ステップでした。

v1.0.0では「名前 → 種類 → モデル → 確認」の4ステップになり、細かい設定はあとからharness.yamlで足す形です。
名前を入れると、最初にconfig-based(Harness)かcode-based(Runtime)かを選びます。

config-basedを選んだ場合はモデルを選びます。選べるのはBedrock、OpenAI、Gemini、LiteLLMの4つです。

モデルを選ぶとそのまま確認画面になります。メモリはマネージドのMemoryが有効な状態で作られます。

code-basedを選んだ場合はテンプレートとモデルプロバイダーを選びます。テンプレートは--templateで指定できるものと同じ一覧です。

テンプレートを選ぶとモデルプロバイダーの選択です。Harnessの4つに加えて、AnthropicとOpenAI互換のエンドポイントも選べました。










