AI宝库

AI宝库首页 › AI 资讯 › 优化与 Gemini 4 Argon 的20万行 Python 代码库

优化与 Gemini 4 Argon 的20万行 Python 代码库

来源:Google Developers · 发布时间:10-30 · 由 AI宝库每小时自动聚合

我们的工程团队如何在一夜之间无人驾驶Gemini 4 Argon 操作.agents/技能和/目标模式在长赛西欧将模拟会前管理费削减了40%

OCT. 13, 2026 (英语).

当一个新的模型发布时,大多数演示会显示从空文件夹所构建的绿地应用。 他们很有趣看。 他们还很少告诉一个工作软件工程师该模型如何处理一个已存在的代码库。

对于Gemini 4 Argon的发布,我们想测试它能否在一夜之间就一个更棘手的问题进行无人关注的运行:在google/adk-python中查找并修复跨文件性能瓶颈。 Agent开发Kit (ADK)是Google的开源建设和部署企业agents的框架。

Python寄存器跨越近800个源文件的大约20.5万行代码,辅以近1.7万个单元测试。

性能工作对于一个模型来说是一个艰难的测试,因为你不能仅仅打开一个文件并发现减速。 你必须直观地看症状的出现地点并持有一个地图说明整个密码库如何长期结合在一起

这篇文章通过提示,. agents / 技能规则文件,以及11小时一夜运行的人类代码审查决定,你会看到运出的两个优化,我们拒绝的4个审查,以及如何在您自己的代码库上设置相同的一夜间的工作流程。

图1:ADK在第一个模型请求之前的间接费用,在50和150个转弯后测得。 Argon的变换削减在两个点上都增加了约40%,所以节省的时间随着会话的延长而增加。

大多数与编码的agent的性能工作仍然运行在紧凑的人类循环中:工程师运行一个剖面器,将模型指向单一的热功能,并指定了固定。 我们想知道Argon如果只得到团队关心的结果会怎么做。

在第一回合,我们用零自定义寄存器指令测试了Argon. 我们给了它这个段落的提示:

使 ADK 在任何 agent 中不添加显著的间接费用:

在启动时,在长会话中,在多agent和

工作流程设置。 保持模型得到的和

公共 API 不变,并返回每个变化

与一个能抓住倒退的测试。

第一回合跑了大约两个小时。 Argon在7分钟内写出基准测试脚本,在编辑ADK源的一行之前花了70分钟测量和读取代码,并发现会话复制和包导入中存在真正的瓶颈。 第一回合的部分密码完成了我们最后的任务

第1轮不足的是维护者公约。 因为Argon不知道ADK团队是如何审查代码的,所以在ADK的认证模型上附加了自定义钩子来潜入地改变其公共的JSON schema,在自定义的复印机中错过了模拟事件边缘案例,只运行了附近的216个单元测试,并将基准测试的号码从它的拉出请求描述中去掉。

第一回合证明确实需要加快步伐,因此我们进行了两次调整,建立了第二轮。 首先,我们把团队的维护者准则放入了寄存器的.agents/技能目录中,就像新工程师的登机指南。 每个技能都从一个简短的SKILL.md索引起步,该索引在需求时指向有重点的参考/文件,因此我们不会在每个转弯上淹没agent的上下文窗口。 Argon在9:11开始运行(图2)时

图2:阿尔贡的首发比赛时间为2小时,与其同入一球的11小时通宵比赛相比。 第1轮自行发现真正的快取,而第2轮则遵循回波常规,进行了全部16,892个单元的测试,并开启了审查准备拉取请求。

第二,我们打开了Google反重力的/目标模式,它保留了整个上下文的收缩目标,因此agent一直运行到任务完成。 我们还增加了两句,要求用前后数字提出未出现的拉取请求:

/ 目标使 ADK 在任何 agent 中不增加明显的间接费用:

在启动、长会话、多agent和工作流程设置中。

保持模型得到的和公开的API不变,并用一个能捕捉回落的测试回回放每个变化。

对ADK维护者批准的主机打开一个拉取请求,其描述中包括数字前后。 别合并

随着.agents/技能在回放和/目标模式中活跃,Argon连夜跑出11个小时无人看管(图3).

