Vai al contenuto principale

Managed Agents nell'API Gemini: un tutorial pratico

I Managed Agents di Google ti permettono di distribuire agenti autonomi con una singola chiamata API. Scopri come crearne uno che analizzi dati, esegua Python e generi grafici.
Aggiornato 22 mag 2026  · 12 min leggi

All'inizio di questa settimana, alla conferenza per sviluppatori Google I/O 2026, Google ha presentato i Gemini Managed agents, uno strumento che semplifica la distribuzione di agenti AI autonomi, consentendo agli sviluppatori di avviare agenti in grado di ragionare, pianificare, navigare sul web ed eseguire codice in un ambiente Linux isolato e temporaneo con una singola chiamata API.

In questo tutorial, scoprirai cosa sono i Gemini Managed Agents, come funzionano e come usare la loro API per creare un agente data analyst in grado di analizzare qualsiasi tipo di dato.

Nuovo all'AI agentica? Inizia con il nostro corso Introduzione agli AI Agents

Cosa sono i Managed Agents nell'API Gemini?

Pensa a un agente come a un lavoratore autonomo con accesso al proprio computer isolato. Quando gli assegni un compito, come analizzare un dataset, l'agente scrive ed esegue in autonomia il codice necessario per portarlo a termine. Una volta concluso il processo, puoi accedere allo spazio di lavoro dell'agente per recuperare i risultati.

I Managed Agents fanno più che scrivere codice; possono interagire con Internet, gestire file e utilizzare un'ampia gamma di strumenti per semplificare l'esecuzione dei task.

Questi agenti sono alimentati dall'agente Antigravity di Google, un harness per agenti generali per i modelli Gemini. 

Fornisce una suite preconfigurata di strumenti operativi direttamente nell'ambiente di runtime, eliminando la necessità di configurazioni manuali. Include un runtime sandbox per l'esecuzione di codice in Bash, Python e Node.js, permettendo all'agente di scrivere, effettuare il debug ed eseguire codice in locale. 

Offre inoltre File Management tramite un filesystem persistente all'interno del container remoto, dove l'agente può leggere, scrivere, modificare e cercare file su turni sequenziali. 

Infine, l'integrazione Web fornisce accesso diretto a Google Search per il grounding su informazioni in tempo reale, insieme a utility per recuperare e analizzare dati online non strutturati.

Caso d'uso di esempio

Immagina di gestire una caffetteria e voler analizzare le vendite. Possiamo configurare un managed agent per accedere al nostro database di vendite. 

Poi, ogni volta che ci serve un report, ci basta chiedere in inglese semplice di analizzare i dati. L'agente scrive ed esegue autonomamente il codice Python, genera un report di sintesi e lo salva nel nostro filesystem per la revisione.

Un diagramma che illustra un caso d'uso di managed agent per una caffetteria. L'utente chiede all'Agente qual è il best seller della settimana. L'agente carica le vendite, crea uno script Python e restituisce il grafico all'utente.

Quanto costano i Managed Agents nell'API Gemini?

Il prezzo dei Gemini Managed Agents dipende da diversi componenti, il che rende difficile fornire stime precise. Il costo è determinato da quattro fattori principali:

  1. Uso del modello (token): Veniamo addebitati in base al numero di token in input e in output elaborati dal modello Gemini sottostante. Nota che includono i token generati nei risultati intermedi. Ad esempio, se l'agente genera uno script Python per creare un report, anche i token necessari per quello script vengono fatturati.
  2. Costi di infrastruttura e piattaforma: Gli agenti gestiti vengono eseguiti nell'ambiente integrato di Google, che comporta costi di servizio per l'uso degli strumenti della piattaforma (come Vertex AI Agent Builder) per gestire e distribuire gli agenti.
  3. Context caching: Se gli agenti riutilizzano spesso gli stessi dati, i managed agents possono sfruttare il context caching. In genere offre una significativa riduzione dei costi rispetto alla tariffazione standard per token.
  4. Grounding: Se l'agente usa servizi di grounding di Google come Google Search o Google Maps, questi vengono fatturati separatamente, spesso con una quota di richieste gratuite seguita da un costo per 1.000 query (tipicamente circa $14/1.000 query). 

