AIREITER

Guida alla Google Developer Knowledge API: autenticazione, ricerca e agenti

Ultimo Aggiornamento: 2026-10-08 00:26:58

Un coding agent può fare scraping di una pagina per sviluppatori di Google, ma in questo modo deve gestire in proprio struttura della pagina, individuazione delle fonti, deduplicazione e citazioni. La Google Developer Knowledge API sposta queste attività dietro un'interfaccia documentata. È in genere la scelta migliore quando un agente ha bisogno di documentazione Google aggiornata e verificabile come contesto, con un limite importante: il corpus è curato e non coincide con l'intero web dedicato agli sviluppatori Google.

Recupera informazioni, non esegue operazioni

La Google Developer Knowledge API rende disponibile in formato leggibile dalle macchine la documentazione pubblica per sviluppatori di Google. La documentazione Google copre ricerca nei documenti, recupero di documenti completi, recupero batch e risposte supportate da fonti nella referenza REST.

Il servizio fornisce contesto in sola lettura a un'applicazione o a un agente. Non concede accesso a un progetto Cloud privato, non approva modifiche IAM, non distribuisce codice e non verifica che un comando generato sia sicuro. Per qualunque operazione di scrittura, l'agente continua a richiedere credenziali separate e controlli di policy.

Il perimetro del corpus conta. La documentazione dell'API di Google riguarda la documentazione pubblica per sviluppatori, non il web generico. Non sostituisce la ricerca in repository GitHub arbitrari, Stack Overflow, runbook privati o librerie di terze parti. Google segnala inoltre che il Markdown restituito è generato dall'HTML sorgente: non va quindi considerato una copia byte per byte della pagina visualizzata.

Verifica disponibilità e comportamento correnti nella referenza API ufficiale e nelle note di rilascio.

Cosa espone la Google Developer Knowledge API

La superficie REST è abbastanza contenuta da poter essere modellata direttamente nelle policy di un agente:

OperazioneCosa restituisceUso ideale
SearchDocumentChunksChunk corrispondenti e risorse dei documenti padreTrovare evidenze e pagine candidate
GetDocumentUn documento completo in MarkdownFornire all'agente il contesto dell'intera pagina
BatchGetDocumentsPiù documenti completiConfrontare pagine correlate o preriscaldare una cache locale
AnswerQueryUna risposta basata sul corpus con riferimenti di supportoRispondere a una domanda circoscritta sulla documentazione

I risultati della ricerca sono chunk, non necessariamente pagine complete. La risorsa parent presente in un risultato è il collegamento a GetDocument o BatchGetDocuments. Un client robusto raggruppa i chunk duplicati per parent prima di recuperare le pagine; altrimenti una sola pagina può occupare più slot di recupero aggiungendo poco contesto utile.

Un tipico nome di risorsa segue il formato delle risorse documento:

documents/docs.cloud.google.com/storage/docs/creating-buckets

Questo schema del nome risorsa è utile dopo una risposta di ricerca, ma l'agente dovrebbe preferire il valore parent esatto restituito dal servizio invece di costruire un nome a memoria.

Ogni modalità di ricerca offre un diverso tipo di evidenza

SearchDocumentChunks è la modalità che mette le evidenze al primo posto. Usala quando l'agente richiede un flag preciso, un parametro, un'autorizzazione, una nota sulla versione o un frammento di codice. Il chiamante può esaminare il chunk, conservarne l'URI del documento e decidere se recuperare la pagina completa.

GetDocument e BatchGetDocuments sono modalità orientate al contesto. Sono utili dopo la ricerca quando la risposta dipende da prerequisiti, avvisi, note di migrazione o sezioni adiacenti che un singolo chunk potrebbe omettere. Il recupero batch è utile quando una decisione progettuale coinvolge più pagine ufficiali.

AnswerQuery è la modalità di sintesi. È adatta a una domanda delimitata come “Quale opzione Google Cloud attuale soddisfa questi vincoli?”, quando la risposta deve essere basata sul corpus. Non è un motivo per accettare una risposta fluida senza verificarne i riferimenti. Per modifiche al codice ad alto rischio, ricerca più recupero del documento completo offre all'agente una traccia di evidenze più ispezionabile.

Autenticazione: sceglila in base al chiamante

Esistono tre schemi pratici di autenticazione, ma non sono intercambiabili.

ChiamantePunto di partenza consigliatoPerché
curl locale o prototipo rapidoChiave API con restrizioniÈ il modo più veloce per effettuare la prima richiesta
Backend, worker o client PythonApplication Default Credentials (ADC)Mantiene le credenziali nell'ambiente di runtime anziché nel codice sorgente
Client MCP interattivoOAuth se l'host lo supporta; altrimenti una chiave con restrizioniEvita di distribuire un'unica chiave di lunga durata fra gli strumenti degli utenti

Per un quickstart, crea o seleziona un progetto Google Cloud, abilita developerknowledge.googleapis.com e crea una chiave API limitata alla Developer Knowledge API. Non inserire una chiave senza restrizioni in un prompt dell'agente, in un repository, in un bundle lato client o in un log di debug.

