AIニュース最前線
最新ニュースAI日報Hacker日報週報動画AIツールトレンド企業

AIニュース最前線

世界中のAI最新情報を日本語で毎時更新

最新ニュース日報トレンド企業プレミアムRSS
© 2026 ainew.jp特定商取引法に基づく表記
ニュース一覧元記事を開く
AWS Machine Learning Blog·2026年6月9日 01:35·約19分で読める

ラップトップを閉じても安全:Amazon Bedrock AgentCore でのコーディングエージェントのホスティング

#コーディングエージェント#MCP (Model Context Protocol)#クラウドネイティブ#AWS Bedrock AgentCore#マイクロ VM
TL;DR

AWS は、開発者がコーディングエージェントを常時実行するためにラップトップを開きっぱなしにする非効率な慣行を解消するため、Amazon Bedrock AgentCore を紹介し、アイデンティティ層や MCP ゲートウェイを含む専用環境を提供する。

AI深層分析2026年6月8日 17:03
4
重要/ 5段階
深度40%
5
関連度30%
5
実用性20%
4
革新性10%
4

キーポイント

1

コーディングエージェントの運用課題

開発者がエージェント(Claude Code, Cursor など)を常時実行するためにラップトップを開きっぱなしにする「習慣」が蔓延しており、これはリソースとセキュリティの観点から非効率である。

2

Bedrock AgentCore の専用環境提供

AWS は、アイソレーションされた Linux マイクロ VM と永続的なワークスペースを提供し、エージェントが shell、ファイルシステム、依存関係、権限を安全に利用できるようにする。

3

統合されたシステム機能(ID, Gateway, 観測)

単なるサンドボックスを超え、ユーザーとしてのアイデンティティ層、GitHub や Slack などを統一された MCP エンドポイントで接続するゲートウェイ、および CloudWatch と連携した観測機能を標準搭載している。

4

マルチエージェント比較と評価

記事では、異なる環境で同時に Claude Code, Codex, Kiro, Cursor などのエージェントを実行し、レイテンシ、コスト、テストの成否を客観的に比較する手法を示唆している。

5

非確率的コマンド実行の最適化

テストや依存関係のインストールなど既知の操作には LLM を介さず、直接マイクロVMへコマンドを送信することでトークンコストを削減し、即座にファイル状態を反映できます。

6

セッション横断的なファイルシステムの統合

S3 や EFS へのマウントにより、チーム全体のスキルライブラリやキャッシュをセッション間で共有でき、サイドカーや手動設定なしで POSIX ディレクトリとして利用可能です。

7

安全な認証と権限管理

AgentCore Gateway と Identity を活用して、機密情報をマイクロVM に保存せず、ボットパターン、オンビハーフオブ(本人代理)、ブローカーパターンのいずれかで安全に外部ツールへアクセスします。

影響分析・編集コメントを表示

影響分析

この発表は、AI エージェントがローカル開発環境からクラウドネイティブなインフラへ移行する転換点を示しています。開発者が物理的なラップトップに依存せずとも、安全でスケーラブルなエージェント実行環境を即座に利用可能になることで、開発ワークフローの効率化とセキュリティ強化が期待されます。特に MCP(Model Context Protocol)標準との統合は、異種のエージェント間でのツール連携を容易にし、エコシステム全体の成熟を加速させる可能性があります。

編集コメント

開発現場の「常時稼働」という非効率な慣行を、AWS のインフラ技術で解決する提案は非常に示唆に富んでいます。特に MCP を介した統一されたツール連携と、セキュリティを担保しつつスケーラブルな実行環境を提供する点は、今後の AI エージェント普及における重要な基盤となるでしょう。

ある習慣が広まっています。会議から次の会議へ移動する際に、ラップトップを半開きの状態で抱えて歩くこと。1 対 1 の面談に臨む際にも、画面が消えないように蓋を少しだけ開けたまま座り続けること。帰宅中も、ラップトップを動かしたままにする必要があるため持ち歩いていること。どこでもよいので、デスクの上に閉じた状態にしてはいけません。なぜなら、デスクの上に閉じておくことは、内部で動作しているコーディングエージェント(Claude Code, Codex, Kiro, OpenCode, Gemini CLI, Cursor CLI、あるいは開発者が組み合わせたその他のハーンセス)を殺してしまうからです。

image
image

これらのエージェントをすべて分解して考えてみると、いずれも同じ 5 つの要素を必要とします:シェル(shell)、ファイルシステム、チェックアウトされたプロジェクト、インストール済みの依存関係、そして適切な権限です(ファイルシステムに対する操作権限に加え、ネットワークや外部世界へのアクセスに必要な認証情報)。あなたのラップトップにはこれらすべてが備わっています。ただし、このリストに「ラップトップ」という言葉が含まれているわけではありません。ラップトップがこの仕事を勝ち取ったのは、それが最も近い機械だったからであり、最適な機械だったからではありません。