图3:阿尔贡一夜ADK跑出Google抗重力。 /目标快取被固定在窗口上下方,而完成的工作则会倒塌为摘要块,因此原始规则会停留在几小时的编辑,基准测试和测试运行中查看。 (Screenshot在公用Antigravity接口中重放以去除内部工作空间细节。

第二天早上看过夜的会话记录时,立即出现了一些行为。 在触摸出源代码之前,Argon读取了12个指针文件并运行了一个基线基准测试,跨越了四个测试工作量:包启动,200步对话,20个子agents手相接任务的测试应用,以及12节点工作流程,运行了30次。 甚至在完成11小时运行前的3分钟,Argon仍然在审计自己的diff,在自己的多agent缓存中捕捉到一个错误并重新运行所有16,892个单元的测试,然后自己停下来。

更重要的是,Argon做了跨模块的腿部工作一个剖面仪不能为你做。 一个剖析器会告诉你复制会话和导入软件包需要时间。 它不会做的是追踪每个呼叫者,模拟目标,和共享参考在40个文件中,这样这些路径的加速不会打破现有的应用。

总体而言,阿尔贡的拉力请求提出了跨越32个文件的6个优化。 其中两项优化措施干净地解决了ADK的核心瓶颈并运出生产:

ADK运行中的每一步都从装入对话历史开始。 此前,ADK的内幕会话服务,在过滤到一个呼叫者要求的事件之前,深入地复制了每个读数上存储的全部对话。 甚至列出没有它们的活动的会话,先复制每个事件。 Argon更新服务,在复制前过滤事件,并用一个快速,循环安全的复印机来保存共享状态词典和测试模拟,取代了Pydantic在会话和事件上的通用深复制道。

运行导入 google.adk 之前在模块中被拉出用于直播音频和视频流,OpenTeleometry tracking,以及网络服务器(FastAPI和Starlette)甚至对于一个基本的文本agent. 简单地删除框架中的顶级导入会打破直接在模块上模拟属性的下游测试。 当Argon的"圆二拉"请求从llm agent.py中移除了3个内流进口时,所有的16,892个开源测试都通过了,然而25个内部的Google测试目标却因为补齐了这些精确的属性而失败了。 所运去的固定装置使用懒惰的模块存取器,因此重包装载只停留在第一次使用时,而每个公共属性在测试所期望的地方都保留了补丁。

那阿尔贡提出的其他四个优化呢?

我们发现这个模型有创意的解决方案,其中一些创造性的想法进入了框架规则,而打破变革是不可接受的。

图4:Argon晨间拉力请求中的6个优化,我们发运的2个和我们剪接的4个代码检讨。 我们保留了会话复制和懒惰的进口变化,这些变化可以干净地削减真正的间接费用,并放弃了那些依赖于脆弱状态,私人图书馆内部,或者仅合成收益的四种变化。

在代码审查期间,我们拒绝了其他四个修改:

- 一个多agent事件缓存将合成的基准测试加速了17%,然而依赖于一个薄弱的内存引用,如果Python在垃圾收集后重新使用内存地址,那么它可以返回整个会话中被扭曲的数据。

- 遥测检查读取了OpenTeleometter的追踪器执行上的私人属性,这可能会在微小的图书馆升级上无声地被打破。

- 重写 ADK 格式对话历史之前的每个模式调用使得一个核心代码路径更难读而不移动端到端的延迟。

- 工作流程事件回放的检索索引增加了状态跟踪的复杂度,这只有助于合成回放测试,而不是日常的agent运行。

这种分工是工作流程起作用的原因:agent探索,维护者减。 我们把第一和第二轮的最好部分合并成22个文件的更改,辅以17个新的测试功能。 经过整个ADK团队的审查,它主要以承诺注"Argon产生了这些变化"登陆。

为了理解承诺信息中的数字,它有助于了解ADK所谓的转弯。

当工程师输入一个提示,得到一个最后的答案后,ADK称这为引用。 一个转动是每一次agent行为时引擎盖下的一个内部步骤:调用一个工具,运行一批平行的工具呼叫,或查询MCP服务器。

您使用 agent 框架的原因是多回合制工具调用,其中数十个或数百个内部转弯发生在跑道下。

在两轮运行之前,我们写了一张Argon从未见过的独立被拒的基准测试 (bench turn.py). 在shang turn.py中,一个单会话通过转弯与即时模型和即时工具相接而成,因此时钟上每毫秒都是ADK自己的框架高通。 每个回合在返回答案之前会运行三轮四个平行工具呼叫,计时5在0,50后转出,150更早转出。 下面的每个数字是6到12跑的中位数,在每次转弯时,模型都会收到更改前后的同字节相同的请求。

我们测试了5个基准测试(图5)的合并承诺和上次释放:

图5:Argon改变之前和之后所有五个坚持者基准测试的中间ADK框架间接费用。 会话准备在长会话中会下降约40%,包导入时间会下降21%,而第一个请求的新进程时间会保持平稳,因为第一个回合会推迟模块加载。

如何为您自己的 agents 读取这些数字:

21 % 的快速导入 google.adk 立即帮助每个 ADK 用户,加速 CLI 指令,本地开发,以及测试发现。 因为当agent运行起第一个转弯时,被推迟的模块仍然加载,所以从全新的过程到第一个模型请求的时间会保持平平(3.07 s至3.09 s). 在制作服务器上,在接受直播之前发送一个取暖请求,这样第一个用户的呼叫就不会支付一次性的导入费用。

- 40%的预型机费削减适用于InMemorySession Service,该机能为InMemoryRunner,本地评价回路,CI测试套件,以及默认的Cloud Run或GKE部署,而未配置外部数据库 URI. 在一次需要几秒钟的LLM呼叫中,人类不会感觉到28毫秒或78毫秒。 然而,在158个内部工具回合中,这些副本复合体:取出削减,全部158个回合从65.6秒跑到56.1秒(近10秒纯框架高空)。 外部数据库,SQLite,Gemini平台,Firestore,和Redis会话存储从存储中去序列化而不是在内存中去深复制,因此他们的阅读时间不会在这里改变。

企业开发商和建设商可以在型号为ID gemini-4-argon的Gemini平台上通过API访问Argon,在Google AI Studio,在Google Antigravity中访问。

审查型号卡和开发商指南,以提供完整的技术规格、标志限制和迁移指示。

- ADK的 Python 快速启动

- 审查合并拉力请求和基准测试直接以google/adk-python方式承诺。

- 复制agents/技能布局的google/adk-python,如果您想要在无人看管的运行前给agents您repo的建筑规则和CI检查。

本文由 AI宝库自动抓取并翻译,版权归原作者所有;如需查看原文请点下方链接。

相关 AI 工具

相关免费羊毛

同源资讯

阅读原文(developers.googleblog.com)

标题、摘要与正文均来自该信源的公开页面,版权归原作者所有;本站自动聚合与翻译,仅作出处跳转。

← 返回 AI 资讯列表AI工具图鉴首页

返回 AI宝库首页 · 提交工具 · 商务合作 · 关于本站 · 599 款 AI 工具分类导航 · 每日 AI 热门项目与动态