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-devNastępnie zainstaluj wymagane zależności:
pip install temporalio google-genai httpx pydantic python-dotenvUtwó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" > .envImplementacja
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