この投稿の残りは、別のアプローチに焦点を当てるものです。Amazon Bedrock AgentCore Runtime は、各セッションに専用環境を提供します。これは永続的なワークスペースと実際のシェル、そして決定論的なコマンド実行を備えた隔離された Linux マイクロ VM です。多くのサンドボックス製品も同様の機能を提供しています。しかし、それらを組み合わせて構築するのは難しく、AgentCore が標準で提供しているのは、その周辺システムです。具体的には、エージェントがトリガーしたユーザーとして振る舞うための Identity レイヤー、Claude Code、Codex、Kiro、およびその他のツールに対して、GitHub、Jira、Slack、自社サービスなど、同じツールのセットを、エージェント外部に保持された実トークンを用いた単一の Model Context Protocol (MCP) エンドポイントを通じて提供するための Gateway、そしてチームがすでに使用している Amazon CloudWatch にエージェントの各ステップを記録する Observability です。そうすれば、ラップトップの蓋を閉じることができます。

この投稿が終わる頃には、同じ GitHub イシューを Claude Code、Codex、Kiro、Cursor に同時に渡し、それぞれが独自の環境で処理を行います。そして、実際に重要となる指標に基づいて評価します。それはレイテンシ、コスト(ドル換算)、そしてテストが初回でパスするかどうかです。

なぜノートパソコンは不適切なホストなのか

その前に、なぜノートパソコンがこの用途に決して適さないのかを明確に述べておく価値があります。主な理由は4つあります。

  • あなたのラップトップは影響を受ける領域です。エージェントはあなたのシェル、ファイルシステム、トークン、VPN、読み込まれた SSH キーを共有します。プロンプトインジェクションされた README が一つあれば、それはもう多すぎます。
  • シークレットは、エージェントが編集するコードの隣に置かれています。.env ファイル、~/.aws/credentials、~/.ssh/id_ed25519、プライベートレジストリトークンを含むあの ~/.npmrc:これらすべてが、エージェントが実行されている同じシェルから到達可能です。最小権限の原則は守られていません。
  • git worktree は並列処理に対する半分の解決策に過ぎません。一度に二つのエージェントを実行するための標準的な手順は、二つのブランチに対して worktree を作成し、各エージェントをそれぞれ指向させることです。エージェント自体も仕事の一部分を担当します。Codex はデフォルトで作業ディレクトリにサンドボックス化されます。Claude Code は、明示的に別の設定をするまで読み取り専用です。しかし、それらすべてが一つのマシンを共有しており、衝突の舞台となるのはそのマシンです:localhost:5432 上の同じ Postgres、開発サーバーが必要とする同じ :3000 ポート、同じ SSH キーリング、同じアウトバウンド IP アドレス、同じ ~/.aws/credentials。三つのブランチ上の三つのエージェントは、一つのホストを巡って争う三つのプロセスに過ぎません。並列処理に対する正直な答えは、もう一つの worktree ではありません。それは、エージェントごとに専用マシンを用意することです。
  • ラップトップの蓋がキルスイッチです。ラップトップをサスペンドすれば、その上でエージェントもサスペンドされます。会議のために蓋を閉じればセッションを失い、飛行機のために蓋を閉じればワークスペースを失います。半分インストールされた依存関係、部分的に適用されたリファクタリング、まだ実行中のテストスイート——これらすべてが蓋と共に消滅します。タスクの時間が長くなるほど、その計算は悪化します:90 分かかるリファクタリングや一晩かけるマイグレーションの場合、蓋を 90 分間、あるいは一晩中開けておく必要があります。機能のリリースがラップトップのヒンジの開き角度に依存してはいけません。

開発者とプラットフォームチームが求めるもの

開発者であれば、ラップトップの制限を伴わないラップトップ体験を望んでいます。同じエージェント、同じシェル、同じファイルシステム、同じ即時フィードバックを提供しつつ、蓋を閉じてもよく、複数のエージェントを並行して実行でき、再起動や飛行機内での移動、あるいは長い昼食の間でも作業が継続されます。

プラットフォームチームに所属する方であれば、いつも望んでいるものを求めています。各エージェントには独自のスコープを持たせ、トラフィックはパブリックインターネットではなく、仮想プライベートクラウド(VPC)を流れるようにします。アイデンティティは .env ファイルではなく、企業のアイデンティティプロバイダー(IdP)に紐付けます。すべての呼び出し記録を AWS CloudTrail で追跡し、すべてのステップのトレースを CloudWatch で取得します。ツールへのアクセスは ~/.netrc ではなく、ポリシー層によって仲介されます。大規模言語モデル(LLM)が制御する環境内のディスク上に認証情報が存在しないようにします。これらすべてがオプションであってはならず、また構築のために必要なことでもあってはいけません。

