Trwały agent AI z Gemini i Temporal

Ten samouczek przeprowadzi Cię przez proces tworzenia pętli agentowej w stylu ReAct, która do rozumowania używa interfejsu Gemini API, a do trwałości – Temporal. Pełny kod źródłowy tego samouczka jest dostępny na GitHub.

Agent może wywoływać narzędzia, np. wyszukiwać alerty pogodowe lub lokalizować adres IP, i będzie to robić, dopóki nie uzyska wystarczającej ilości informacji, aby odpowiedzieć.

Od typowej wersji demonstracyjnej agenta różni się ona trwałością. Każde wywołanie LLM, każde wywołanie narzędzia i każdy krok pętli agenta jest utrwalany przez Temporal. Jeśli proces ulegnie awarii, sieć zostanie odłączona lub interfejs API przekroczy limit czasu, Temporal automatycznie ponowi próbę i wznowi działanie od ostatniego ukończonego kroku. Nie utracisz historii rozmów ani nie powtórzysz nieprawidłowo wywołań narzędzi.

Architektura

Architektura składa się z 3 części:

  • Przepływ pracy: pętla agenta, która zarządza logiką wykonywania.
  • Aktywności: poszczególne jednostki pracy (wywołania LLM, wywołania narzędzi), które Temporal sprawia, że są trwałe.
  • Proces roboczy: proces, który wykonuje przepływy pracy i działania.

W tym przykładzie umieścisz wszystkie 3 elementy w jednym pliku (durable_agent_worker.py). W rzeczywistym wdrożeniu rozdzielisz je, aby uzyskać różne korzyści związane z wdrażaniem i skalowalnością. Kod, który dostarcza prompta do agenta, umieścisz w drugim pliku (start_workflow.py).

Wymagania wstępne

Aby skorzystać z tego przewodnika, potrzebujesz:

  • Klucz interfejsu Gemini API. Możesz go utworzyć bezpłatnie w Google AI Studio.
  • Python w wersji 3.10 lub nowszej.
  • Temporal CLI do uruchamiania lokalnego serwera programistycznego.

Konfiguracja

Zanim zaczniesz, upewnij się, że na Twoim komputerze działa serwer programistyczny Temporal:

temporal server start-dev

Następnie zainstaluj wymagane zależności:

pip install temporalio google-genai httpx pydantic python-dotenv

Utwórz w katalogu projektu plik .env z kluczem interfejsu Gemini API. Klucz interfejsu API możesz uzyskać w Google AI Studio.

echo "GOOGLE_API_KEY=your-api-key-here" > .env

Implementacja

W dalszej części tego samouczka omówimy durable_agent_worker.py od góry do dołu, budując agenta krok po kroku. Utwórz plik i postępuj zgodnie z instrukcjami.

Importowanie i konfigurowanie piaskownicy

Zacznij od importów, które muszą być zdefiniowane z góry. Blok workflow.unsafe.imports_passed_through() informuje piaskownicę przepływu pracy Temporal, że niektóre moduły mogą przechodzić bez ograniczeń. Jest to konieczne, ponieważ kilka bibliotek (zwłaszcza httpx, która jest podklasą urllib.request.Request) używa wzorców, które w innych okolicznościach zostałyby zablokowane przez piaskownicę.

from temporalio import workflow

with workflow.unsafe.imports_passed_through():
    import pydantic_core  # noqa: F401
    import annotated_types  # noqa: F401

    import