Перадача навантажэння Apps Script на кераваны агент Gemini у Linux-сандбоксе.
Google Apps Script керуе агентам Gemini у сандбоксе Linux: перадае файлы ў Drive за дапамогою ggsrun, абходзіць ліміт у 50 MB, запускае Playwright, FFmpeg і esbuild.
Крыніцы: Taking Advantage of Gemini Managed Agents with Google Apps Script
Чаму трэба суставляць Apps Script з Linux-сандбоксам
Google Apps Script — гэта практычны спосаб автаматызаціі Google Workspace, але ён являецца лёгкім, обмежаным серверна-вільным сервісам без доступу на рэвэль апэрабаты. Гэта не дазволяе выконваць вельмі складныя задачы. Контроль сеткі і протакола на нізкам рэвэлі ёсць обмежаным. Не існуе браузера без вікна для атрыбутавання дынамічных сторанак, немае можлівасці запускаць натыўныя бінары для транскодавання медыя-матэрыяла чы працы з сігналамі, няма сучасных кампайляроў чы інструментаў для складання, а таксама існуюць строгі ліміты на час выканання і размер пакета дадзеных.
Gemini Managed Agents прадстаўляюць спосаб абйшчы гэтыя проблемы. Як частка API Gemini v1beta Interactions and Environments, яны дазволяюць распрацоўшчыкам ствараць удалённыя Linux-сандбоксы, якія можуць самостоятэльна выкананыць код, запускаць каманды шэлу і карыстацца пакетамі. Суставленне іх з Google Workspace CLI ужо прывабіла інтэрэс спяльнай спяльноты.
Тут опісаная архітэктура спаўнае гэтыя два элементы. Apps Script керуе стацыонарным кантэйнерам Linux з 4 vCPUs і 16 GB RAM, а таксама з Python 3.12, Node.js 22 і звычнымі менеджэрамі пакетаў (apt, npm, pip); кантэйнер перадае створаныя файлы безпосерэдна ў Google Drive за дапамогою інструмента командной лініі ggsrun. Паколькі файлы ніколі не пераводзяцца праз адпаведзь API, такія рашэнні адмовяюцца ад лімітавання пакетаў дадзеных і додатковых вітатаў, дазваляючы забезпечыць высокую працэсавую спроможнась для автаматызацыі ў воблаку.
Проблема вярнення бінарных файлаў у фармаце Base64
Падзірцем, калі сандбокс стварыць што-небудзь вялікае, напрыклад, скрыншоты высокай раздзёлкі, формы звуковых хвялей або архіваваны файл JavaScript, і гэта інфармацыя павінна паставіцца ў Drive. Выразны спосаб — вярнуць неапдэтаваныя байты як строку у фармаце Base64 у адпаведзі Gemini API і дэкодаваць іх у Apps Script. Але гэты спосаб сталкнуецца з некалькома працоўнымі трудноцямі.
UrlFetchAppу Apps Script накладае ліміт у 50 MB на размеру адпаведзей.- Сераўер для выканання коду ў Interactions API обмежвае буфер stdout, таму мнагамегабайтная строка у фармаце Base64 можа быць перэрвана ў паўпацеці.
- У Managed Agents ёсць квота у 200 000 токенав на хвіліну. Фармат Base64 збільшвае розмер бінарных дадзеных прыблізна на трохці, і пад час калькі сесій ранейшыя строкі у фармаце Base64 накаплююцца ў історыі размовы, пакуль не скінчыцца квота на вхід, і тады адразу ж з’являюцца памылкі
429 Quota Exceeded.
Наступны дыяграма паўстаўляе адрозненне межы гэтага падходу і прымітнага стрымінгу.
Лепшы спосаб — запуск інструмента ggsrun, напісанага на мове Go, пры самай сэндбокс-сераўеры, пры чым токен даступу OAuth ўводзіцца пад час выканання за дапамогою ScriptApp.getOAuthToken(). Сэндбокс затым перадае бінарныя файлы у Drive праз внутрашню сетка Google Cloud з шыроўяй прыемлівасці паўнейша вышэй 2 MB/s, такім чынам адхіляючы проблемы з памяцюю Apps Script, лімітамі размеру адпаведзей і выкарыстаннем квот на токены.
Стрымінг працюе ў обох направленнях
Працэўнае сераўернае перанесенне з воблака ў хмару таксама дапамагае пад час завантажэння. Калі большы зовнішнія наборы дадзеных, такія як зображэнні высокай раздзялкі, аудыя, відэа, файлы CSV чы JSON размерам у калькі гігабайтаў, або мадэлі машыннага навчання, павінны дасягнуць сандбокса, ўключэнне іх у запіт у фармаце Base64 чы серыяванага тэксту практычна мгновенна выкарыстоўвае весь ліміт токенав увводу, што прыводзіць да памылкі 429. За дапамогою ggsrun сандбокс сам выкачвае файл з Drive, а запіту достатнека толькі короткай інструкцыі на кшталт „завантажыць цяперашні набор дадзеных з Drive і аналізаваць яго“. Выкарыстоўванне токенав увводу зменшаецца практычна да нуля, што запобегае выкарыстоўванню всіх лімітаваных квот.
Адзін стойкі сэндбокс дапамагае ўтрамбаваць расходы ўсё больш. Адна ўстановочная процедура стварае environmentId, які можна выкарыстоўваць у праектах Apps Script, локальных рабочых станціях Node.js, скрыптамах на Python і пайплайнах CI/CD. Наборы дадзеных, корпусы, бібліятэкі чыста прадзялённыя пад /workspace/ стаюць доступнымі для кожнага кліента, таму ніхто не павінен перазавантажваць дадзеныя чыраць настройкі занова ў кожны раз. Гэта зменшае затрымкі, пропускную здатнасць сеткі і загальны навантажэння на API, а задачы можаўця выкарыстоўваць спільныя рабочыя файлы і прадзялённыя пакеты.
У наступным дыяграме паказана цэлая архітэктура, у якой Apps Script і локальныя рабочыя станціі Node.js керуюць аднім і тым жа стойкім сэндбоксам за дапамогою спільнага environmentId, выкарыстоўваючы двунаправлены стрымінг і спільныя наборы дадзеных для шырання контэнту.
Яна складаецца з чатырох частак:
- Калькольнікі кліянтаві керуюць адзінам кантэйнерам. Аплікацыі на базе воблака Apps Script выкарыстоўваюць сінхронны трыггер і дынамічны токен OAuth, тады калі локальныя рабочыя станцыі на Node.js выкарыстоўваюць стрымінг у рэальны час па протаколу SSE і аўтэнтыфікацыю праз
gcloud. - Сэндбокс зберагае спільныя наборы дадзэнняў і інструменты для стварэння, такія як Playwright, FFmpeg і esbuild, таму контэнт можа быць створаны без падзарыблення дадзэнняў.
ggsrun downloadстрымуе вялікія наборы дадзэнняў з Drive у сэндбокс, чым утрымлівае неабходнасць неглыбокага включэння дадзэнняў і захоўвае ліміт у 200 каляў TPM.ggsrun uploadперадае готавыя бінарныя файлы ў Drive з шыроцю прыёму 2 MB/s або больш, чым ускораючы працэс і ухілваючыся ад ліміту пакета ў 50 MB і абрыву стандартнага выходу.
Полны ісходны код (класы Apps Script, кліенты стрыму на Node.js, наборы тэстаў і неапдытаваныя логі выканання) знаходзіцца ў публічным рэпазітарыі праекта на GitHub.
Настройка
Паўначальнае крок — стварыць ключ API ў Google AI Studio. Ён автэнтыфікуе запыты да API Gemini v1beta Interactions and Environments. Пасля чаго трэба стварыць праект Apps Script двума спосабамі: або самастоятэльны праект праз script.google.com праз раздзел «Новы праект», або праект, прычыслены да кантэйнера, шляхом ачынення аркуша, документа чыста формы і выбору раздэла «Расшырэнні», а потым «Apps Script».
Копіюйце два файлы з рэпазітарыю ў рэдагувальнік:
ManagedAgentSandboxClient.js— галоўны клас кліента. Ён керуе жыццёвым цыклам сандбокса і дынамічнымі зменнымі сераўыса, зберагае даныя сесіі ўPropertiesServiceі застосоўвае разумныя паўтарыцці падзеяў, калі пракрадаецца код 429.tests.js— галоўны набор тэстаў. Ён аблівае працэс стварэння сандбокса, перакананне інструментаў, апрацоўку медыя-матэрыялаў, скрапінг веб-сторон і крэтырыя канцэртнасці.
Спачатку ачынайце «Наладжэнні праекта», пасля — «Атрыбуты скрыпта», і дадзіце атрыбут пад назвай GEMINI_API_KEY, у яком будзе зберагацца ключ. Нарэшце, пераканаецеся, што маніфест (appsscript.json) мае неабяжлівыя правыя дыячыя OAuth. Дыячыя https://www.googleapis.com/auth/script.external_request неабяжліва для вызоў UrlFetchApp, а дыячыя https://www.googleapis.com/auth/drive адпавядае за стварэнне папак-пазначэнняў і аплоад артыфактав. Код, які выкарыстоўвае існуючыя папакі без DriveApp.createFolder(), можа працаваць з дыячыяй https://www.googleapis.com/auth/drive.file. Логі выканання кожнага тэста знаходзяцца ў файле gas-src/execution-logs.md рэпазітарыя.
Наладжэнне спяльнай сандбокса
Выкананне provisionSharedSandbox() запускае новы рэмтны контэйнер Linux, інсталюе інструменты CLI і неабяцковыя компаненты, насталяе шляхі до цэльвога Drive і зберагае атрыбут environmentId, які быў створаны, у PropertiesService.
Інфаграфіка паказвае чатыры крокі. У пачатку Drive ствараецца папка-пазначэнне пад назвай ManagedAgent_Artifacts_YYYYMMDD. Пасля кантэйнер з 4 vCPU і 16 GB запускае ggsrun, ffmpeg, sox, jq, typescript, esbuild і Playwright з Chromium за дапамою запросу на ініцыяцыю. Далей сандбокс пераканальвае встановленыя бінары і паведамляе READY. У падзеўле environmentId зберагаецца пад SHARED_SANDBOX_SESSION, ўпэўніваючы такім чынам, што пазнейшыя тэсты і іншыя кліенты зможаць яго перызнаць. Пасля гэтага вызов testListSandboxes() запытае API Environments, каб паўнастацьіць, што сандбокс актыўны, і вярнуе яго метаданы.
Тэст 1: спецыяльныя заголовкі, якія Apps Script перазапісвае
Першыя тэсты паказваюць, што UrlFetchApp не можа гэта зрабіць. Apps Script автаматычна заменяе спецыяльны заголовак User-Agent на строку ідэнтыфікатора проксі Google, тады калі сандбокс захоўвае любы заголовак, які вы задаўце, адтак як ён адправляе запыткі праз чыстыя POSIX сокеты і натыўны curl.
Дыяграма паказвае рэзультаты запытку, якая надаецца з User-Agent: sample user agent да адрэсы httpbin.org/anything. У частцы Apps Script правілы праксі платформы зменяюць гэты загалоўк. У частцы sandbox прыемнік curl застаеўшыся з тым самым тэкстам. Пасля чаго внутршній скрыпт на Python пораўнюе атрыбуты JSON, якія былі адразу, і выдрукуе матрыцу парадактавання. Конкрэтна, Apps Script адправляе запытку GET з адзінаковым загалоўкам, sandbox адправляе тую ж запытку з curl, і пораўненне паказвае, што Apps Script заменіў значэнне на Mozilla/5.0 (compatible; Google-Apps-Script; beanserver; ...), тады калі sandbox застаўўся з тым самым sample user agent.
Тэст 2: автаналізацыя ў Drive за межамі sandbox
Эты тэст перакантрацуе аутантыкацыю Drive і прымытны доступ праз ggsrun па шляху введэння новага токена OAuth з ScriptApp.getOAuthToken() у выкананне таго крока.
У першым кроце Apps Script выкарыстоўвае токен і вводзіць яго як зменную сераўіса GGSRUN_AT, чым усунуліся рызыкі заканчэння тэрміну дзейнасці токена за адну гадзіну. У другім кроце сэндбокс стварае файл па верыфікацыі 00_ggsrun_verification.txt у катэгорыі /workspace/test2/ і аплоўвае яго за дапамогою ggsrun upload у рэжыме без блокавання з перазапісваў (з параметрамі --nc --cm OverwriteIfNewer -j). У трэцім кроце ggsrun searchfiles запытае цэльную папку і вярнуе структураваныя метаданы, якія паўтараюць наявнасць усіх дзевяці файлаў. Весь цыкл стварэння, аплоўвання і верыфікацыі зайняў 12,1 секунды, і жадны чутлівы токен не застаўся між сесіямі.
Тэст 3: абсалютна парсінгаванне з Playwright
Далей, аўтаматызаваная абсалютная сесія Chromium у сандбоксе парсіць дынамічны контэнт, выкананы на JavaScript, і фіксуе скрыншоты для розных размараў відвора.
Скрыпт Node.js Playwright ачывае сайт з цітатамі, які рэндаруецца на JavaScript (quotes.toscrape.com/js/), фіксуее скрыншоты всіяго староніцы ў размерах дэсктопа (1280x800) і ў рэжыме імітаціі iPhone (375x812), пасля чаго нажымае элемент кніжкі навігацыі, фіксуее скрыншот другай староніцы і выкарыстоўвае яго, каб выкарыстаць цітаты, у файле 02_Page2_Quotes.json. Размеры скрыншотаў становілі або 92,5 КБ для дэсктопа, 51,6 КБ для мобайля і 171,9 КБ для другай староніцы, плюс 4,1 КБ для файла JSON; ў суме за чатыры файлы — апошнія 320 КБ. Адзін каманды ggsrun upload апрацаваў усе тры файлы PNG і набор дадзеных у фармаце JSON і перадаў іх у Drive без жадной канвертазіі у фармат Base64, а весь працэс зайняў 20,4 секунды. Гэта прыклад рэндаравання з боку кліента, якое Apps Script не можа аналізаваць натыўна.
Тэст 4: сінтэза адгуку з FFmpeg і SoX
Чэтыртыя тэст перадае працэю з натыўным апрацоўваннем цыфровых сігналаў у «песочніцы», ствараючы мнагатонаўскі акорд за дапамогою FFmpeg і SoX.
Тры генераторы сінусоўых хвялей на частотах 440 Гц (A4), 554,37 Гц (C#5) і 659,25 Гц (E5) сумешчаюцца за дапамогою фільтра ffmpeg amix і ствараюць трывалым у тры секунды MP3-файл мажорнага акорда розмерам 73,4 КБ. Пасля чаго ffprobe выкарыстоўваецца для выявлення метаданых стрыму і ўтварэння файла 03_Audio_Analysis.json розмерам 1,8 КБ. Команда ggsrun upload адправляе файл 03_Chord_Major.mp3 і файл JSON прымусова ў Drive. Працэс сінтэзы, выявлення метаданых і адправкі зайняў 9,1 секунды.
Тэст 5: Аналіз TypeScript і пакетаванне з esbuild
Этот тэст паказвае, як сучасныя інструменты для пакетавання JavaScript і TypeScript працуюць унутрь «песочніцы».
Два комплекта інструментаў працуюць з модулем TypeScript matrix.ts, які выявляе гэнерычныя класы і інтэрфейсы і знаходзіцца ў каталозе /workspace/test5/. У першай гілцы скрыпт Node.js выкарыстоўвае офіцыяльны API компілятора TypeScript для аналізу дрэва абстрактнай сынтаксісу і экспортуе схемы інтэрфейсаў і методаў у файл 04_TypeScript_AST.json, які мае розмер толькі 152 байты. У другай гілцы esbuild агрупавае і спрошчвае модуль у самастоятэльны файл IIFE 04_Matrix_Bundle.iife.js розмерам 1,2 КБ, пры чым час складання становіць толькі 13 мілісекунд. Пасля чаго команда ggsrun upload адправіла оба выходныя файлы у Drive, і загальны час адработкі складаў 10,0 секунд.
Тэст 6: прымытны аплод на базе Base64 праз Apps Script
У цым тэсце 10 000-байтовы бінарны файл пераносіцца з сандбокса ў Drive двума разнымі спосабамі.
У падчынні A сандбокс стварае 10 КБ бінарнага файла з /dev/urandom і перэдае яго ў Drive за дапамою ggsrun за адну партыю взаімадзеі (з параметрам freshInteraction: true). У падчынні B сандбокс кодуе тыя ж байты у фармаце Base64 і вяртае іх у тэкстовай адпаведзі API, а Apps Script дэкадуе гэты строк і зберагае файл у Drive. Падчынні A завершылася за 16,20 секунды з шыроцю прыемлень 0,60 КБ/с і не выкарыстоўвала рэсурсы CPU Apps Script. Падчынні B зайняла 32,13 секунды з шыроцю прыемлень 0,30 КБ/с плюс 1,23 секунды на выкарыстоўванне CPU Apps Script, таму падчынні A было у 1,98 раза быстрэй. Ён таксама запобегае прыблізна 33-процэнтнаму збільшэнню розмеру файла пад час кодавання у Base64 і выкарыстанню всіх токенав у сесіях з калькамі. Запісаны справаздача выглядае так.
================================================================================
PERFORMANCE BENCHMARK REPORT: 10,000 BYTES FILE TRANSFER TO GOOGLE DRIVE
================================================================================
| Metric | Approach A: Direct ggsrun Upload | Approach B: Base64 via Gemini API -> GAS |
| :--------------------------- | :------------------------------- | :--------------------------------------- |
| Transfer Method | Direct Sandbox-to-Drive (Go CLI) | Base64 Stream -> GAS -> Drive |
| Drive File Name | benchmark_10kb_ggsrun.bin | benchmark_10kb_gas.bin |
| Verified File Size | 10,000 bytes (9.77 KB) | 10,000 bytes (9.77 KB) |
| API Turns Required | 1 Turn (Direct Offload) | 1 Turn (Base64 Retrieval) |
| Local GAS Processing Time | 0.00 s (Zero CPU overhead) | 1.23 s (Base64 Decode & Blob Creation) |
| Total End-to-End Duration | 16.20 s | 32.13 s |
| Effective Throughput | 0.60 KB/s | 0.30 KB/s |
| Performance Multiplier | 1.98x FASTER | Baseline (Higher Latency & Token Usage) |
================================================================================
Стрымінг праз ggsrun быў у 1,98 раза быстрэйшы, усунуў усі вітраты CPU і памяці, якія спрычыняў Apps Script пад час дэкадавання, і не спрацоўваў ніякіх лімітаванняў па квотам на токены размовы. Для пакетаў велікага розміру гэты прымытны шлях дапамагае ухіліцца ад памылак 429 Quota Exceeded.
Кераванне тым самым сэндбоксам з локальнай рабочай станцыі
Ёсць мета паказаць, што той самы постаянны сэндбокс Linux можна кераваць як з Apps Script, так і з ноутбука. Для гэтага на базе SDK @google/genai быў створэны кліент на Node.js з падтрымкай стрыймінгу Server-Sent Events. Apps Script працюе сінхронна і блокуючым чынам, збіраючы адпаведныя запісы напрыкінцы HTTP-запіту, тады калі локальны варыянт працюе, ён дае распрацоўшчыкам кілька пераваг, якіх немае Apps Script.
- Рэальны адзор на ход запуску. Этапы размышлення (
thought), каманды шэлу (code_execution_call), даныя stdout і stderr з сандкаса (code_execution_result) а таксама тэкст модэлю (model_output) трансляюцца ў тэрмінал у момент ўзнікнення, з вікорыстаннем кольцаў ANSI. - Гібрыдны падход да разработкі. Запросы і ланцугі інструментаў можна протатапаваць, дыбагаваць і налаштаваць локальна з рэальным адзорам, а пасля пераводзіць у автаматызаваныя трыгеры Apps Script, якія працуюць без чалавека.
- Простая раздзелка сандкаса. Уведзенне ідэнтыфікатора, створанага пад час налаштавання Apps Script, у парадакт
ENVIRONMENT_IDу локальным файле.envпрыўязвае кліента да існуючага контэйнера, у яком знаходзяцца ўсе інсталаваныя пакеты, скомпіляваныя бінары і файлы рабочай зоны, без неабяжнай перынсталляцыі.
gcloud auth print-access-token і вводзіць іх у GGSRUN_AT, тады завантажэнні безпосерэдна ў Drive працуюць так сама, як і ў Apps Script, без неабяжнай рукаводжаннай копіюванням пароляў.Заўядзенне локальных тэстаў выконваецца за чатыры крокі.
- Клонаваеце рэпазітарыю і запускайце
npm installунутрыlocal-node.js-src. - Копіюйце
.env.exampleяк.envі запалняйце тры значэнні: ваш ключ API якGEMINI_API_KEY, ідэнтыфікатор сандбокса з довгым тымчасам жыцця якENVIRONMENT_ID, а таксама папку Drive, у якую трэба запісаць даныя, якTARGET_FOLDER_ID. - Запускайце
npm testабо адзін тэст за дапамогайnpm run test:1адtest:6і старайцеся спазірваць, як агент працуе ў рэальны час. - Калі все завершылася, запускайце
npm run test:teardown, ўбачыце, як будзе адчынена удалённая сандбокс і звалічаны рэсурсы воблака.
Полныя необработаныя транскрыпцыі разам з рэзультатамі працы ў рэальным часе зберагаюцца ў файле local-node.js-src/execution-logs.md рэпазітарыя, і ў яных паказаны тыя ж функцыональныя рэзультаты, што і пад час запуску Apps Script.
Шаблоны API для кераваных агентаў
Наведзеныя ніжэй шаблоны стосуюцца распашчых спосабоў работы з API Gemini v1beta Interactions and Environments. Кожны з іх адправляе запыт POST да таго ж базовага канцэнтра.
POST https://generativelanguage.googleapis.com/v1beta/interactions?key=${API_KEY}
Content-Type: application/json
У сцэнарыі 1 адна стойкая сандбокс-сераўерная асяроддзе дзеўаеся многам кліентам. Аддалёжную срэду трэба стварыць аднойчы, установіўшы environment.type на "remote", зафіксаваць environment_id, які будзе атрыманы, і надаць яго як звычную строку у пасляўных запытках з Apps Script, Node.js, Python чыяж CI/CD задача.
{
"agent": "antigravity-preview-05-2026",
"input": "Run task in shared container...",
"environment": "environments/env-12345"
}
Сцэнарый 2 — гэта абсалютна самастоятэльная асяроддзе для кожнага запуску. Калі задача патрабуе абсалютна новую срэду Linux, у кожнай вызове задаюце environment.type на значэнне "remote".
{
"agent": "antigravity-preview-05-2026",
"input": "Execute client-specific isolated task...",
"environment": {
"type": "remote"
}
}
Сцэнарый 3 парадзірае кантэкст размовы між крокамі. Неабяжна ўключыць previous_interaction_id калі агент павінен памятаць пакульшыя выважанні, зменныя або рэзультаты команд.
{
"agent": "antigravity-preview-05-2026",
"input": "Based on the previous output, proceed to step 2...",
"environment": "environments/env-12345",
"previous_interaction_id": "interaction-prev-67890"
}
Сцэнарый 4 занова выкарыстоўвае «пісочніцу» з чыстым кантэкстам за дапамогою опцыі freshInteraction. Неабяжна задаць існуючы environment_id і не указваць previous_interaction_id. Усі файлы і установленыя інструменты ў кантэйнеры застаюцца, а історыя размовы скасоўваецца, тады як колькасць токенав зменшаецца да нуля, што запобегае перапылэнню ліміту швайна TPM.
{
"agent": "antigravity-preview-05-2026",
"input": "Execute a completely new task in the existing sandbox...",
"environment": "environments/env-12345"
}
Порэванаўленне за мгновеннае адзірванне
Матрыца падсумка размешчае разныя падходы пашылкамі адна пры другай.
Што гэта дае
Спалучэнне Apps Script з Gemini Managed Agents дазволяе пераканацца звычныя меры безсервернага рантайму. Пастойчы кранявы сэндбокс, а таксама стрымінг без перэрываў межа хмарнага сховішча і сэндбокса ў обох направленнях, дазволяюць адрабатваць завады, якія Apps Script сама па сабе не можа адрабатваць, і адхіляюць ліміты пакетаў API і квоты на токены для дыялогаў.
- Ліміты Apps Script перакананы. Завады, якім патрэбна натыўная асяроддзе Linux, такія як скрапінг браузера без адображэння екрана з аднойчынкай Playwright, сінтэз аудыю з FFmpeg і компіляцыя TypeScript з
esbuild, цяпер можна запускаць з Apps Script. - АІ-расумаванне спаўнае з выкананнем у Linux. У працоўніцы Gemini расумаванне не выканана за дапамогою фіксаваных зовнішніх каманд, а ўзаўсёды супаўнае з рэальным шэлам; такім чынам каманды ствараюцца на месцы, код выкананы пад час працы, а агент можа сам сабе парадкаваць пад час складных рабочых процэсаў.
- Стрымінг у обох направленнях дапамагае захаваць токены і пакет даных. Завантажэнне артыфактав і таксама запошчанне вялікіх набораў дадзеных з Drive у сандбокс ухілваецца ад неабходнасці включаць даныя ў запіты і перакладвання ў фармат Base64, што дапамагае зменшыць колькасць токанаў увводу і выходу, а таксама ухілваецца ад ліміту 50 МБ і квоты 200 000 TPM.
- Спяльныя сандбоксы зніжуюць вартасці. Размешчэнне спяльных набораў дадзеных і інструментаў у спяльной файловай сістэме кантэйнераў усуняе павтарныя завантажэння і налагоджэння для кожнага задачы, чым зменшаецца затрымка і вікорыстоўваны пропускна спроможнасць.
- Рэзультаты тэста падтрымліваюць гэта. Прымытны стрымінг дадзеных з воблака ў хмару праз CLI быў у 1,98 раза быстрэйшы, чым запрашэнне дадзеных у фармаце Base64 праз API, без неабходнасці дэкодавання на процэсары і без вікорыстання локальной памяці ў Apps Script.