大数跨境

Gemini 4 Argon 上线:通宵改代码,6 项优化为何只留下 2 项?

Gemini 4 Argon 上线:通宵改代码,6 项优化为何只留下 2 项? AI大模型智能体前沿
2026-10-14
4
导读:用 Gemini 4 Argon 优化谷歌的智能体开发框架:怎样减少复制与加载耗时,为什么六项提案只合入两项?

导读谷歌于 2026 年 10 月 13 日全球开放模型 Gemini 4 Argon,并公开了一次代码优化案例:采用 Argon 的编程 Agent 在 Antigravity 中自主工作 11 小时,为智能体开发框架 ADK 提出六项优化,维护者最终保留两项。本文讲清模型、工具环境与框架的分工,解释会话复制和按需加载怎样减少框架耗时,以及这些改动为何仍需兼容性检查和代码审核。

本文 2986 字,阅读约 7 分钟|通宵工作以后,还要有人决定哪些代码留下 → 把目标写清楚,才能判断它有没有完成 → 留下的两项,减少了哪些冗余工作? → 另外四项,为何没有合入? → 约 40% 的下降,究竟发生在哪里? → 接收 Agent 的优化,要让收益和代价一起可见

通宵工作以后,还要有人决定哪些代码留下

Gemini 4 Argon 此次全球开放,谷歌展示了一个已有 Python 项目的性能优化案例。先把参与者分清,后面的“自主工作”与“提速”才不会混在一起:

•Argon 是模型:根据任务、代码和工具返回的结果,分析问题并生成修改方案。

•Antigravity 是编程环境:让模型通过工具读取文件、修改代码、执行测试,把运行结果交回模型继续判断。

•ADK 是被优化的框架:全称 Agent Development Kit,用于组织模型调用、工具执行和会话记录;这次修改的是它的 Python 代码。

本文的“编程 Agent”,指模型与工具、任务执行流程组成的系统。在这个案例中,Argon 提供推理和代码生成能力,Antigravity 提供运行环境。系统反复查看代码、提出修改、执行检查,并根据结果继续工作。

任务目标是减少 ADK 复制记录、加载模块等工作花费的时间。收益发生在改动后的框架运行过程中,服务于使用 ADK 构建的应用。

谷歌工程团队披露,通宵运行持续 11 小时,交出六项优化提案。维护者保留其中两项,并结合此前一轮的有效改动,整理成涉及 22 个文件的合入提交。

我更关心这个合并结果。性能优化要同时回答几个问题:省下了哪段时间,原有应用还能不能正常运行,未来升级是否多出维护负担。对于被其他应用依赖的框架,这些问题会直接影响改动能否合入。

自主运行之后,还要把性能收益和兼容性放在一起审核。这次案例把这一过程公开了一部分。

把目标写清楚,才能判断它有没有完成

性能优化容易写成一句宽泛要求:“把项目跑快一点。”但快在哪里,允许改变什么,怎样证明,必须先约定。

工程团队先给编程 Agent 一段目标说明:减少 ADK 的运行开销,同时保持使用 ADK 的应用发给模型的请求内容、ADK 的公开接口不变。第一轮找到了会话复制与包导入的瓶颈,但提交的改动仍遗漏了部分维护规范。

随后,团队把规范放进仓库的 .agents/skills 目录。这里的 Skills 是供编程 Agent 按需读取的项目说明,交代模块访问、导入检查等约定,不是对模型进行训练。

第二轮又在 Antigravity 中启用了 /goal 模式,让任务目标在上下文压缩后继续保留,并要求编程 Agent 交付带前后测量的合并请求,不自行合并。合并请求是一份提交给维护者审核的代码变更,提出修改与决定合入是两个环节。

图片说明:目标要求保留在界面中,运行记录展示修改、测试和测量。谷歌为隐藏内部工作区细节,在公开 Antigravity 界面重放了该截图。图片来源:Google Developers Blog,ADK 工程详解 Figure 3。

这些要求把“优化”变成了可检查的交付:接口约束决定哪些改动可以尝试,测试检查已有行为,测量说明收益,合并请求则让人能逐项审查。

两轮同时改变了规范、运行方式和交付要求,无法据此分离 Skills 的单独贡献。对实际任务更有用的启示是:在开始修改之前,就把验收要求交给模型。

AGENTS.md、Skill 怎么用?一次端侧 NEON 优化把边界说清

留下的两项,减少了哪些冗余工作?

第一项围绕会话记录的复制。

会话里存着交互事件和状态。调用者可能只需要最近一段记录,框架却仍要处理返回对象与内部存储之间的关系。深复制会递归复制对象内部的数据,以隔开原对象与副本;记录越多,这项工作可能越重。

合入版本的读取代码,先按最近事件数或时间条件筛选,再复制需要返回的会话。列出会话但不需要事件时,则不再为这些事件付出复制成本。

用一个示意例子就能理解差异:保存了 1000 条事件,这次只要最近 20 条。先复制全部再筛选,会为最终不用的记录付出复制成本;先筛选再复制,把工作集中到实际返回的范围。这里的条数用于解释机制,并非官方测试条件。

前后取出的仍是同样的 20 条记录。变化发生在程序内部的处理顺序,不是进一步缩短交给模型的历史内容。

减少复制范围,同时保持调用者拿到的内容不变,才是这项优化的目标。如果只是省掉复制,却让外部修改意外影响内部存储,就改变了原有行为。审核不能只看代码变短了多少。

第二项是模块按需加载。

Python 导入一个包时,可能沿着依赖关系继续加载其他模块。若当前任务只用其中一部分,把其余依赖一起加载,就会提前支付初始化成本。

合入代码保留了原来的公开名称,并在访问这些名称时按需加载对应模块。访问器就是处理这次名称访问的代码:先找到实现,加载后再交给调用者。

这里也有兼容性要求。已有应用或测试可能从固定模块路径访问某个名称,甚至临时替换它来模拟外部行为。直接删掉导入语句,可能省了时间,却破坏这些访问方式。

因此,按需加载要同时处理加载时机与访问约定。它能延后一部分工作,但延后的依赖首次使用时仍要加载,收益要放回具体计时范围里看。

另外四项,为何没有合入?

四项提案没有合入,各自卡在不同地方:

•事件缓存:可能跨会话返回陈旧数据,缓存结果与当前状态不再对应。

•遥测检查:为了判断运行监测功能是否启用,读取了依赖库的私有属性,库升级后可能失效。

•会话内容重写:核心路径更难读,但在独立验收基准中没有改善端到端延迟。

•回放索引:增加状态跟踪逻辑,收益主要出现在合成回放测试中。

图片说明:蓝色两项为合入的会话复制与按需加载,灰色四项为审核后删除的提案;具体原因见相邻正文。图片来源:Google Developers Blog,ADK 工程详解 Figure 4。

前两项暴露了可靠性与依赖稳定性问题,后两项需要回答收益是否值得维护。即使某个测试跑得更快,也要检查它是否接近日常负载,以及新增逻辑是否换来了足够收益。

按需加载这项最终被保留的优化,也经历了修正。编程 Agent 提交的初版修改删掉部分导入后,全部 16892 项公开测试通过,谷歌内部却有 25 个测试目标失败:这些测试会临时替换那些模块属性。保留原有访问方式,才让优化兼顾了这类使用约定。

测试通过,说明所运行的检查没有发现问题。测试数量不能替代覆盖范围。哪些下游应用、依赖版本和使用方式尚未被检查,仍需要维护者根据项目实际情况判断。

约 40% 的下降,究竟发生在哪里?

合入提交记录了几种不同的测量。已有 50 和 150 个内部步骤的内存会话中,下一次模型请求之前的框架准备开销,从 64 毫秒降到 36 毫秒、从 200 毫秒降到 122 毫秒,分别约下降 43% 和 39%。这就是“约 40%”的具体口径。

团队还准备了未向 Argon 提供的独立验收基准,用另一组负载检查修改,避免只凭优化过程中反复调整的测试认定收益。包导入耗时下降 21%,从新进程启动到首次模型请求则基本不变。