では、AgentCore がどのようにして両者の要望を満たすのかを見てみましょう。

任意のエージェントを呼び出し、任意のモデルを選択し、並列実行する

任意のエージェント。 Claude Code, Codex, Kiro, OpenCode, Cursor CLI, Gemini CLI をホストでき、独自のハネスも利用可能です。また、あらゆるものをコンテナや .zip ファイルにパッケージ化できます。コンテナは Amazon Elastic Container Registry (Amazon ECR) にプッシュするか、Python または Node.js プロジェクトを直接 zip デプロイできます。イメージ内には、言語ランタイム、ビルドツール、git、システムパッケージなど、開発者のマシンからエージェントが必要とするあらゆる依存関係を追加できます。

任意のモデル、任意のルート。 ランタイムはモデルに依存しません。ハネスがモデルと到達経路を選択します。3 つのルートがあり、すべて同等に優れています:

  • Amazon Bedrock を通じて、Anthropic の Claude ファミリーや、最近では OpenAI モデル、さらに Nova、Llama、Mistral、Qwen、Kimi などの他のモデルもホストされています。
  • プロバイダーを介して直接:Anthropic の Claude API、OpenAI の API、Google、その他のプロバイダー、またはセルフホストされたモデルは、HTTPS を通じて依然としてアクセス可能です。
  • ご自身の LLM ゲートウェイ(LLM Gateway)を介して:ルーティング、フォールバック、コスト制御のためにすでに標準化されている場合です。

Amazon Bedrock 内で VPC 内に Claude Code が Opus を呼び出すか、Codex が GPT クラスモデルを呼び出す。あるいは OpenCode で Anthropic や OpenAI に直接アクセスする。または Kiro でゲートウェイが提供するものを何でも利用する。セキュリティ体制に合った経路を選択してください。Runtime はそれについて意見を持ちません。Amazon Bedrock 経由の経路には、プロンプト、トークン、出力が AWS ネットワークから外に出ないという特性があります。これは内部セキュリティチームがまず問う特性です。

並列で実行し、直列ではありません。 各セッションは独自の Firecracker マイクロ VM で実行されます。数秒で N 個を起動できます。同じエージェントを 10 のブランチに対して実行する。3 つの異なるエージェントを同じチケットに対して実行して、どちらのパフォーマンスが優れているか確認する。A/B テストとして、Opus 上の Claude Code と GPT クラスモデル上の Codex、そしてそれらのいずれか上の Kiro を比較:同じプロンプト、同じリポジトリ、3 つの独立したカーネル、3 つの独立したファイルシステム、localhost:5432 の競合なし。この投稿の末尾にある companion GitHub リポジトリには、まさにこのシナリオを実行可能なスクリプトとして提供しています。

管理コンテナを本当の開発環境に変える 4 つの機能

単独の管理コンテナではワークステーションにはなりません。それを可能にするのは、以下の 4 つの機能です。

1. 停止と再開後も維持される永続的な /mnt/workspace

Managed session storage(パブリックプレビュー中) を利用すると、すべてのセッションにゼロ構成の永続ディレクトリが付与されます。エージェントがファイルを書き込みます。次回アクセスした際にもそのファイルが存在します。node_modules、.git、ビルドキャッシュ、プロジェクトファイル、途中まで適用されたリファクタリング:すべて、エージェントが放置していた状態と全く同じで利用可能です。マイクロ VM がアイドル状態になると、ファイルシステムは維持されます。同じセッション ID で再開すれば、新しいマイクロ VM 上で数ミリ秒のうちに同じファイルシステムがマウントされます。データは14 日間の非アクティブ期間保持されます。

client.create_agent_runtime(

agentRuntimeName="acme-coding-agent",

agentRuntimeArtifact={"containerConfiguration": {"containerUri": "..."}},

filesystemConfigurations=[

{"sessionStorage": {"mountPath": "/mnt/workspace"}}

],

roleArn="arn:aws:iam::...:role/AgentExecutionRole",

)

これで完了です。S3 へのファイルウォッチャー同期や、SIGTERM によるフラッシュ処理ロジック、Git バンドの永続化は不要です。(チームがこれら三つを手動で何度も構築してきたことはありますが。)