In questo tutorial, costruiremo un agente sopra l'agente antigravity-preview-05-2026 che è alimentato da Gemini 3.5 Flash. I costi per token di Gemini 3.5 Flash sono i seguenti:

Tabella che mostra i costi per token di Gemini 3.5 Flash per milione di token. Input di testo $1,50, output di testo $9,00 e Context Cache Hit (input) $0,15.

Come creare Managed Agents nell'API Gemini

In questa guida, costruiremo un managed agent usando l'API Gemini e Python. Dato che i managed agents sono una novità attualmente in beta, tieni presente che alcuni dettagli di implementazione potrebbero evolvere.

Tutto il codice che scriveremo in questo tutorial è conservato in questo repository GitHub, che useremo anche per condividere i dati con l'agente data analyst.

Configurazione dell'API

Per creare una chiave AI, vai su Google AI Studio e fai clic su “Create API Key” in alto a destra.

Screenshot del pulsante di creazione della API key in Google AI Studio.

Le API key devono essere associate a un progetto Google Cloud. Possiamo selezionarne uno esistente o crearne uno nuovo. Qui, ne ho creato uno chiamato gemini-managed-agents.

Screenshot dell'interfaccia per creare una nuova API key.

Dopo aver creato la chiave, la copiamo. Poi creiamo un file chiamato .env nella cartella dove creeremo i nostri agenti e la incolliamo con il seguente formato:

GEMINI_API_KEY=<paste_your_api_key_here>

Prima di chiudere Google AI Studio, dobbiamo configurare la fatturazione sulla API key appena creata. Senza questo, le nostre richieste verranno negate perché Google non potrà addebitarci i costi. Per impostare la fatturazione, fai clic sul pulsante “Set up billing”.

Screenshot dell'interfaccia di Google AI Studio che mostra come impostare la fatturazione.

Configurazione dell'ambiente Python

Useremo Anaconda per configurare un ambiente Python per questo progetto. Per creare un ambiente con Anaconda, usa il comando:

conda create --name gemini_agents python=3.12 -y

Questo crea un ambiente chiamato gemini_agents che usa Python versione 3.10. Il parametro -y è semplicemente una scorciatoia per rispondere “sì” a tutte le domande durante la creazione dell'ambiente.

Successivamente, dobbiamo attivarlo:

conda activate gemini_agents

Infine, dobbiamo installare le dipendenze necessarie. Ecco come:

pip install google-genai requests python-dotenv

Creare un'interazione di base con un managed agent

Ora abbiamo tutto pronto per eseguire il nostro primo agente. Questo primo agente non farà molto. Installerà semplicemente matplotlib e riporterà la versione installata.

Ecco una spiegazione passo passo su come possiamo interagire con un managed agent (il codice completo si trova nello script simple_interaction.py nel repository):

Per prima cosa, importiamo i pacchetti necessari e carichiamo la API key dal file .env che abbiamo creato prima:

from dotenv import load_dotenv
from google import genai

# Load secure environment variables
load_dotenv()

Poi inizializziamo il client Gemini e creiamo un'interazione con l'agente base, attualmente chiamato antigravity-preview-05-2026, chiedendogli di installare matplotlib:

# Initialize the GenAI Client
client = genai.Client()

# Create a basic interaction with a managed agent
interaction = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Install the matplotlib package, verify its version, and report back.",
    environment="remote"
)

Infine, otteniamo l'output dall'agente ispezionando le proprietà status, environment_id e output_text:

# Output the status of the agent
print(f"Status: {interaction.status}")
print(f"Environment ID: {interaction.environment_id}")
print(f"Output:\n{interaction.output_text}")

Ecco il risultato:

Status: completed
Environment ID: 104ad7f8-32e0-4b8d-b344-24d92eb74eb6
Output:
I have successfully installed the matplotlib package in the sandbox environment and verified its installation.

Here are the details:
- **Installation Command:** python3 -m pip install --break-system-packages matplotlib
- **Installed Version:** 3.10.9

Stati del ciclo di vita della sandbox