图片说明:五行分别测量长会话准备、包导入、新进程到首次请求,以及完整 158 步运行。前两行关闭垃圾回收,最后一行开启;数据为 6–12 次运行中位数,使用即时返回的模型与工具以测量框架开销。图片来源:Google Developers Blog,ADK 工程详解 Figure 5;数据对应公开合入提交。

按需加载把部分工作移到了首次使用,所以导入更快,不代表首次调用也同比变快。图中的新进程到首次请求从 3.07 秒变为 3.09 秒,正好提醒我们查看完整路径。

在该框架基准里,完整 158 步运行从 65.6 秒降到 56.1 秒,节省 9.5 秒,约为 14%。这里的内部步骤包括工具调用等动作,不是 158 次用户提问;一次用户请求可能在框架内部推进多个步骤。

基准让模型和工具即时返回,目的是隔离框架自身耗时。实际应用还要等待模型生成、工具执行或外部服务响应。因此,这组数字支持框架开销下降,不能直接写成用户任务整体提速 40%。

这里的开销也不是 token 用量。Token 是模型处理文本等内容时使用的计量单位;优化前后,ADK 应用发给模型的请求内容保持不变,测量的是框架处理这些请求的耗时。这些结果没有证明 token 用量或 API 费用下降。

还要分开两笔工作:编程 Agent 用 11 小时完成代码优化;使用 ADK 的应用在后续运行时获得上述收益。计时结果没有给出前一项工作的 token 成本,也没有涉及模型训练或回答能力的提升。

若要判断自己的项目能否受益,先确认是否走同样的内存会话读取路径,再看复制与导入占了多少耗时。瓶颈在模型响应或外部服务时,这两项改动的影响可能很小。

接收 Agent 的优化,要让收益和代价一起可见

这次案例展示了一个有用的分工:Argon 根据代码与反馈提出下一步修改,Antigravity 中的工具执行读写、测试和测量,维护者再判断哪些变化符合项目的兼容性与维护要求。

对接手合并请求的工程师,我建议要求它提供三类材料:

•同条件测量:改动前后分别测了什么,收益发生在哪一段。

•回归检查:哪些已有使用方式通过了检查,哪些下游依赖尚未覆盖。

•维护代价:新增了哪些状态和依赖,为什么值得保留。

这是从本次案例归纳的验收建议。六项提案保留两项,不足以计算模型的通用工程成功率;但两项最终合入的修改,让模型的工作留下了可检查的收益。合并请求能把这些收益及其条件讲清楚,维护者才有依据决定是否接收。

本次合入代码与基准记录: https://github.com/google/adk-python/commit/1754b3eeb6cdb2c16e3b30619a12066623df132e

参考资料

•Gemini 4 Argon 全球开放公告: https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-gemini-4-argon/

•ADK 通宵优化、代码审核与测量说明: https://developers.googleblog.com/optimizing-a-200000-line-python-codebase-overnight-with-gemini-4-argon/

•ADK 公开合入提交及基准结果: https://github.com/google/adk-python/commit/1754b3eeb6cdb2c16e3b30619a12066623df132e

•ADK 会话筛选与复制实现,固定至上述提交: https://raw.githubusercontent.com/google/adk-python/1754b3eeb6cdb2c16e3b30619a12066623df132e/src/google/adk/sessions/in_memory_session_service.py

•ADK 包属性按需加载实现,固定至上述提交: https://raw.githubusercontent.com/google/adk-python/1754b3eeb6cdb2c16e3b30619a12066623df132e/src/google/adk/init.py

•ADK 框架介绍: https://github.com/google/adk-python

— THE END —

文章仅做学术分享,如有侵权请联系删除,非常感谢!

【声明】内容源于网络
0
0
AI大模型智能体前沿
分享AI大模型智能体前沿知识,探寻多元应用,洞察未来趋势,带你一路 “卷” 赢行业!🔥
内容 1160
粉丝 0
AI大模型智能体前沿 分享AI大模型智能体前沿知识,探寻多元应用,洞察未来趋势,带你一路 “卷” 赢行业!🔥
总阅读23.0k
粉丝0
内容1.2k