ラップトップで作業する際、git worktree(ドキュメント参照)を通じて異なるコーディングエージェント・セッションに論理的な分離を設定し、つまり別々の作業ディレクトリと共有されたリポジトリ履歴を持ち、できればファイル競合を回避できる環境を整えることができます。一方、AgentCore ではその分離は物理的であり、各エージェントとセッションを個別のマイクロVM(microVM)および独自の /mnt/workspace に割り当てることができ、調整層としては依然として git が機能します。さらに AgentCore では、必要に応じて別々のビルドキャッシュ、別々の node_modules、そして別々のファイルシステム状態も自動的に提供されます。マイクロVM とファイルシステム自体による追加の分離により、worktree の管理は不要となります。

2. 実際のインタラクティブシェル

6 月 5 日より、AgentCore Runtime はエージェントセッションに ターミナルアクセス用のインタラクティブシェル を導入しました。agentcore exec --it コマンドを実行すると、実行中のマイクロVM 内に直接 PTY ベースのシェルが開かれます。色表示、タブ補完、Ctrl+C、ターミナルのリサイズ、ネットワーク切断時の再接続といった機能はすべて標準で備わっています。リモート環境で動作するコーディングハッチ(harness)が、まるでローカルのターミナルのように感じられるようになります。

より興味深いのは、複数の端末をどう扱うかです。3 つのターミナルを開き、それぞれを異なるマイクロ VM に接続し、3 つのエージェントが並列で 3 つのブランチで作業する様子を見守ります。

「背景」はもはやあなたのラップトップではなく、それぞれ固有のカーネルを持つ遠隔の隔離環境群(ファーム)へと変わります。

そして、その接続は貴重ではありません。ラップトップを閉じ、翌日開いて同じシェルに再接続できます。各インタラクティブセッションには 2 つの重要な ID が存在します:ランタイムセッション ID(どのマイクロ VM か)とシェル ID(マイクロ VM 内のどのシェルか)。これら両方を agentcore exec --it に渡せば、同じシェル、同じ作業ディレクトリ、同じスクロールバックに到達でき、再起動も再クローンも不要です。一時的なネットワーク切断は自動的に再接続されます。より長時間の切断の場合は、再開コマンドを出力し、いつでも手動で再接続できるようにします。

エージェントの VM に接続する

agentcore exec --it --runtime acme-coding-agent --session-id sess-jane-1234

後から同じシェルに再接続する

agentcore exec --it --session-id sess-jane-1234 --shell-id shell-789

3. アプリケーションレイヤーからの決定論的コマンド実行

ターミナルだけが環境を駆動する方法ではありません。エージェントコアの exec --it シャル内で実行できるものであれば、アプリケーションは LLM を介さずに直接実行することも可能です。ハレスがいつ npm test を呼び出し、いつ git push を行うかを決定し続けることももちろん可能で、多くの場合それで問題ありません。しかし、操作自体が決定的である場合(テストスイートの実行、ブランチのプッシュ、依存関係のインストール、データセットの取得など)は、モデルを完全にスキップできます。

InvokeAgentRuntimeCommand は、エージェントがすでに動作しているマイクロ VM に対してシェルコマンドを直接送信し、HTTP/2 を介して標準出力(stdout)と標準エラー(stderr)をストリーミングします。CLI からは、対話型シャルのために使用した agentcore exec と同じものですが、--it オプションを除いた形で利用できます:

# シングルショット、非対話モード

agentcore exec --runtime acme-coding-agent --session-id sess-jane-1234 \

"cd /mnt/workspace && npm test"

モデルをループ内に含める必要はなく、したがってトークンの消費も発生せず、プッシュが成功したかどうかについての確率的な判断も不要です。エージェントが数秒前に書き込んだファイルは、コマンドから即座に参照可能です。

4. スキル、キャッシュ、共有アーティファクトのための持ち込みファイルシステムの活用

マネージドセッションストレージは、1 つのセッション内での永続化をカバーします。セッションやエージェント間(チームのスキルライブラリ、共有依存関係キャッシュ、以前のパイプラインからのゴールデンアーティファクトなど)でデータを共有する必要がある場合、Amazon Simple Storage Service (Amazon S3) Files または Amazon Elastic File System (Amazon EFS) アクセスポイント を POSIX ディレクトリとして各セッション内にマウントできます。ランタイムあたり最大 5 つのマウントが可能です。サイドカー、マウントヘルパー、または /etc/fstab の設定は不要です。スキルを S3 Files に配置すれば、チームのすべてのエージェントが次の呼び出し時に /mnt/skills でそれを自動的に取得します。

filesystemConfigurations=[

{"sessionStorage": {"mountPath": "/mnt/workspace"}},

{"s3FilesAccessPoint": {"accessPointArn": "...", "mountPath": "/mnt/skills"}},

{"efsAccessPoint": {"accessPointArn": "...", "mountPath": "/mnt/cache"}},

]

