JavaScript, HTML, CSS e... !
0 commenti

Una sandbox Linux per superare i limiti di Apps Script

Gemini Managed Agents per Apps Script

Google Apps Script è un ottimo strumento per automatizzare Google Workspace, ma ha dei limiti noti: nessun accesso a livello di sistema operativo, quota di 50 MB sulle risposte di UrlFetchApp, tempi di esecuzione limitati, nessun binario nativo per elaborazione media o rendering di pagine dinamiche.

Google sta sperimentando (in preview) i Gemini Managed Agents, sandbox Linux gestite raggiungibili tramite la Interactions API di Gemini. In pratica, con una singola chiamata API si ottiene un container Linux temporaneo (o persistente, se si riusa lo stesso environment_id) con Python, Node.js e i normali package manager, dove un agente AI può eseguire comandi shell in autonomia.

 



Gemini Managed Agents

Fig. 1 - Gemini Managed Agents


Cosa propone Tanaike

Il Google Developer Expert Kanshi Tanaike ha pubblicato un articolo che mostra come collegare Apps Script a queste sandbox per delegare compiti impossibili in GAS puro:

  • screenshot di pagine con JavaScript dinamico, tramite Playwright headless;
  • sintesi ed elaborazione audio con FFmpeg;
  • compilazione TypeScript con esbuild;
  • invio di header HTTP personalizzati (in GAS, UrlFetchApp sovrascrive lo User-Agent; dentro la sandbox no).

Il punto centrale dell'articolo è però un altro: invece di far transitare i file generati nella sandbox attraverso l'API Gemini fino a GAS (con conseguente conversione Base64, overhead di CPU e rischio di superare la quota di 200.000 token al minuto), Tanaike usa un suo tool CLI, ggsrun, per caricare i file direttamente dalla sandbox a Google Drive, bypassando Apps Script come tramite per i dati binari. Nei suoi benchmark, questo approccio risulta circa il doppio più veloce del passaggio via Base64.

Un frammento di codice per capire l'impostazione

Questo è l'esempio minimo, tratto dalla documentazione ufficiale, per creare un'interazione con un agente gestito e una sandbox:

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Scatta uno screenshot di example.com e salvalo come screenshot.png",
    environment="remote",  # crea una nuova sandbox Linux
)

print(interaction.output_text)
print(interaction.environment_id)  # da riusare per riconnettersi alla stessa sandbox

Da Apps Script, la chiamata avviene con UrlFetchApp verso l'endpoint delle Interactions, passando l'environment_id per riusare la stessa sandbox tra un'esecuzione e l'altra. Il dettaglio di come Tanaike integra ggsrun per il caricamento diretto su Drive è nel suo repository.

Una nota di cautela

Si tratta di una funzionalità in preview: schema dell'API, agente disponibile e condizioni possono cambiare senza preavviso. Il tool ggsrun inoltre non è un prodotto ufficiale Google, ma un CLI di terze parti sviluppato dallo stesso Tanaike. Prima di usarlo in un progetto reale conviene testarlo con calma in un ambiente non critico.

Per approfondire

L'articolo originale di Tanaike, con tutti i test, i benchmark e il codice completo, è disponibile qui: Taking Advantage of Gemini Managed Agents with Google Apps Script

Tags

Non ci sono tag per questo elemento
Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

scrivi un commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]https://www.appsscript.it[/url] se devi riferirti ad un indirizzo web