Il comando minimo per abilitare il servizio è:

gcloud services enable developerknowledge.googleapis.com \
  --project="$PROJECT_ID"

Per un'applicazione gestita, ADC rappresenta di solito un confine più pulito. La referenza del client Python di Google documenta le credenziali rilevate dall'ambiente e client sincroni e asincroni. In questo modo è il deployment a fornire l'identità tramite il runtime, senza costringere l'applicazione a leggere una chiave dal testo di configurazione.

OAuth è una scelta adatta per un agente interattivo, perché autorizza la connessione l'utente anziché un segreto statico condiviso. Il flusso OAuth esatto dipende dall'host MCP. Il supporto all'autenticazione nel client va verificato separatamente dall'API: un client che accetta un URL MCP può comunque gestire in modo diverso header, variabili segrete o rinnovo dei token.

Un flusso minimo per il recupero delle fonti

Un agente in produzione dovrebbe rendere esplicito il confine del recupero:

  1. Rimuovere dalla domanda segreti e contenuti non pertinenti del repository.
  2. Cercare nel corpus ufficiale con SearchDocumentChunks.
  3. Deduplicare i risultati in base alla risorsa del documento padre.
  4. Recuperare i documenti completi più rilevanti quando l'attività richiede contesto circostante.
  5. Conservare URI, titolo, timestamp o metadati restituiti, insieme agli estratti selezionati.
  6. Chiedere al modello di rispondere esclusivamente sulla base delle evidenze conservate.
  7. Eseguire test e controlli di policy prima che l'agente modifichi codice o infrastruttura.

L'endpoint REST per la ricerca è documentato nella referenza REST di Google:

GET https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks

Una semplice richiesta con chiave API è fatta così:

curl --get \
  'https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks' \
  --data-urlencode 'query=Cloud Storage bucket retention policy' \
  --data-urlencode 'pageSize=5' \
  --data-urlencode "key=$DEVELOPERKNOWLEDGE_API_KEY"

Prima di fissare un parser nel codice, verifica schema della risposta e nomi dei campi nella referenza REST aggiornata. La ricerca produce chunk e nomi dei documenti padre; il recupero dei documenti usa quei nomi.

Testa l'agente con risposte simulate o snapshot per risultati vuoti, parent mancanti, paginazione, errori di autenticazione e risposte di quota o rate limit. Mantieni i retry fuori dal prompt del modello, con backoff limitato e un fallback chiaro quando non è possibile recuperare evidenze.

API diretta, MCP o pagina web?

La stessa fonte documentale può essere esposta in tre modi:

SituazionePercorso miglioreMotivo
Un servizio richiede recuperi e citazioni ripetibiliAPI REST o libreria clientL'applicazione controlla parsing, cache e archiviazione delle evidenze
Un assistente di coding richiede contesto Google on demandDeveloper Knowledge MCP serverL'agente può chiamare gli strumenti di ricerca e recupero senza integrazioni personalizzate
Una pagina è fuori dal corpus supportatoAccesso diretto alla pagina o connettore per un'altra fonteIl corpus Developer Knowledge non può rispondere per fonti assenti
Una persona sta analizzando layout, navigazione o esempi interattiviBrowser/accesso alla paginaIl recupero in Markdown non equivale all'ispezione visiva della pagina

La documentazione MCP di Google indica come endpoint https://developerknowledge.googleapis.com/mcp. MCP è un adattatore per un agente, non una knowledge base differente. Una configurazione rappresentativa per un server remoto è:

{
  "mcpServers": {
    "google-developer-knowledge": {
      "serverUrl": "https://developerknowledge.googleapis.com/mcp",
      "headers": {"x-goog-api-key": "${DEVELOPERKNOWLEDGE_API_KEY}"}
    }
  }
}

Usa la sintassi per le variabili segrete documentata dall'host; non dare per scontato che l'espansione letterale di ${...} funzioni ovunque. Resta inoltre il tema del costo di contesto: esporre ogni strumento a ogni attività può aggiungere definizioni degli strumenti e overhead decisionale. Una discussione fra utenti reali sulle configurazioni agent con più server ha espresso bene il problema:

“Gli MCP richiedono molto più contesto rispetto alle skill, che occupano solo poche righe di testo finché non vengono invocate.” — u/junlim, discussione su Reddit

È un motivo per rendere disponibile il server MCP Developer Knowledge in modo condizionale per le attività incentrate su Google, non per abbandonarlo. Un agente che lavora su Firebase, Android, Google Cloud, Maps o Flutter può trarre vantaggio dalla fonte; un agente che modifica uno stack non correlato non dovrebbe invocarla per impostazione predefinita.

Quando l'API è meglio dello scraping della documentazione Google

Usa l'API quando è vera la maggior parte di queste condizioni:

  • L'attività riguarda documentazione per sviluppatori di proprietà di Google.
  • L'agente richiede una ricerca ripetibile, non il recupero occasionale di una pagina.
  • La risposta richiede citazioni o una traccia delle fonti conservata.
  • L'agente deve distinguere un chunk rilevante dal documento completo.
  • Il workflow richiede paginazione, batching o caching strutturati.
  • Un restyling delle pagine non dovrebbe imporre un nuovo parser HTML.