ツールと認証情報の安全な扱い方

ファイルの編集のみができるコーディングエージェントは、長くは役に立ちません。いずれはプルリクエストを開いたり、Jira チケットにコメントしたり、プライベートレジストリへプッシュしたり、Slack で誰かに通知したりする必要があります。これを実現するための間違った方法は、GitHub の認証情報やその他のアクセストークンをマイクロ VM 内の ~/.netrc に書き込んで、誰も気にしないだろうと期待することです。正しい方法は、決してそこに配置しないことです。

AgentCore Gateway はツールカタログが存在する場所であり、AgentCore Identity はその背後にある認証情報を保持しています。具体的には、AWS Secrets Manager に保存された長期シークレットと、Token Vault にキャッシュされた短期トークンです。コーディングエージェントが必要とするツール(GitHub、Jira、Slack、ビルドシステム、独自の OpenAPI または AWS Lambda サービスなど)を一度登録するだけで、Gateway は Claude Code、Codex、Cursor、Kiro、OpenCode がすでに使用している Streamable HTTP 転送プロトコルに対応した単一の MCP エンドポイントを公開します。Gateway をハネスに接続するには、MCP 設定で 1 行記述するだけです。ベアラーヘッダーの発行もトークンの貼り付けも不要です。

# Claude Code

claude mcp add agentcore \

https://.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp \

--transport http

# Codex CLI ~/.codex/config.toml

[mcp_servers.agentcore]

url = "https://.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp"

最初の接続時、コーディングハネスは Gateway の認証メタデータを検出し、開発者を IdP(IdP)にリダイレクトして同意を求めます(3LO)、または AWS Identity and Access Management (IAM)(M2M)を表示し、Gateway が呼び出し元を認証できるようにします。ここから先、すべてのツール呼び出しは Gateway を経由し、Identity は適切な呼び出し元に正しい下流の認証情報を付与します。この情報はキャッシュされるため、トークンが期限切れになるまで、一連の呼び出し間で同じトークンが再利用されます。3 つのパターンが、ほとんどのコーディングワークフローをカバーしています。

  • エージェントが自律的に行動するためのボットパターン。GitHub ボットを作成し、特定のリポジトリにスコープを限定した細粒度のパーソナルアクセストークン (PAT) を発行し、これをゲートウェイの GitHub MCP ターゲットに対して API キー認証情報として登録します。ID 管理システムが PAT をトークン vault に保持し、ゲートウェイは各呼び出し時にこれを付与するため、GitHub 側ではボットがアクターとして認識されます。
  • エージェントが個人として行動するためのオン・behalf・オブ・パターン (on-behalf-of pattern)。開発者は自社の ID プロバイダー (IdP) を介してサインインします。ID 管理システムはワークロードアクセストークンを発行し、OAuth 2.0 トークン交換 (RFC 8693) を用いて GitHub スコープ付きのトークンに交換し、その結果をトークン vault にキャッシュします。ゲートウェイはこのトークンを付与して各呼び出しを転送するため、プルリクエストは共有ボットではなく人間個人に帰属されます。同じフローは、Jira、Slack、Salesforce、Confluence など、IdP を通じて認証する他の下流リソースに対しても機能します。
  • クレデンシャルフローの完全な制御を必要とする場合(自己署名 JWT が必要な GitHub アプリインストールトークンや、IdP とフェデレーションしない下流サービスなど)には、ブローカーパターン (broker pattern) を使用できます。この場合、ゲートウェイのターゲットを Lambda に指向させます。Lambda は各呼び出しごとにクレデンシャルを発行または取得し、リクエストを GitHub へプロキシしますが、秘密鍵をエージェントに返すことはありません。他の2つのパターンと同様のセキュリティ特性を持ちつつ、レガシーシステムや非標準的な認証にも対応できる余地があります。

GitHub MCP サーバー自体にはできない操作が一つあります:プライベートリポジトリのクローンです。ファイルのプッシュ、コメント投稿、プルリクエストの作成など、セッション中に行うべき作業はすべて実行可能ですが、「clone」というコマンド(動詞)がありません。初期のプル操作は依然として git を通じて行われ、git にはセッション内にクレデンシャルが必要です。

原文を表示

There’s a habit going around. Walking from one meeting to the next with the laptop cradled half-open. Sitting through a 1:1 with the lid propped just enough to keep the screen alive. Riding home while holding your laptop because it must stay running. Anywhere except closed on a desk, because closed on a desk is what kills the coding agent running inside (Claude Code, Codex, Kiro, OpenCode, Gemini CLI, Cursor CLI, or whatever harness the developer pulled together). Business Insider has a piece on it.

