Google 给 Managed Agents 装上 Hooks:能拦工具,但失败时默认放行
Google 给 Managed Agents 装上 Hooks:好消息是能拦工具,坏消息是失败时默认放行
Google 7 月 28 日更新 Gemini API Managed Agents。默认模型升到 Gemini 3.6 Flash,同时加了模型选择、免费层、Token 总预算、定时触发和 Environments API。
这些功能都实用,但真正改变工程边界的是 environment hooks。
一次工具调用,现在有了前门和后门
开发者可以在沙箱里的 .agents/hooks.json 注册两类事件:
pre_tool_execution:工具执行前跑脚本或 HTTP 请求,可以返回 deny,直接取消本次工具调用;post_tool_execution:工具跑完后做格式化、测试、审计或遥测,不能撤销已经发生的动作。
code_execution|write_file,或用 * 兜住所有内置工具。处理器有两种:沙箱内 command,以及发往外部 HTTPS 地址的 HTTP hook。一个常见组合是:写文件前检查路径与命令,写完后自动跑 lint 和单测。模型被拒绝时,拒绝理由会回到上下文里,它可以换一条路继续干活。
这才像生产系统。
Hooks 的含金量在「把流程写进运行时」
此前大家谈 Harness,常常停在 prompt、tool schema 和上下文组织。Google 这次把策略点钉到了每次工具调用前后。安全、质量、合规不再靠模型「记得遵守」,而由运行时插一脚。
官方给出的投行案例很具体:Agent 生成收购方名单后,post hook 会自动找 Logo、检查尺寸和透明背景,再用视觉模型核验,最后只允许通过检查的图片进入演示文稿。这里的价值不是模型更聪明,而是质量门槛可重复。
同一批更新还把长程 Agent 的三笔账补齐了:
max_total_tokens限制输入、输出和思考 Token 的总消耗;- 打满预算后任务暂停为 incomplete,沙箱状态保留,追加预算后可续跑;
- scheduled trigger 把 Agent、环境、提示词和 cron 绑成长期资源,每次执行复用同一沙箱,文件会留下。
但这个安全门会「坏了就开」
官方文档写得很清楚:hook 脚本崩溃、HTTP 返回非 2xx、超时,或者返回无法识别的 JSON,运行时都按 allow 处理。Fail-open 能避免一个坏掉的 linter 把业务死锁,却不适合当最后一道安全边界。
限制还有两条:
1. Hooks 只拦沙箱内置的代码执行、读写文件等工具,不覆盖外部 MCP 和自定义 function;
2. Agent 如果有写文件或执行代码权限,可能反过来改 hooks.json。Google 建议从只读仓库挂载配置。
所以,hooks 更像运营护栏,不是不可篡改的强制访问控制。高风险命令仍应由容器权限、网络隔离、最小凭据和外部审批兜底。
我的判断
过去一周的信号已经连成线:GitHub 在讲 Harness 工作流,OpenAI 把安全扫描塞进提交前,Google 把 hooks 放进每次工具调用。模型公司的竞争位置,正在从「谁的模型会写代码」移到「谁的运行时能管住代码代理」。
下一轮企业采购问的会很现实:能不能拦?拦截失败怎么办?预算耗尽能不能续?状态在哪里?谁能审计?
这些问题不性感。可它们决定 Agent 能不能进生产。
原始来源
- Google 官方更新:https://blog.google/innovation-and-ai/technology/developers-tools/expanding-managed-agents-gemini-api-3-6-flash-hooks
- Agent hooks 文档:https://ai.google.dev/gemini-api/docs/agent-hooks
- Managed Agents 文档:https://ai.google.dev/gemini-api/docs/agents
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens