Ein Sprachagent, der während seiner Arbeit tote Luft hinterlässt, wirkt defekt. Dieser ADK-Leitfaden zeigt zwei Muster für Streaming-Tools, die das Gespräch am Laufen halten – und die Produktionsdetails, über die Menschen stolpern.
Bei langen Operationen sollte der Agent erzählen, was er tut:
query_sales_database auslöst, sendet ADK sofort ein asynchrones Statusereignis. Der Agent spricht sofort („Ich schaue mir jetzt die EMEA-Zahlen für Sie an...").yield sendet eine partielle Funktionsantwort nach oben; das Modell paraphrasiert jede Aktualisierung, sobald sie eintrifft („Verbinde mit dem Lagerhaus...", „Aggregiere Produktliniendaten..."), wobei die Erzählung dem Tool um mehrere Sekunden hinterherhinken kann.Dauerhafte Kommentare sind nicht immer angemessen. Wenn ein Benutzer einen Bericht anfordert und sofort das Thema wechselt, wirkt ein Agent, der ständig mit Statusaktualisierungen unterbricht, aufdringlich. Wenn das Warten keine Geschichte zu erzählen hat, führen Sie die Aufgabe leise im Hintergrund aus. Der schnellste Aufbau ist ein Single-Yield-Generator: ein asynchroner Generator, der nur einmal – bei Abschluss – liefert: eine sofortige verbale Bestätigung ohne fortlaufendes Geplapper.
stop_streaming – ADK bietet eine eingebaute Notluke: Fügen Sie eine stop_streaming(function_name: str)-Funktion zu den Tools des Agenten hinzu. ADK fängt den Aufruf ab und bricht die zugrunde liegende asyncio-Aufgabe des Generators ab, wodurch asyncio.CancelledError in Ihrer Funktion ausgelöst wird, sodass Sie DB-Verbindungen oder Dateihandles sauber schließen können.interrupted=True, damit der Client die Audiowiedergabe stoppt. Laufende Streaming- oder Hintergrund-Tools werden nicht abgebrochen, und ihre Ergebnisse treffen weiterhin ein. Um ein Tool zu stoppen, muss das Modell stop_streaming aufrufen.Die Barge-in-Semantik ist die subtile Sache: Benutzerunterbrechung stoppt Sprache, aber nicht das Tool – ein Design, das verlorene Arbeit verhindert, aber stop_streaming-Disziplin erfordert. Zwischen Erzählung auf Abruf, Single-Yield-Hintergrundaufgaben und expliziter Idempotenz geben Ihnen diese beiden Muster einen Sprachagenten, der spricht, wenn er sollte, schweigt, wenn er sollte, und niemals stillschweigend einen laufenden Job fallen lässt.