Nell'esempio sopra, abbiamo mostrato l'identificatore dell'ambiente dell'interazione con il managed agent:

Environment ID: 104ad7f8-32e0-4b8d-b344-24d92eb74eb6

Questo valore è importante perché rappresenta l'identificatore dell'ambiente in cui l'agente è stato eseguito. Le interazioni dell'agente sono archiviate in un ambiente effimero che viene conservato fino a 7 giorni dall'ultima attività prima di essere eliminato.

Diagramma che mostra gli stati del ciclo di vita della sandbox: Created/Active, Idle, Offline e Deleted

Il diagramma qui sotto illustra il ciclo di vita della sandbox in cui l'agente viene eseguito durante un'interazione.

Finché l'ambiente non viene eliminato, possiamo accedervi ed effettuare ulteriori interazioni usando l'identificatore dell'ambiente.

Eseguire più interazioni

In questo esempio, mostriamo come eseguire più interazioni. Il codice completo è disponibile nel file multiple_interactions.py dal repository.

# First interaction
inter1 = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Write a Python script sum.py that adds all integers from 1 to 100.",
    environment="remote"
)

# Second interaction
inter2 = client.interactions.create(
    agent="antigravity-preview-05-2026",
    previous_interaction_id=inter1.id, # Passes the conversation history
    environment=inter1.environment_id, # Keeps the same filesystem state
    input="Execute 'sum.py' using Python and display the standard output."
)

# Output the status of the agent
print(f"Output:\n{inter2.output_text}")

Nota che nella seconda interazione abbiamo aggiunto due parametri:

  • previous_interaction_id: L'identificatore della precedente interazione, così l'agente è a conoscenza della cronologia della conversazione.

  • environment: L'identificatore dell'ambiente in modo che l'agente sappia in quale sandbox deve eseguire.

Condivisione di file con un agente

Non possiamo creare un agente data analyst se non possiamo dargli accesso ai dati. Ci sono diversi modi per condividere i dati con un agente:

  • Dati inline: Caricare il contenuto del file in una stringa e inviarlo durante l'interazione.
  • File ospitato: Ospitare i dati su un URL pubblico e fornire l'URL per permettere all'agente di scaricarli.
  • Repository GitHub: Possiamo fornire all'agente l'URL di un repository GitHub pubblico.
  • Google Cloud Bucket: Ospitare un file in un bucket di Google Cloud Storage e configurare il progetto in modo che l'agente abbia accesso a quel bucket.

Non esploreremo tutte queste soluzioni in questo articolo. Mostreremo come inviare dati inline caricando un file locale in una stringa e come condividere un repository GitHub. La prima è ideale per condividere piccoli file locali (fino a 1 MB per file, con un limite totale di 2 MB su tutti i file), mentre la seconda è più adatta per file più grandi, come i dataset.

Condivisione di dati inline

Ecco un esempio di come fornire dati inline (codice completo in inline_example.py):

inter = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Add all the numbers in the /workspace/numbers.txt file.",
    environment={
        "type": "remote",
        "sources": [
            {
                "type": "inline",
                # The file where to store the data in the agent environment
                "target": "/workspace/numbers.txt",
                # Assumes that the file data/numbers.txt exists
                "content": utils.read_text_file("data/numbers.txt")
            }
        ]
    }
)

I dati vengono forniti usando il parametro sources nella configurazione dell'environment. Il target definisce la posizione in cui i dati verranno archiviati nell'ambiente dell'agente. I file dovrebbero essere posizionati nella cartella workspace. In questo caso, sarà un file chiamato number.txt

Il parametro content fornisce il contenuto del file. Per le sorgenti inline, è semplicemente una stringa, che in questo caso leggiamo usando la funzione read_text_file() nel file utils.py.

Condivisione di un repository GitHub

Per condividere file più grandi, possiamo fornire l'URL di un repository GitHub. Ecco come:

inter = client.interactions.create(
    agent="antigravity-preview-05-2026",
    input="Add all the numbers in the /workspace/repository/numbers.txt file.",
    environment={
        "type": "remote",
        "sources": [
            {
                "type": "repository",
                "source": "https://github.com/fran-aubry/gemini-agents-tutorial",
                "target": "/workspace/repository"
            }
        ]
    }
)

