{"id":22786,"date":"2026-07-28T16:21:37","date_gmt":"2026-07-28T16:21:37","guid":{"rendered":"https:\/\/scannn.com\/whats-new-in-managed-agents-in-gemini-api\/"},"modified":"2026-07-28T16:21:37","modified_gmt":"2026-07-28T16:21:37","slug":"whats-new-in-managed-agents-in-gemini-api","status":"publish","type":"post","link":"https:\/\/scannn.com\/lv\/whats-new-in-managed-agents-in-gemini-api\/","title":{"rendered":"What\u2019s new in Managed Agents in Gemini API"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p data-block-key=\"4qwp3\">In this configuration:<\/p>\n<ul>\n<li data-block-key=\"d4j6f\">The <code>security-gate<\/code> group runs <code>gate.py<\/code> before every <code>code_execution<\/code> or <code>write_file<\/code> call. If the script returns <code>{\"decision\": \"deny\", \"reason\": \"...\"}<\/code>, the tool call is skipped and the rejection reason is passed into the model\u2019s context.<\/li>\n<li data-block-key=\"17mcf\">The <code>auto-format<\/code> group runs <code>auto_lint.py<\/code> after every tool finishes to enforce code styling.<\/li>\n<li data-block-key=\"9356j\">Hooks also support <code>http<\/code> type handlers that POST directly to an external endpoint.<\/li>\n<\/ul>\n<p data-block-key=\"b4gjc\">For complete HTTP hook definitions and failure handling semantics, refer to the hooks documentation.<\/p>\n<p data-block-key=\"41nqa\">Teams are already using hooks to build production-grade validation pipelines. For example, AI-native investment bank Offdeal uses <code>post_tool_execution<\/code> hooks to run automated image verification inside the remote sandbox.<\/p>\n<p data-block-key=\"djsm2\"><i>&#8220;OffDeal is an AI-native investment bank, and Archie is the AI analyst our bankers use every day. A requirement for banker-ready decks is company logos: buyer tables, sponsor columns, tombstone grids, often 30+ logos in a single deck, every one of which must be the right company, the appropriate size and aspect ratio, contain the name, have a transparent background, and have a high contrast when placed on a white slide.<\/i><\/p>\n<p data-block-key=\"ditab\"><i>Before agent hooks, we couldn\u2019t do this on Gemini\u2019s managed agents: the sandbox is remote, so our validation code had nowhere to run. With hooks, a post_tool_execution hook triggers our pipeline inside the sandbox the moment Archie writes its company list, fetching candidates, enforcing pixel-level quality checks, verifying each logo with Gemini vision, and publishing a manifest of approved files that are the only images allowed into the deck.&#8221;<\/i><\/p>\n<p data-block-key=\"8clm2\">&#8211; Alston Lin, Founder &amp; CTO of OffDeal<\/p>\n<h2 data-block-key=\"70vde\">Cost control and automation features<\/h2>\n<h3 data-block-key=\"6i797\">Free tier availability<\/h3>\n<p data-block-key=\"e62dr\">Managed agents are now available on free tier projects. Developers can experiment with agentic workflows using an API key from a project without active billing.<\/p>\n<h3 data-block-key=\"9m7bs\">Budget controls<\/h3>\n<p data-block-key=\"624dk\">Because managed agents execute multi-turn autonomous loops, complex tasks can consume significant token budgets. To prevent runaway tasks, you can pass <code>max_total_tokens<\/code> inside <code>agent_config<\/code> to cap total consumption (input + output + thinking).<\/p>\n<p data-block-key=\"6cs8g\">When the agent reaches the limit, execution safely pauses and the interaction returns <code>status: \"incomplete\"<\/code>. The environment state is preserved, enabling you to continue where it stopped by passing <code>previous_interaction_id<\/code> with a fresh budget.<\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/blog.google\/innovation-and-ai\/technology\/developers-tools\/expanding-managed-agents-gemini-api-3-6-flash-hooks\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this configuration: The security-gate group runs gate.py before every code_execution or write_file call. If the script returns {&#8220;decision&#8221;: &#8220;deny&#8221;, &#8220;reason&#8221;: &#8220;&#8230;&#8221;}, the tool call is skipped and the rejection reason is passed into the model\u2019s context. The auto-format group runs auto_lint.py after every tool finishes to enforce code styling. Hooks also support http type [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":22787,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[100],"tags":[],"class_list":["post-22786","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-google"],"_links":{"self":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts\/22786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/comments?post=22786"}],"version-history":[{"count":0,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts\/22786\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/media\/22787"}],"wp:attachment":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/media?parent=22786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/categories?post=22786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/tags?post=22786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}