Strip any of these agents down and they all need the same five things: a shell, a filesystem, the project checked out, its dependencies installed, and the right permissions (to act on the filesystem, plus credentials for the network and the outside world). Your laptop has all five. Nothing about the list says laptop, though. The laptop won the job by being the nearest machine, not the right one.

The rest of this post is about reaching for a different one. Amazon Bedrock AgentCore Runtime gives every session a dedicated environment: an isolated Linux microVM with a persistent workspace, a real shell, and deterministic command execution. Most sandbox products do something similar. What’s harder to assemble, and what AgentCore ships out of the box, is the surrounding system: an Identity layer so the agent acts as the user who triggered it, a Gateway that gives Claude Code, Codex, Kiro, and the rest the same set of tools (GitHub, Jira, Slack, your own services) through one Model Context Protocol (MCP) endpoint with the real tokens held outside the agent, and Observability so every step the agent takes lands in the Amazon CloudWatch your team already uses. And then the lid can close.

By the end of this post, we’ll hand the same GitHub issue to Claude Code, Codex, Kiro, and Cursor at the same time, each in its own environment, and grade them on the things that actually matter: latency, dollar cost, and whether the tests pass on the first try.

Why a laptop is the wrong host

Before we get there, it’s worth saying out loud why the laptop was never the right host for this. Four reasons stand out.

  • Your laptop is your affected zone. The agent shares your shell, your filesystem, your tokens, your VPN, your loaded SSH keys. One prompt-injected README is one prompt-injected README too many.
  • Secrets sit next to the code the agent edits. .env files, ~/.aws/credentials, ~/.ssh/id_ed25519, that one ~/.npmrc with the private registry token: all reachable from the same shell the agent runs in. The principle of least privilege has not been observed.
  • git worktree is a half-fix for parallelism. The standard play for running two agents at once is to spin up worktrees for two branches and point one agent at each. The agents themselves do part of the job. Codex sandboxes to the working directory by default. Claude Code is read-only until you say otherwise. But they all share one machine, and the machine is what they collide on: the same Postgres on localhost:5432, the same :3000 your dev server wants, the same SSH keyring, the same outbound IP, the same ~/.aws/credentials. Three agents on three branches are three processes fighting over one host. The honest answer to parallelism isn’t another worktree. It’s a dedicated machine per agent.
  • The laptop lid is the kill switch. Suspend the laptop and the agent suspends on it. Close it for a meeting, lose the session. Close it for a flight, lose the workspace. Half-installed dependencies, a partially applied refactor, a still-running test suite, all gone with the lid. The longer the job, the worse the math: a 90-minute refactor or an overnight migration means the lid must stay open for 90 minutes, or all night. Shipping a feature should not depend on the angle of a laptop hinge.

What developers and platform teams want

If you’re a developer, you want a laptop experience, without the laptop limitations. Same agent, same shell, same filesystem, same instant feedback, but the lid can close, multiple agents can run side by side, and the work survives a reboot, a flight, or a long lunch.

If you’re on a platform team, you want what you always want. Each agent with its own scope. Traffic flowing through your virtual private cloud (VPC), not the public internet. Identity tied to the company identity provider (IdP), not a .env file. AWS CloudTrail records of every invocation. CloudWatch traces of every step. Tool access mediated by a policy layer instead of ~/.netrc. Credentials that are not on disk inside a large language model (LLM)-controlled environment. None of that should be optional, and none of it should require building.

Let’s see how AgentCore gets you both.

Bring any agent. Pick any model. Run them in parallel.

Any agent. You can host Claude Code, Codex, Kiro, OpenCode, Cursor CLI, Gemini CLI, your own harness, and you can package anything into a container or a .zip. Push the container to Amazon Elastic Container Registry (Amazon ECR) or zip-deploy a Python or Node.js project directly. You can bring your own dependencies in the image: language runtimes, build tools, git, system packages, or whatever the agent needs from the developer’s machine.

Any model, any route. Runtime is model agnostic. The harness picks the model and the path it takes to get there. Three routes, all equally fine:

  • Through Amazon Bedrock, which hosts Anthropic’s Claude family and, as of recently, OpenAI models, along with others like Nova, Llama, Mistral, Qwen, Kimi.
  • Directly via the provider: Anthropic’s Claude API, OpenAI’s API, Google, other providers or self-hosted models are still reachable over HTTPS.
  • Through your own LLM gateway, if you’ve already standardized on one for routing, fallbacks, and cost controls.