Nell'esempio sopra, il repository con URL https://github.com/fran-aubry/gemini-agents-tutorial viene clonato in una cartella chiamata repository, all'interno dello workspace dell'agente.

Scaricare l'ambiente di un agente

Abbiamo già visto come interagire con i managed agents e come fornire file a questi agenti. Per creare il nostro agente data analyst, l'ultima cosa che dobbiamo imparare è come scaricare l'ambiente di un agente. Questo è necessario per poter accedere ai grafici e ai risultati generati dall'agente.

Ogni workspace può essere scaricato all'URL:

https://generativelanguage.googleapis.com/v1beta/files/environment-<env_id>:download

Dove <env_id> va sostituito con l'identificatore dell'ambiente che vogliamo scaricare.

Ecco una funzione Python che usa il pacchetto requests per scaricare un pacchetto (questa funzione fa parte del file utils.py che abbiamo creato):

def download_env(env_id, path="environments"):
    download_url = f"https://generativelanguage.googleapis.com/v1beta/files/environment-{env_id}:download"
    try:
        request_params = {"alt": "media"}  # Retrieves raw media binary
        request_headers = {"x-goog-api-key": os.environ.get("GEMINI_API_KEY")}
        # Download the environment
        print(f"Downloading environment: {env_id}")
        response = requests.get(
            download_url,
            params=request_params,
            headers=request_headers,
            allow_redirects=True
        )
        response.raise_for_status()
        # Save the compressed workspace archive locally
        archive_name = f"{env_id}.tar"
        output_path = os.path.join(path, archive_name)
        with open(output_path, "wb") as archive_file:
            archive_file.write(response.content)
        print(f"Successfully downloaded workspace snapshot archive: {output_path}")     
    except requests.exceptions.RequestException as error:
        print(f"Failed to download sandbox workspace via HTTP request: {error}")
    except tarfile.TarError as archive_error:
        print(f"Failed to unpack download tarball: {archive_error}")

Creare un agente Data Analyst

In questa sezione, impariamo a creare un agente che esegue analisi dei dati. Per testare l'agente, useremo questo dataset di Netflix preso da Kaggle, che è anche archiviato nella cartella data del nostro repository.

In tutti gli esempi precedenti abbiamo sempre interagito con l'agente base: antigravity-preview-05-2026. Qui creeremo prima un agente usando la funzione client.agents.create().

Creare un agente

Ecco come possiamo creare un agente:

agent = client.agents.create(
            id=”data-analyst”,
            base_agent="antigravity-preview-05-2026",
            base_environment={
                "type": "remote",
                "sources": [
                    {
                        "type": "inline", 
                        "target": ".agents/AGENTS.md", 
                        "content": read_text_file(".agents/AGENTS.md")
                    },
                    # Explicitly load the skill
                    {
                        "type": "inline", 
                        "target": ".agents/skills/csv-aggregator/SKILL.md", 
                        "content": read_text_file(".agents/skills/csv-aggregator/SKILL.md")
                    },	
                    {
                        "type": "repository",
                        "source": "https://github.com/fran-aubry/gemini-agents-tutorial",
                        "target": "/workspace/repository"
                    }
                ]
            }

Vediamo nel dettaglio ciascun parametro:

  • id: Definisce il nome dell'agente, in questo caso data-analyst. Useremo questo identificatore nel metodo client.interactions.create() invece di antigravity-preview-05-2026 che abbiamo usato finora. 

  • base_agent: L'agente da usare come base. Significa che stiamo costruendo un agente sopra l'agente antigravity-preview-05-2026.

  • base_environment: Come prima, ci permette di fornire file all'agente. Abbiamo fornito due file speciali: .agents/AGENTS.md e .agents/skills/csv-aggregator/SKILL.md. Questi file sono dove abbiamo definito il comportamento dell'agente. Il file AGENTS.md definisce il comportamento generale dell'agente, mentre il SKILL.md definisce una particolare skill per l'agente. Abbiamo anche fornito al agente il repository in modo che abbia accesso ai file di dati che vogliamo analizzare.

Capire AGENTS.md

Questo file può essere considerato come un system prompt. Funziona come il nostro manuale d'istruzioni principale per l'agente. Dovremmo usarlo per definire chiaramente il ruolo specifico dell'agente, i suoi obiettivi principali e i confini che deve rispettare mentre lavora. 

È anche il posto migliore per elencare eventuali strumenti o fonti di dati specifici a cui l'agente può accedere e per fornire esempi di come vogliamo che comunichi o gestisca i task. 

Mantenendo queste istruzioni semplici e ben organizzate all'interno del file, aiutiamo l'agente a capire esattamente come comportarsi e quali risultati ci aspettiamo che fornisca.

La posizione del file nell'ambiente dell'agente deve essere .agents/AGENTS.md.

Capire SKILL.md

I file delle skill servono a dotare l'agente di competenze specifiche. Un agente può avere più skill, e ciascuna dovrebbe essere descritta in un file SKILL.md situato in .agents/skills/<skill_name>/SKILL.md, sostituendo <skill_name> con il nome della skill.

La struttura di un file di skill dovrebbe essere:

---
name: <skill_name>
description: <description of when to use the skill>
---
<steps on how to perform the task>

Per esemplificare, abbiamo dotato l'agente data-analyst di una skill chiamata csv-aggregator definita qui. Questa skill si usa quando vogliamo raggruppare le righe di un CSV per una colonna sommando un'altra colonna. 

Nel caso del dataset di Netflix, se vogliamo conoscere i generi degli show con più visualizzazioni, vogliamo raggruppare le righe per Genre e sommare i valori nella colonna Viewership. Questo file SKILL spiega all'agente come svolgere questo compito.

Caricare l'agente

Poiché gli agenti sono persistenti, se proviamo a eseguire la creazione dell'agente due volte, otterremo un errore. Per questo motivo, abbiamo creato la funzione load_or_create_agent() nel file utils.py. Questa funzione proverà a creare l'agente e, se esiste, lo caricherà invece usando la funzione client.agents.load().

Mettere tutto insieme

Ora che abbiamo un agente data analyst, è il momento di testarlo chiedendogli di analizzare i generi di Netflix. 

Iniziamo come prima importando le librerie, caricando la API key e inizializzando il client:

from dotenv import load_dotenv
from google import genai
import utils

load_dotenv()
client = genai.Client()

Poi creiamo (o carichiamo, se non è la prima volta che eseguiamo lo script) l'agente data-analyst usando la funzione utils.load_or_create_agent():

data_analyst = utils.load_or_create_agent(client, "data-analyst")
print(f"Agent '{data_analyst.id}' initialized.")

Quindi possiamo interagire con l'agente allo stesso modo di prima. L'unica differenza è che nel parametro agent ora indichiamo il nostro agente invece di antigravity-preview-05-2026.

Iniziamo chiedendo all'agente di installare il pacchetto matplotlib:

inter1 = client.interactions.create(
    agent=data_analyst.id,
    input="Install the matplotlib package.",
    environment="remote"
)

Nota che, dato che l'ambiente è già stato configurato a livello di agente, non dobbiamo più fornire file, quindi indichiamo semplicemente la stringa ”remote”.

Successivamente, gli chiediamo di usare lo strumento csv-aggregator per analizzare i dati Netflix per genere e vedere quali sono i generi più visti:

inter2 = client.interactions.create(
    agent=data_analyst.id,
    input="Use the csv-aggregator to plot the top 10 genres from /workspace/repository/data/netflix.csv in terms of viewership",
    environment=inter1.environment_id
)

Nota che forniamo l'identificatore dell'ambiente dell'interazione precedente in modo che l'agente possa continuare a lavorare sopra di esso.

Infine, chiediamo all'agente di tracciare i dati eseguendo lo script genres.py creato nel passaggio precedente (il file SKILL.md istruisce l'agente a creare questo script):

inter3 = client.interactions.create(
    agent=data_analyst.id,
    input="Execute the genres.py script using python.",
    environment=inter2.environment_id
)