Lo scraping può comunque essere il fallback corretto. Usalo quando la pagina richiesta non è nel corpus supportato, quando un'interazione visiva fa parte dell'attività o quando contano l'HTML renderizzato esatto e lo stato di navigazione. Lo scraping è anche una sonda temporanea ragionevole durante un incidente se l'accesso API non è disponibile, ma non dovrebbe trasformarsi silenziosamente nel contratto di recupero in produzione.

Fattore decisionaleDeveloper Knowledge APIScraping di una pagina per sviluppatori
IndividuazioneRicerca del servizio sul suo corpus indicizzatoCostruire una ricerca o partire da un URL noto
OutputChunk, risorse documento e MarkdownHTML o contenuto della pagina renderizzata
Flusso di citazioneRisorsa padre e URI del documento sono esplicitiL'applicazione deve estrarre e conservare i link
Manutenzione del layoutIl contratto API è il confineI selettori possono rompersi dopo un restyling
CoperturaCorpus pubblico per sviluppatori supportatoQualunque pagina pubblicamente raggiungibile, soggetta a regole di accesso e robots
Fedeltà visivaNon è l'obiettivoPuò preservare il layout renderizzato con l'automazione del browser
Controllo dell'agenteCerca, recupera, poi sintetizzaIn genere recupera, analizza, ripulisce e interpreta

L'API non garantisce che ogni pagina pubblicata di recente sia disponibile all'istante. Le note di rilascio di Google descrivono gli aggiornamenti dell'indicizzazione, ma un agente dovrebbe considerare la freschezza una proprietà da verificare, non la prova che la pagina più nuova sia già indicizzata. Per una migrazione nel giorno del rilascio, confronta i metadati restituiti con la pagina ufficiale corrente e applica un fail closed quando mancano evidenze.

La policy per agenti che metterei in produzione

Per un coding agent specifico per Google, userei questa regola di instradamento:

  • Dettaglio di implementazione preciso: prima SearchDocumentChunks; recupera il documento padre se il chunk non contiene i prerequisiti.
  • Questione progettuale su più pagine: cerca, quindi usa BatchGetDocuments per il piccolo insieme di parent rilevanti.
  • Domanda esplicativa semplice: AnswerQuery, ma richiedi riferimenti nella risposta.
  • Documentazione non Google o privata: instrada verso un altro connettore approvato.
  • Scrittura su codice o infrastruttura: il recupero è consultivo; test, IAM, revisione e controlli di deployment restano obbligatori.

Metti in cache i documenti completi quando la policy lo consente, applica debounce alle ricerche ripetute e registra gli URI delle fonti anziché segreti grezzi o contesto non necessario del repository. Considera il Markdown recuperato come input non attendibile: l'origine autorevole non rende sicura ogni istruzione incorporata per un agente dotato di strumenti di scrittura.

Il compromesso irrisolto è semplice. L'API offre a un agente un contratto più pulito e verificabile rispetto allo scraping HTML, ma rinuncia alla copertura e alla fedeltà immediata della pagina offerte da un browser. Scegli l'API come impostazione predefinita per la documentazione Google supportata, mantenendo poi lo scraping o un altro connettore come fallback esplicito anziché mescolare i due percorsi in modo invisibile.

FAQ sulla Google Developer Knowledge API

La Developer Knowledge API è uguale a Google Search?

No. È un servizio di recupero della documentazione su un corpus Google per sviluppatori supportato, non un'API di ricerca web generica. Non cercherà automaticamente documentazione privata, contenuti GitHub arbitrari o tutte le pagine correlate a Google.

Meglio usare AnswerQuery o SearchDocumentChunks?

Usa AnswerQuery per una spiegazione circoscritta e basata sul corpus. Usa SearchDocumentChunks quando l'agente richiede evidenze ispezionabili, sintassi esatta o una traccia delle fonti; recupera il documento padre quando il chunk non basta.

È obbligatoria una chiave API?

Una chiave API con restrizioni è il percorso più rapido per un prototipo. I client backend possono usare ADC, mentre le integrazioni MCP interattive possono usare OAuth se l'host lo supporta. Non presumere che l'autenticazione supportata da un client sia automaticamente supportata da un altro.

Un agente può usare l'API per distribuire risorse Google Cloud?

No. L'API fornisce contesto documentale. Il deployment richiede comunque strumenti, credenziali, autorizzazioni IAM, approvazioni e validazione separati.

Quando dovrei fare scraping?

Fai scraping o usa un connettore browser quando la pagina è fuori dal corpus API, quando il layout visivo conta oppure quando ti serve una pagina che l'indice non ha ancora restituito. Registra esplicitamente questo fallback, così l'agente non presenterà contenuto estratto con scraping come una citazione supportata dall'API.

La ricerca API restituisce una pagina completa?

No. La ricerca restituisce chunk di documenti. Usa la risorsa del documento padre restituita con GetDocument o BatchGetDocuments quando serve la pagina Markdown completa.