Run Claude Code calling Opus, or Codex calling GPT-class models on Amazon Bedrock inside your VPC. Or use OpenCode calling Anthropic or OpenAI directly. Or Kiro calling whatever your gateway hands it. Pick the route that fits your security posture. Runtime doesn’t have an opinion about it. The Amazon Bedrock route has the property that the prompts, the tokens, and the outputs don’t leave the AWS network. That is the property internal security teams usually ask about first.

In parallel, not in series. Each session runs in its own Firecracker microVM. Spin up N of them in seconds. Run the same agent against ten branches. Run three different agents against the same ticket and see who performs better. A/B Claude Code on Opus against Codex on a GPT-class model against Kiro on any of those: same prompt, same repo, three independent kernels, three independent filesystems, no localhost:5432 collisions. The companion GitHub repo at the end of this post ships exactly this scenario as a runnable script.

The four capabilities that turn a managed container into a real development environment

A managed container on its own isn’t a workstation. Four capabilities turn it into one.

1. A persistent /mnt/workspace that survives stop and resume

Managed session storage (in public preview) gives every session a zero-config persistent directory. The agent writes files. The files are there next time. node_modules, .git, build caches, project files, the half-applied refactor: all available in the exact state the agent left them. When the microVM idles out, the filesystem stays. Resume the same session ID and a fresh microVM mounts the same filesystem in a matter of milliseconds. The data is held for 14 days of inactivity.

code
client.create_agent_runtime(
    agentRuntimeName="acme-coding-agent",
    agentRuntimeArtifact={"containerConfiguration": {"containerUri": "..."}},
    filesystemConfigurations=[
        {"sessionStorage": {"mountPath": "/mnt/workspace"}}
    ],
    roleArn="arn:aws:iam::...:role/AgentExecutionRole",
)

That’s it. There’s no need for file watcher syncing to S3, no SIGTERM flush logic, and no Git bundle persistence. (Teams have built all three by hand, repeatedly.)

When working on your laptop, you can set up your environment so that different coding agents sessions get logical isolation via git worktree (see documentation), i.e. separate working directories, shared repo history, and hopefully no file conflicts. On AgentCore, the isolation is physical – you can set up each agent and session to point to an isolated microVM, and its own /mnt/workspace with git still being the coordination layer. Additionally, on AgentCore you also naturally get separate build caches, separate node_modules, and separate filesystem state if required. No worktree management is needed because of the additional isolation from the microVM and filesystem itself.

2. A real interactive shell

Starting June 5th, AgentCore Runtime introduced interactive shells for terminal access into agent sessions. agentcore exec --it now opens a PTY-backed shell straight into the running microVM. Colors, tab completion, Ctrl+C, terminal resize, reconnect on network drop are all built-in. The coding harness running on the remote environment starts feeling like your local terminal.

The more interesting part is what you do with more than one. Open three terminals, attach each to a different microVM, watch three agents work three branches in parallel. The “background” stops being your laptop and starts being a fleet of remote isolated environments, each with its own kernel.

And the connection isn’t precious. Close the laptop, open it tomorrow, reattach to the same shell. Each interactive session has two IDs that matter: the runtime session ID (which microVM) and the shell ID (which shell inside the microVM). Pass both back to agentcore exec --it and you land in the same shell, same working directory, same scrollback, no boot, no re-clone. Brief network drops reconnect automatically. Longer ones print the resume command and let you reattach by hand whenever you’re ready.

code
# Drop into the agent's VM
agentcore exec --it --runtime acme-coding-agent --session-id sess-jane-1234

# Reconnect to the same shell later
agentcore exec --it --session-id sess-jane-1234 --shell-id shell-789

3. Deterministic command execution from the application layer

The terminal isn’t the only way to drive the environment. Anything you can run inside an agentcore exec --it shell, your application can also run directly, without an LLM in the middle. The harness can absolutely keep deciding when to call npm test and when to git push, and most of the time that’s fine. But when the operation is already deterministic (run the test suite, push the branch, install a dependency, fetch a dataset), you can skip the model entirely. InvokeAgentRuntimeCommand sends shell commands straight to the microVM the agent is already working in, streaming stdout/stderr back over HTTP/2. From the CLI it’s the same agentcore exec you used for the interactive shell, only without --it:

code
# One-shot, non-interactive
agentcore exec --runtime acme-coding-agent --session-id sess-jane-1234 \
  "cd /mnt/workspace && npm test"

There is no need to have the model in the loop, and thus there is no token spend or probabilistic decision about whether the push happened. Files the agent wrote a second ago are visible to the command immediately.

4. Bring-your-own filesystems for skills, caches, and shared artifacts