Dopo questa interazione, il grafico dovrebbe essere stato creato. Possiamo ottenerlo in locale scaricando l'ambiente:

utils.download_env(inter3.environment_id)

Ecco il risultato:

Grafico a barre che mostra gli show Netflix più visti per genere.

Il codice completo dell'interazione con l'agente si trova in analyze_netflix_genres.py.

Conclusione

La possibilità di creare agenti complessi con una singola chiamata API senza dover fare affidamento su un'infrastruttura cloud complessa per creare una sandbox è molto potente. Questa capacità rende molto facile creare agenti potenti senza doversi preoccupare dell'ambiente in cui vengono eseguiti.

In questo tutorial, abbiamo coperto le basi dei Gemini Managed Agents ma non abbiamo creato agenti davvero complessi. Ti invito a esplorare oltre e a continuare a costruire su queste fondamenta per affinare le tue competenze.

Managed Agents nell'API Gemini: Domande frequenti

Cosa sono esattamente i Managed Agents e quali sono le loro funzionalità principali?

I Managed Agents sono lavoratori AI autonomi alimentati dall'agente Antigravity di Google. Possono ragionare, pianificare ed eseguire codice (in Bash, Python o Node.js) all'interno della propria sandbox Linux isolata. Le loro funzionalità principali includono esecuzione di codice in sandbox, gestione di file persistente e integrazione web con Google Search per il grounding.

Come si mantengono lo spazio di lavoro e la cronologia della conversazione di un agente tra più interazioni?

La persistenza è mantenuta usando un Environment ID univoco. Questo ID collega le interazioni sequenziali alla stessa sandbox del filesystem e alla stessa cronologia della conversazione, garantendo che i file generati (come report o script) e i pacchetti installati in precedenza siano preservati per i passaggi successivi.

Quali sono i metodi principali per condividere dataset o file con un agente?

Puoi condividere i dati in vari modi: 1) Dati inline (per piccoli file locali caricati come stringa), 2) File ospitati (tramite un URL pubblico), 3) Repository GitHub (che clonano il repo nello workspace), oppure 4) Google Cloud Bucket.

Come si personalizza il comportamento di un agente e si definiscono strumenti specifici da utilizzare?

Definisci il comportamento generale e il ruolo dell'agente usando il file .agents/AGENTS.md (che funge da system prompt) e definisci azioni specializzate e ripetibili usando un file .agents/skills/<skill_name>/SKILL.md, come la skill csv-aggregator.

Come vengono calcolati i costi per l'uso dei Managed Agents?

I costi sono determinati da quattro fattori principali: uso del modello (token per input, output e ragionamenti/script intermedi dell'agente), costi di infrastruttura e piattaforma, context caching (che può ridurre i costi dei token) e addebiti separati per i servizi di grounding come Google Search.


François Aubry's photo
Author
François Aubry
LinkedIn
Ingegnere full‑stack e fondatore di CheapGPT. Insegnare è sempre stata la mia passione. Fin dai primi anni da studente, cercavo con entusiasmo occasioni per fare da tutor e aiutare altri studenti. Questa passione mi ha portato a intraprendere un dottorato, durante il quale ho anche svolto il ruolo di assistente alla didattica a supporto del mio percorso accademico. In quegli anni ho trovato enorme soddisfazione nell'ambiente tradizionale dell'aula, creando connessioni e facilitando l'apprendimento. Con l'avvento delle piattaforme di apprendimento online, però, ho riconosciuto il potenziale trasformativo dell'educazione digitale. Di fatto, ho partecipato attivamente allo sviluppo di una di queste piattaforme nella nostra università. Sono profondamente impegnato a integrare i principi dell'insegnamento tradizionale con metodologie digitali innovative. La mia passione è creare corsi non solo coinvolgenti e informativi, ma anche accessibili a chi apprende in questa era digitale.
Argomenti

I migliori corsi su AI agentica

Programma

Nozioni di base sugli agenti AI

6 h
Scopri come gli agenti di intelligenza artificiale possono cambiare il tuo modo di lavorare e dare un valore aggiunto alla tua azienda!
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra altroMostra altro