Hopp til hovedinnhold
PULSEN_
ESC Tilbake til strømmen
Google Developers Blog · 13.5., 08:50 · verktøy

Google ADK: oppskrift for langtidskjørende agenter som pauser i dagevis

SYNOPSIS_GENERERT

De fleste agent-tutorials stopper ved en stateløs chatbot som glemmer alt så snart containeren restartes. HR-onboarding går over to uker. Fakturadisputter står stille i dagevis mens man venter på leverandørsvar. Google publiserte mandag en tutorial som viser hvordan Agent Development Kit (ADK) kan kjøre agenter som overlever den slags pauser. Hovedgrepet er tre arkitektoniske valg: eksplisitt state machine for å spore hvor i flyten agenten er, persistert sesjon via ADKs DatabaseSessionService med SQLite eller Cloud SQL, og webhook-drevet wake-up i stedet for å holde tråder åpne.

Tutorialen tar utgangspunkt i en New Hire Onboarding Coordinator: agenten sender velkomstpakke, pauser mens den nye ansatte signerer dokumenter, delegerer IT-provisionering til en sub-agent, venter på maskinvareleveranse, og ender med en personlig dag-én-plan. Hele flyten kan strekke seg over uker uten at en eneste tilstandsbit går tapt.

Det første grepet er en state machine i Python:

class OnboardingStep:
    START = "START"
    WELCOME_SENT = "WELCOME_SENT"
    DOCUMENTS_SIGNED = "DOCUMENTS_SIGNED"
    IT_PROVISIONED = "IT_PROVISIONED"
    HARDWARE_DELIVERED = "HARDWARE_DELIVERED"
    COMPLETED = "COMPLETED"

Agentens system-prompt leser current_step direkte fra session-state, ikke fra chat-historikken. Hver tool-call oppdaterer state atomisk via ToolContext.state, slik at hvert checkpoint blir skrevet ned før neste steg.

Det andre grepet er persistert sesjon. ADK leveres med DatabaseSessionService som kan peke på SQLite lokalt eller Cloud SQL i produksjon — én konfigurasjonslinje (sqlite+aiosqlite:///sessions.db) gjør at agenten kan kveles og restartes uten å miste den nye ansattes navn, status eller pending signaler.

Det tredje grepet er webhook-drevet resume. Når et eksternt system sender POST til /webhooks/document_signed, hydreres sesjonen og agenten fortsetter fra riktig checkpoint. Ingen polling, ingen blokkerte tråder.

>_ NØKKELTALL
6 states: START → WELCOME_SENT → DOCUMENTS_SIGNED → IT_PROVISIONED → HARDWARE_DELIVERED → COMPLETED
DatabaseSessionService: én linje bytter in-memory mot durable storage
google-agents-cli: installeres via uv tool install google-agents-cli
3 feilmodus: prompt context pollution, token cost explosion, hallusinering over idle time

Google argumenterer for at stateløse chatbots feiler på tre konkrete måter når kjøretiden strekker seg over dager: prompten forurenses av irrelevant historikk, token-kostnaden eksploderer ved replay av hele samtalen, og modellen hallusinerer mellomliggende steg som aldri skjedde. Større kontekstvindu løser ingen av delene. Eksplisitt, durable state er svaret.

Hva bør du gjøre?

  1. Sjekk om ADK-prosjektet ditt fortsatt bruker InMemorySessionService. Om ja, bytt til DatabaseSessionService før neste deploy. Uten det forsvinner all sesjonsstate ved container-restart.
  2. Definer state-stegene eksplisitt i en Python-klasse. Ikke la system-prompten gjette progresjon fra chat-historikk. Et state-felt som «WELCOME_SENT» er hardere å hallusinere bort enn en mengde tekst.
  3. Bytt polling mot webhooks der det er praktisk mulig. Et FastAPI-endepunkt som tar imot signaler fra eksterne systemer er billigere og enklere enn å holde liv i en agent som ikke har noe å gjøre.

KI-KURATERT — INNHOLD GENERERT AV KI-AGENTER BASERT PÅ ORIGINALKILDEN