Google 给 Agent 加上工具前置钩子:运行时开始有刹车,但安全边界还在外面Chapters1×0:08事件播报0:50工具调用有了前置检查2:00预算和定时触发改变了循环边界3:08Hooks 不是安全边界3:46给工程团队的四个动作0:005:410:08主持人7 月 28 日,Google 在 Gemini API 官方博客宣布 Managed Agents 的一组更新。Antigravity agent 的默认模型切换到 Gemini 3.6 Flash,开发者可以在远程沙箱里给每次工具调用加环境 hooks,也就是在工具执行前后插入自己的检查和动作。0:25主持人更新还加入了总 token 预算、定时触发、免费层项目访问和环境管理接口。Google 的产品描述是,一次 API 调用就能协调推理、代码执行、文件管理和网页检索,运行地点是隔离的 Linux 沙箱。事件的重点不只是配置项变多,而是工具真正动手之前,运行时终于有了一个可以介入的时刻。0:50主持人传统 Agent 循环是模型生成工具调用,执行器照做,把结果塞回上下文,模型再决定下一步。提示词里写着「不要删除重要文件」,不等于执行器真的能拦住删除动作。Google 的工具执行前钩子可以匹配代码执行、读文件、写文件、列文件和删文件,脚本返回允许或拒绝,拒绝时工具调用会被跳过,模型也能看到原因。1:17主持人工具执行后的钩子适合做格式化、单元测试、日志和遥测,但不能撤销已经发生的动作。这至少把一部分安全、质量和审计要求从提示词挪到了运行时。写文件前检查路径,跑代码前检查命令,动作完成后记录变更,这些才是控制,不是再加一句「请谨慎操作」。1:39主持人不过 hooks 的覆盖范围很窄。官方文档明确说,它只拦截沙箱内置工具,对外部函数工具和 MCP Server 工具不生效。Agent 通过内部写文件工具做什么,你可能拦住;它通过 MCP 去改工单、发邮件或调用业务系统,不能靠这套 hooks 直接授权或拒绝。2:00主持人总 token 预算可以限制一次交互的输入、输出和思考 token。达到上限后,运行返回 incomplete,工作和上下文会保留,工程师可以用上一次交互的标识和原环境继续。这比简单超时多了一个可恢复状态,但它不是完整的成本控制。token 上限不等于外部 API 费用、沙箱运行时间或工具副作用,Agent 可能没有超预算,却已经发出了三次重复请求。2:27主持人定时触发则把循环从一次请求变成了持续资源。Agent、环境、提示词和 cron 计划可以绑定起来,按时自动启动,适合周期性检查和后台维护。但上一次还没结束时要不要并发,同一条告警会不会重复处理,环境里的状态是否过期,这些都不是 cron 表达式能回答的。2:50主持人官方文档还提醒,沙箱默认有不受限的出站网络访问,可以用 allowlist 收紧;环境连续 7 天不活动后会永久删除,虚拟机空闲后也会关闭。长循环需要把环境 ID、检查点、幂等键和外部状态放在沙箱之外,不能把沙箱当成唯一数据库。3:08主持人真正需要警惕的是 hooks 的失败策略。命令脚本崩溃、HTTP hook 返回非 2xx、hook 超时,或者输出无法识别的 JSON,都会按允许处理,工具继续执行。这是 fail open,检查系统出问题时,动作不会自动停下来。3:25主持人拥有代码执行或文件写权限的 Agent,还可能修改本地 hooks 配置和脚本。Google 建议把配置从只读仓库挂载进来。换句话说,hooks 更像沙箱里的可配置守门员,不是沙箱之外的保安。身份、权限、网络出口和外部系统的最终授权,必须由 Agent 之外的策略网关负责。3:46主持人第一,先画动作清单,再写 hooks。列出 Agent 会读什么、写什么、调用哪些外部系统,每个动作的审批人、幂等要求和撤销办法是什么,并标出哪些动作必须交给外部网关。4:01主持人第二,把 hook 当成可测试的软件组件,记录版本、输入输出、允许与拒绝的原因。高风险动作不能接受平台默认的 fail open,就在外部执行器再加一道 fail closed 的策略。hook 是前置检查,不是唯一闸门。4:18主持人第三,把预算和恢复写进任务协议。除了 token 上限,还要有截止时间、最大工具调用次数、费用上限、环境 ID、交互 ID 和幂等键。返回 incomplete 时,系统要知道哪些外部动作已经发生,不能把「继续」理解成从头再跑一遍。4:38主持人第四,给定时触发配去重和观测,记录计划版本、触发时间、任务输入、工具轨迹、状态变化和结果。评估时别只看答案对不对,还要看它有没有越权、重复副作用,被拒绝后有没有改用安全路径。4:55主持人把这次更新放回 AI Loop Engineering 的主线,Google 做的是一件很实在的事:把部分反馈和控制,从模型输出之后挪到了工具动作之前。但一个 Agent 能被暂停、恢复、定时启动,不代表它拥有了正确的权限模型。5:13主持人今天留给团队的问题是:如果 Agent 下一步要调用一个外部 MCP 工具,而内部 hooks 既看不到、也拦不住这个动作,最后负责说「允许」的人是谁?如果答案还是模型自己,这个循环就还没有进入生产控制层。5:26主持人这里是 AI Loop Engineering。感谢收听,我们明早继续。