GEMINI LABEN
PRICE — Gemini 3.6 Flash は出力トークンを約17%削減し、価格も 100万トークンあたり入力$1.50・出力$7.50 に下がりました(3.5 Flash は出力$9)LITE — Gemini 3.5 Flash-Lite は 100万入力トークンあたり$0.3 で、高スループットの処理に振った選択肢ですCYBER — Gemini 3.5 Flash Cyber は Google の CodeMender エージェントの中で、脆弱性の検出とパッチ作成を担いますGEMINI4 — Google は「これまでで最も野心的な事前学習を Gemini 4 に向けて開始した」と述べています。3.5 Pro の遅延と合わせて動向が注目されますSUNSET — Imagen 4 系と Gemini 3 Image 系の画像生成モデルは 2026年8月17日に停止します。新しい安定版・プレビュー版への移行が必要ですSTUDIO — Gemini Omni Flash が Google AI Studio で初めて使えるようになりました。動画生成と会話型編集を低コストで試せますPRICE — Gemini 3.6 Flash は出力トークンを約17%削減し、価格も 100万トークンあたり入力$1.50・出力$7.50 に下がりました(3.5 Flash は出力$9)LITE — Gemini 3.5 Flash-Lite は 100万入力トークンあたり$0.3 で、高スループットの処理に振った選択肢ですCYBER — Gemini 3.5 Flash Cyber は Google の CodeMender エージェントの中で、脆弱性の検出とパッチ作成を担いますGEMINI4 — Google は「これまでで最も野心的な事前学習を Gemini 4 に向けて開始した」と述べています。3.5 Pro の遅延と合わせて動向が注目されますSUNSET — Imagen 4 系と Gemini 3 Image 系の画像生成モデルは 2026年8月17日に停止します。新しい安定版・プレビュー版への移行が必要ですSTUDIO — Gemini Omni Flash が Google AI Studio で初めて使えるようになりました。動画生成と会話型編集を低コストで試せます
記事一覧/API / SDK
API / SDK/2026-06-21上級

Gemini API の Managed Agents に自前のエージェントループを移すべきか — 移す処理と残す処理を分ける3つの質問

Gemini API の Managed Agents が公開プレビューになり、自前のエージェントループとの使い分けが現実の検討事項になりました。実行環境・状態の所有・失敗時の回収という3つの質問で、移す処理と残す処理を分ける考え方を整理します。

gemini-api280managed-agents4ai-agents2automation35architecture11google-io-2026

プレミアム記事

Google I/O 2026 で発表された Managed Agents が、Gemini API の公開プレビューとして使えるようになりました。1回の API 呼び出しで、Google がホストする隔離された Linux サンドボックスの中にエージェントが立ち上がり、推論・ツール実行・コード実行までこなして結果を返してくる、という触れ込みです。

私自身、個人開発のかたわらでブログの定期更新や画像資産の整理といった処理を、自前のエージェントループとスケジュール実行で回しています。発表を読んだときの率直な気持ちは、期待半分、警戒半分でした。「ループの面倒な部分を全部引き受けてくれるなら、それに越したことはない」という期待と、「動いている自動化を安易に動かすと、たいてい痛い目を見る」という経験則です。

そこで、いま手元で動いている処理を一つずつ眺めながら、「これは Managed Agents に移せるのか、移すべきなのか」を考えてみました。結論から言うと、全部を移す判断にはなりませんでしたが、判断の軸は3つの質問に集約できました。ここから先は、その整理の記録です。

自前のエージェントループは、実は「ループ」以外が本体です

エージェントループそのものは、書いてみると意外なほど短いコードです。モデルを呼び、function call が返ってきたら対応する関数を実行し、結果を渡してまた呼ぶ。骨格だけなら30行ほどで書けます。

次のコードは、リリースノートを確認するツールを1つだけ持つ最小のループです。Gemini が必要に応じてツールを呼び、最終的な報告テキストを返したら終了します。

from google import genai
from google.genai import types
 
client = genai.Client()  # GEMINI_API_KEY を環境変数から読み込みます
 
def check_release_notes(product: str) -> dict:
    """リリースノートの最新エントリを返します(実際は RSS や DB を参照します)"""
    return {"product": product, "latest": "1.4.2", "breaking_changes": False}
 
tool = types.Tool(function_declarations=[
    types.FunctionDeclaration(
        name="check_release_notes",
        description="製品名からリリースノートの最新エントリを取得します",
        parameters=types.Schema(
            type=types.Type.OBJECT,
            properties={"product": types.Schema(type=types.Type.STRING)},
            required=["product"],
        ),
    )
])
 
contents = [types.Content(
    role="user",
    parts=[types.Part(text="依存ライブラリ foo の最新リリースに破壊的変更がないか確認し、1段落で報告してください")],
)]
 
for _ in range(5):  # 暴走防止の上限つきループ
    response = client.models.generate_content(
        model="gemini-3.5-flash",
        contents=contents,
        config=types.GenerateContentConfig(tools=[tool]),
    )
    if not response.function_calls:
        print(response.text)
        break
    contents.append(response.candidates[0].content)
    for call in response.function_calls:
        result = check_release_notes(**call.args)
        contents.append(types.Content(
            role="user",
            parts=[types.Part.from_function_response(name=call.name, response=result)],
        ))

骨格をこれだけ短く見せたのには理由があります。実運用では、この骨格の周りに「本体」と呼ぶべき層が付いてくるからです。指数バックオフ付きのリトライ。途中経過のログと永続化。実行環境(cron なりコンテナなり)の維持。API キーの管理。タイムアウトと多重起動の防止。私の手元のループも、エージェントの思考に関わる部分より、この運用層のコードのほうがずっと長くなっています。

ループ周辺の本番設計は ADKに頼らない Gemini API カスタムエージェントループ設計ガイド — ツール呼び出し・メモリ・並列実行の本番実装 に詳しく書きましたが、一言でまとめると「ループは簡単、運用が本体」。これが今回の出発点になります。

Managed Agents が肩代わりするのは運用層のどこまでか

公開されている説明を読み解くと、Managed Agents が引き受けてくれるのは次の範囲です。エージェントの実行環境、つまり隔離された Linux サンドボックスの用意と破棄。推論からツール実行・コード実行までを繰り返すループの進行管理。そして実行中の状態の保持。先ほど「本体」と呼んだ運用層のうち、実行環境の維持とループの進行管理が、まるごと API の向こう側に移ることになります。

一方で、こちら側に残るものもはっきりしています。タスクの定義、つまり何をさせたいかの記述。結果の受け取りと、出てきたものが正しいかどうかの検証。失敗したときのハンドリング。そしてコストの管理。エージェントが「どう動くか」は任せられても、「何のために動かし、結果をどう使うか」は引き続き自分の仕事です。

この線引きを眺めたとき、私は cron の管理から解放されることよりも、「検証と失敗時のハンドリングは残る」という事実のほうが重要だと感じました。自動化の運用で実際に時間を取られるのは、環境の維持ではなく、失敗したときの調査だからです。だからこそ、移す・移さないは「便利そうかどうか」ではなく、次の3つの質問で判断することにしました。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
Managed Agents 呼び出しを薄いラッパーに閉じ込め、失敗時に自前ループへ自動フォールバックさせる実装
入力から作る冪等キーで再実行・二重起動を安全にする番人パターン(sort_keys の落とし穴つき)
managed/self の所要時間比とフォールバック発生率を毎晩集計し、プレビュー期間の課金膨張を早期検知する監視設計
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API / SDK2026-07-23
会話状態をサーバーに預けるべきか — previous_interaction_id と手元での履歴刈り込みの分岐設計
Interactions API の previous_interaction_id で会話状態をサーバーに預けると、毎回履歴を送らずに済みます。ところが途中で入った巨大なツール出力を後から刈り込めず、以降のターンが重量を引きずる落とし穴があります。サーバー側状態と手元での刈り込みを状況で使い分ける分岐設計を、動くPythonの薄いラッパーとともに整理します。
API / SDK2026-06-30
散らばった呼び出し口を一つに畳む — Interactions API を自動運用の正面玄関にする移行設計
Interactions API の一般提供で、Gemini の呼び出しが一つの入り口に寄せられるようになりました。generateContent・Batch・自前エージェントループに散らばった呼び出し口を、壊さずに正面玄関へ畳んでいく移行設計を、薄いアダプタ層の実装とともに整理します。
API / SDK2026-06-19
Managed Agents の請求はトークンだけでは読めない — サンドボックス稼働時間に予算境界を引く設計
公開プレビューの Managed Agents は、トークンに加えてサンドボックスの稼働時間でも課金されます。ハングした1実行が静かに予算を削る第二の課金軸を切り分け、壁時計上限・アイドル切断・同時実行の天井を動く Python で設計します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →