Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Managed Agents API は Google Cloud の運用の夢を見ることはできるか?

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

Managed Agents API は Google Cloud の運用の夢を見ることはできるか?

月末 Tech Lunch Online#18 - Google Cloud を語る!- https://jaguer-tech-lunch.connpass.com/event/408350/
で話した内容です

Avatar for SatohJohn

SatohJohn

October 29, 2026

More Decks by SatohJohn

Other Decks in Technology

Transcript

  1. 2026.10.28(水)Jagu'e'r 月末 Tech Lunch Online#18 Managed Agents API は Google

    Cloud の運用の夢を見ることはできるか? 株式会社スリーシェイク 佐藤 慧太 Copyright © 3-shake, Inc. All Rights Reserved.
  2. 自己紹介 佐藤 慧太@SatohJohn • 2023/1 株式会社スリーシェイク入社 • Google Cloud Partner

    Top Engineer ’24、’25、’26 選出 Google Cloud All Certificate • お客様の労苦<Toil>を減らす • 娘×2 のお世話を精一杯やっています
  3. こういう人に刺さると思います Google Cloud で運用を回して いる SRE・インフラ担当 エージェントに権限を渡すのが 怖い人 Agent Platform

    の Preview を これから触る人 Cloud Run や Monitoring を日常的 に触っていて、観測やチューニング の定型作業をエージェントに渡した い IAM と予算をどう付ければ、どこで 止まるのか。実例が欲しい 本番の前に、何を先に締めておけば 事故らないかを知りたい 元ネタの記事 Gemini Enterprise Agent Platform の「Managed Agents」に Cloud Run を運用させてみる ただし書き:Managed Agents API は Preview です 検証は 2026-09-14、デモの再実行は 2026-10-15。数字と挙動はその時点のもので、今後変わる可能性があります。 Preview の規約上、本番データ・機密データは載せられません API のリファレンスや細かい手順は今日は触れません。Zenn の記事にあります https://zenn.dev/satohjohn/articles/gemini-managed-agents-security
  4. エージェントに Cloud Run の運用を任せられるか 能力は足りている。 気をつけないといけないのは、 権限の渡し方と止め方 任せられた 安全に権限を渡す口がない 事故はコストとして来る

    自然言語の指示だけで、観測・判断 ・適用・比較を完走した egress は全開放、資格情報はプロン プトで持ち込むしかない セキュリティより先に、トークンの 請求で気づくことになる
  5. Managed Agents API はサーバー側で動くエージェント Gemini Enterprise Agent Platform の API

    サンドボックス付きのエージェントを作り、対話(interaction)で仕事を頼みます Antigravity (antigravity-preview-05-2026) が手軽でコンテナ環境で動かせる 今回のエージェント定義 いまは Preview • base_agent: antigravity-preview-05-2026 • 記事の検証: 2026-09-14 • tools: code_execution, filesystem(MCP なし) • デモの再実行: 2026-10-15 • egress: allowlist は「*」 • 本番データ・機密データは載せない https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/managed-agents/create-manage?hl=ja#update-agent-google-1p Preview の仕様は変わる可能性があります。数字と挙動は検証日時点のものです
  6. 前提 how to use (変数) PROJECT_ID=your-project BASE="https://aiplatform.googleapis.com/v1beta1/projects/$PROJECT_ID/locations /global" TOKEN=$(gcloud auth

    print-access-token) H=(-H "Authorization: Bearer $TOKEN" -H "x-goog-user-project: $PROJECT_ID" \ -H "Content-Type: application/json" -H "Api-Revision: 2026-05-20") Agent を作る curl -sS -X POST "${H[@]}" "$BASE/agents" -d '{ "id": "cloudrun-ops-demo", "base_agent": "antigravity-preview-05-2026", "description": "Cloud Run ops demo", "system_instruction": "あなたは Cloud Run のサービスを運用する SRE です。渡された 資格情報で gcloud と curl を使います。 ", "tools": [{"type": "code_execution"}, {"type": "filesystem"}], "base_environment": {"type": "remote", "network": {"allowlist": [{"domain": "*"}]}} }'
  7. 前提 how to use 対話をする curl -sS -X POST "${H[@]}"

    "$BASE/interactions" -d '{ "stream": false, "background": true, "store": true, "agent": "cloudrun-ops-demo", "input": [{"type": "user_input", "content": [{"type": "text", "text": "gcloud run services describe ops-target --region=us-central1 --format=yaml(spec.template) を実行して、出力をそのまま貼ってください "}]}] }' 対話をつづける curl -sS -X POST "${H[@]}" "$BASE/interactions" -d '{ "stream": false, "background": true, "store": true, "agent": "cloudrun-ops-demo", "environment": "'"$ENV_ID"'", "previous_interaction_id": "'"$PREV_ID"'", "input": [{"type": "user_input", "content": [{"type": "text", "text": "前の ターンの数値をもとに原因を推定してください "}]}] }'
  8. 前提 how to use 状態を見る(status、steps、usage.total_tokens、environment_id が返ります) curl -sS "${H[@]}" "$BASE/interactions/$ID"

    止める curl -sS -X POST "${H[@]}" -H "Content-Length: 0" "$BASE/interactions/$ID/cancel" 消す(動いている場合は止めてから) curl -sS -X DELETE "${H[@]}" "$BASE/interactions/$ID" curl -sS -X DELETE "${H[@]}" "$BASE/agents/cloudrun-ops-demo"
  9. 観測と判断は指示だけで回る Turn 1 観測 Turn 2 判断 「設定・p95・警告ログを取って、数値だけを表にして」 上流の待ち 300

    ms が毎回かかっていると推定 • gcloud と Monitoring API を自分で叩いて集める • 1 CPU・並行数 4 の競合も指摘 • 「UPSTREAM_MS は変えない」の制約を守った 項目 変更前 提案 CACHE_ENABLED false true CPU / メモリ 1 / 512Mi 2 / 512Mi 並行数 4 4
  10. 権限が足りないと、別の手段で突破しようとする 1 回目 適用は権限不足で失敗 run.admin だけでは downloadArtifacts が足りない 回避の試み ダイジェスト指定で再実行

    レジストリの確認を飛ばせないか試した。最小権限な ので止まった 報告 変更なしを確かめてから報告 設定が元のままであることを自分で確認した 再適用 人間が権限を足して成功 リビジョン 00003 から 00004 に切り替わった 止めたのはエージェントの判断ではなく、渡した権限です 権限を広く渡していたら、回避の試みは通っていました
  11. p95 は 308.8 ms から 12.7 ms に下がった 指標 変更前

    変更後 サーバー側 p95(Cloud Monitoring) 308.8 ms 12.7 ms 手元 p95 827.5 ms 95.4 ms スループット 35.4 rps 198.1 rps エージェントはリビジョン別の 2 系列を読み分けた キャッシュヒット時は 12.7 ms、ミス時は 307 ms。 ミスの方を「仕様どおり」と説明した サーバー側はリクエストのレイテンシ、手元は負荷ツールで測った往復時間です
  12. Preview では MCP が動かず、environment がネットワークを消す MCP を宣言すると対話が内部エラー 対話時の environment がネットワークを黙って消す

    • mcp_server を書くと失敗する • 作成時の base_environment が置き換わり、 DNS 解決に失敗 • MCP サーバー単体は動く。Managed Agents 側の問 題 • 今回は gcloud と短命トークンで回した • environment を省略すれば成功する • エージェントは原因を探して、トークンを大量に 使った
  13. 暴走した対話は cancel で止められる cancel で即 cancelled DELETE は止めてから 2026-10-27 の実測。

    走っている対話に POST /cancel → 応答は status=cancelled、GET にも約 15 秒で反映。7,115 トー クンで止まった 走っている対話の DELETE は 400(not finished yet)。 cancel の後なら 200 で消せる ただし、気づかなければ止められない 止めるまでのトークンは課金される。予算上限とアラートは依然必要。デモの再実行では、累計が一定を超えたら次の ターンを始めない仕組みを入れた
  14. 記事の検証は 6 ターンで約 134 万トークン ターン トークン うちキャッシュ Turn 3

    適用(失敗) 248,416 153,913 Turn 4 比較 607,391 389,850 6 ターン合計 1,339,867 800,444 一番重いのは比較のターン Monitoring の生の JSON をそのまま読ませていたため 全ターンの内訳: 観測 95,105 / 判断 28,821 / 適用 248,416 / 比較 607,391 / 再適用 210,496 / 再比較 149,638
  15. 事故はコストとして来る 出力の絞り方で約 4 倍違う デモの再実行は 5 ターンで約 40 万 生の

    JSON を読ませるか、集計クエリで値だけ出させるか 値だけ出させる形にした。記事の 134 万の約 3 割 設定ミスの暴走は 1 ターンで 698,991 課金はトークン従量のみ environment の指定ミス。気づいて止めるまでの分は課金 される サンドボックスの計算に別の課金は観測されなかった
  16. 資格情報は専用・最小権限・短命にする egress はドメインで絞れない 資格情報は平文で残る allowlist にドメインを書くと 400。「*」しか通らない MCP の headers

    は GET や一覧 API で平文で返る。プロン プトで渡したトークンも対話の記録に残る だから、専用・最小権限・短命の資格情報しか渡さない デモでは 1 時間で失効するトークンを使い、権限は足りなくなってから人間が足しました
  17. 触る前に予算と境界を決める env_id 同じ ID を知る別エージェントが、 同じサンドボックスに入れる 信頼境界を越えて共有しない 監査 実行結果は SSE

    ストリームに流れない 保存された対話の記録から取る 予算 cancel はあるが、気づくまでは課金される 予算上限とアラートを先に設定する 規約 Preview の規約 本番データ・機密データは載せない
  18. まとめ 夢は見られる 観測・判断・適用・比較を自然言語だけで完走した。サーバー側の p95 は 308.8 ms → 12.7 ms

    でも、目は覚ましておく egress は全開放、資格情報は持ち込み、暴走は気づいて止めるしかない。事故はコストとして来る 1 予算上限とアラート 触る前に設定する 2 短命・最小権限のトークン 足りなければ人間が足す 3 出力を絞るプロンプト 値だけを返させる 詳細は Zenn の記事へ https://zenn.dev/satohjohn/articles/gemini-managed-agents-security