Managed session storage covers per session persistence. For data shared *across* sessions and agents (your team’s Skills library, a shared dependency cache, golden artifacts from a previous pipeline), you can mount Amazon Simple Storage Service (Amazon S3) Files or Amazon Elastic File System (Amazon EFS) access points as POSIX directories inside every session. Up to five mounts per runtime. There is no need for sidecars, mount helpers, or /etc/fstab. You can drop a Skill into S3 Files and every agent on the team picks it up at /mnt/skills on the next invocation.

code
filesystemConfigurations=[
    {"sessionStorage": {"mountPath": "/mnt/workspace"}},
    {"s3FilesAccessPoint": {"accessPointArn": "...", "mountPath": "/mnt/skills"}},
    {"efsAccessPoint": {"accessPointArn": "...", "mountPath": "/mnt/cache"}},
]

Tools and credentials, the safe way

A coding agent that can only edit files isn’t useful for long. Sooner or later it has to open a pull request, comment on a Jira ticket, push to a private registry, page someone in Slack. The wrong way to make that happen is to drop your GitHub credentials, or any other access token, into ~/.netrc inside the microVM and hope nobody asks. The right way is to never put it there.

AgentCore Gateway is where the tool catalog lives, and AgentCore Identity holds the credentials behind it: long-lived secrets in AWS Secrets Manager, short-lived tokens cached in its Token Vault. You register the tools a coding agent needs (GitHub, Jira, Slack, your build system, your own OpenAPI or AWS Lambda services) once, and Gateway exposes a single MCP endpoint speaking the Streamable HTTP transport Claude Code, Codex, Cursor, Kiro, and OpenCode already use. Wiring the Gateway into a harness is one line of MCP config. No bearer header to mint, no token to paste:

code
# Claude Code
claude mcp add agentcore \
  https://.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp \
  --transport http
code
# Codex CLI ~/.codex/config.toml
[mcp_servers.agentcore]
url = "https://.gateway.bedrock-agentcore.us-west-2.amazonaws.com/mcp"

On first connect, the coding harness discovers Gateway’s auth metadata and either redirects the developer to your IdP for consent (3LO) or presents AWS Identity and Access Management (IAM) (M2M) so Gateway can authenticate the caller. From there, every tool call goes through Gateway, and Identity attaches the right downstream credential for the right caller, cached so the same token gets reused across calls until it expires. Three patterns cover most coding workflows.

  • The bot pattern, for agents acting on their own. You create a GitHub bot, mint a fine-grained personal access token (PAT) scoped to specific repos, and register it as an API-key credential on the Gateway’s GitHub MCP target. Identity holds the PAT in the Token Vault and Gateway attaches it on each call, so GitHub sees the bot as the actor.
  • The on-behalf-of pattern, for agents acting as a person. The developer signs in via your IdP. Identity mints a workload access token and exchanges it for a GitHub-scoped one using OAuth 2.0 Token Exchange (RFC 8693), caches the result in the Token Vault, and Gateway forwards each call with that token attached. PRs are attributed to the human, not a shared bot. Same flow can work for any downstream resource that you use the same IdP to authenticate into, such as Jira, Slack, Salesforce, or Confluence.
  • The broker pattern, for cases where you want full control of the credential flow, like GitHub App installation tokens that need a self-signed JWT, or downstream services that don’t federate with your IdP, you can point the Gateway target at a Lambda. The Lambda mints or fetches the credential per call, proxies the request to GitHub, and never returns the secret to the agent. Same security property as the other two, with room for legacy and non-standard auth.

There’s one operation the GitHub MCP server itself can’t do: clone a private repository. It can push files, comment, open PRs, and do everything an agent needs mid-session, but it has no clone verb. The initial pull still goes through git, and git needs a credential in the session.

この記事をシェア

関連記事

Latent Space★42026年6月9日 15:12

[AINews] FrontierCode:コードの質を評価するベンチマーク「Slop」への対抗

Latent Space が、AI 生成コードの質を測定する新ベンチマーク「FrontierCode」を発表し、低品質な出力(Slop)との戦いを開始した。

Smol AI News★42026年6月8日 14:44

今日は何も大きな出来事はありませんでした

Smol AI News は、6月5日から8日にかけての期間に12件のサブレッドと544件のツイートを調査しましたが、特に注目すべきAI関連のニュースや技術進展は見られませんでした。

Simon Willison Blog★42026年6月3日 21:01

Uber、コスト管理のためClaude CodeなどのAIツールの利用を制限

Uberは2026年のAI予算を4ヶ月で使い果たしたため、Claude CodeなどのAIツールの利用に上限を設けてコスト削減を図っている。

今日のまとめ

AI日報で今日の重要ニュースをまとめ読み

ニュース一覧に戻る元記事を読む