> A Temporal tartós workflow-kként futtat ügynökfutásokat: az újrapróbálások, jóváhagyások és időzítők túlélik az összeomlást. Költség, adatvédelem, mikor ne használd.
>
> Web page: https://balazscsorba.com/hu/blog/temporal · Language: Magyar · Also available in: [English](https://balazscsorba.com/blog/temporal.md) · [Deutsch](https://balazscsorba.com/de/blog/temporal.md)
> Author: Balázs Csorba · Published: 2026-10-07 · Keywords: temporal workflow, temporal ai agents, durable execution for ai agents, temporal vs langgraph, temporal cloud pricing, temporal openai agents sdk, self-hosted temporal, temporal determinism rules

[Blog](https://balazscsorba.com/hu/blog)/MI-ágensek

# Temporal teszt: ügynökök, amelyek túlélik az összeomlást és emberekre várnak

A Temporal tartós workflow-kként futtat ügynökfutásokat: az újrapróbálások, jóváhagyások és időzítők túlélik az összeomlást. Költség, adatvédelem, mikor ne használd.

[Balázs Csorba](https://balazscsorba.com/hu/about)·2026\. október 7.·8 perc olvasás

-   Durable execution
-   Workflow orchestration
-   Human in the loop
-   AI agents
-   Self-hosting

![Négy egymásra rakott lap oszlopban keskeny pilléren, kapu körrel és egy figura.](https://balazscsorba.com/images/blog/temporal/cover.webp?v=e3ab80bb60)

## A lényeg röviden

-   A Temporal olyan ügynökfutásokhoz illik, amelyek percektől napokig tartanak, több rendszert érintenek és emberekre várnak. Egy néhány másodperc alatt kész chat-válaszhoz túlzás.
-   A szerver MIT-licencű. A Temporal Cloud fizetés szerint működik, havi $0-tól, az Actions pedig milliónként $50, az első 5 millióig. A Business csomag havi $500-tól indul.
-   A workflow-kódnak determinisztikusnak kell lennie. A modellhívások és az eszközök activity-be tartoznak, a futó workflow-k kódjának módosításához pedig verziókezelés kell.
-   Az activity-k alapértelmezés szerint korlátlanul próbálkoznak újra, ezért minden modell-activity-hez kell retry policy és azoknak a hibatípusoknak a listája, amelyeket soha nem szabad újrapróbálni.
-   A Cloud namespace-ek futhatnak olyan EU-s régiókban, mint Frankfurt és Írország, adatfeldolgozási szerződés és szabványos szerződési záradékok mellett. Önhosztolásnál ez a kérdés a saját tárhelyszolgáltatódhoz kerül.

Ezen az oldalon

1.  [Mi ez](https://balazscsorba.com/#what-it-is)
2.  [Hogyan működik](https://balazscsorba.com/#how-it-works)
3.  [Első lépések](https://balazscsorba.com/#getting-started)
4.  [Újrapróbálkozások és időkorlátok](https://balazscsorba.com/#retries-and-timeouts)
5.  [Emberi jóváhagyás signalokkal](https://balazscsorba.com/#human-approval)
6.  [Költség és üzemeltetés](https://balazscsorba.com/#cost-and-deployment)
7.  [Hol gyengébb](https://balazscsorba.com/#where-it-falls-short)
8.  [Ítélet](https://balazscsorba.com/#verdict)
9.  [Források](https://balazscsorba.com/#sources)

Cikk meghallgatása

0:000:00

A Temporal nyílt forráskódú, tartós végrehajtási platform. Az ügynököt hagyományos kódként írod meg, a platform pedig minden lépést rögzít, így egy futás túléli az összeomlásokat, a deployokat és a napokig tartó várakozást. Az ítéletem előre: olyan ügynökfutásokhoz való, amelyek percektől napokig tartanak, több rendszert érintenek, és egy lépést ember hagy jóvá. Egy néhány másodperc alatt kész chat-válaszhoz túlzás.

Két egyszerűbb dologgal versenyez, amelyeket a legtöbb csapat már üzemeltet: a LangGraph-hoz hasonló gráf-checkpointerrel és egy állapottáblás job queue-val. Ezek a helyes választ jelentik addig, amíg egy folyamat egy tizenkét lépéses futás közepén el nem hal, és a futásnak onnan kell folytatódnia, ahol abbahagyta. Ha senki nem vállalja a workflow-kódot, önhosztolásnál pedig a klasztert, hagyd ki a Temporalt.

## Mi ez

-   **Egy parancs a kipróbáláshoz.** `temporal server start-dev` laptopon futtatja a szolgáltatást és a webes felületet, külső függőség nélkül.
-   **Kétféleképpen futtatható.** Saját szerveren önhosztolhatod, vagy használhatod a Temporal Cloudot, amelynek régiói között van AWS Frankfurt és Írország. A szerver MIT-licencű.
-   **Hagyományos kód.** A workflow-k és az activity-k egyszerű függvények Go, Java, Python, TypeScript, .NET, Ruby vagy PHP nyelven, az SDK-tól függően.

## Hogyan működik

A **workflow** dönti el, mi történik ezután. Egy **activity** végzi a munkát: meghív egy modellt, API-t hív, vagy fájlt ír. A Temporal minden döntést és minden activity-eredményt a workflow eseménytörténetében tárol. Összeomlás után egy worker ehhez a történethez játssza vissza a workflow-kódot, kihagyja a befejezett activity-ket, és az első befejezetlen lépésnél folytatja. Az ügynök szépen illeszkedik ehhez a szétválasztáshoz: a ciklus, az eszközválasztás és az átadások a workflow-ban élnek, és minden modell- vagy eszközhívás egy activity.

![Hogyan halad egy tartós ügynökfutás a Temporalon át Egy kliens elindítja a workflow-t, és signalokat és update-eket küld a Temporal Service-nek, amely tárolja az eseménytörténetet és az időzítőket. Egy worker lekérdezi a task queue-t, a szolgáltatástól feladatokat kap, és eredményeket küld vissza. A workerben a workflow-kód determinisztikusan futtatja az ügynökciklust, és minden modell- vagy eszközhívást egy activity-nek ad át. Az activity-k hívják a külső LLM- és eszköz-API-kat, és ezeket a hívásokat nem játsszák vissza.](https://balazscsorba.com/images/blog/temporal/diagram-6.webp?v=b7d61394ab)

A workflow dönt, az activity-k végzik a be- és kimenetet, a szolgáltatás pedig megőrzi azt az előzményt, amely miatt az újraindítás ártalmatlan.

A visszajátszás a korlát. A workflow-kódnak minden visszajátszáskor ugyanazokat a hívásokat kell ugyanabban a sorrendben megtennie. Ezért ha benne API-t hívsz, órát olvasol vagy véletlen számot húzol, a visszajátszás megtörik. Ezt a munkát activity-kbe tedd, vagy Pythonban használd a `workflow.now()` és a `workflow.random()` függvényeket. A futó végrehajtásokkal rendelkező workflow módosításához verziókezelés kell. Egy activity típusának vagy azonosítójának megváltoztatása nem biztonságos, a bemenetei és időkorlátai viszont módosulhatnak.

## Első lépések

A legegyszerűbb kezdés az OpenAI Agents SDK integráció, amely a `temporalio-openai-agents` csomagként érhető el. Az ügynököt a szokásos SDK-val írod meg egy workflow-n belül, majd az `OpenAIAgentsPlugin`\-t a klienshez és a workerhez csatolod. Minden modellhívás activity lesz, így tartósan újrapróbálkozik, és visszajátszáskor nem ismétlődik meg.

```
from datetime import timedelta
from agents import Agent, Runner
from temporalio import workflow
from temporalio.client import Client
from temporalio.openai_agents import ModelActivityParameters, OpenAIAgentsPlugin

@workflow.defn
class HelloWorldAgent:
    @workflow.run
    async def run(self, prompt: str) -> str:
        agent = Agent(name='Assistant', instructions='You only respond in haikus.')
        result = await Runner.run(agent, input=prompt)
        return result.final_output

# worker.py: the plugin sets the timeout for each model activity
client = await Client.connect(
    'localhost:7233',
    plugins=[
        OpenAIAgentsPlugin(
            model_params=ModelActivityParameters(
                start_to_close_timeout=timedelta(seconds=30)
            )
        ),
    ],
)

# starter.py: the same plugin, so payloads are converted the same way
client = await Client.connect('localhost:7233', plugins=[OpenAIAgentsPlugin()])
result = await client.execute_workflow(
    HelloWorldAgent.run,
    'Tell me about recursion in programming.',
    id='my-workflow-id',
    task_queue='openai-agents-basic-task-queue',
)
```

`ModelActivityParameters` határozza meg, hogyan ütemeződnek a modell-activity-k. A `start_to_close_timeout` paraméter alapértelmezett értéke 60 másodperc. Eszközöknél a `activity_as_tool()` az I/O-t activity-ként futtatja, a sima `@function_tool` viszont a workflow-n belül fut, és determinisztikusnak kell lennie. Integráció van Google ADK-hoz, Pydantic AI-hoz, Mastra-hoz és a Vercel AI SDK-hoz is. A LangGraph-integráció public preview állapotban van.

## Újrapróbálkozások és időkorlátok

Az újrapróbálás az a pont, ahol a tartós végrehajtás megtérül, és ahol az alapértelmezések fájnak. Egy sikertelen activity exponenciális visszatartással próbálkozik újra, az első másodperctől indulva, a próbálkozások között legfeljebb 100 másodpercet várva, a próbálkozások számának korlátja nélkül. Egy fizetés rögzítése pontosan ezt kívánja. Az a kérés, amely soha nem sikerülhet, például egy nem létező megrendelés lekérdezése, ezért egyáltalán nem szabad újrapróbálni. Három beállítás határozza meg a viselkedést:

-   **Start-to-close** korlátozza egy próbálkozást. Nincs alapértelmezett értéke, a Temporal pedig erősen javasolja a beállítását.
-   **Schedule-to-close** az egész activity-t korlátozza az újrapróbálásokkal együtt, így azt szabja meg, mennyi ideig futhat összesen egy modell-lépés.
-   **Retry policy** a próbálkozások számának korlátját és azokat a hibatípusokat adja meg, amelyeket soha nem szabad újrapróbálni.

```
import httpx
from datetime import timedelta
from temporalio import activity
from temporalio.common import RetryPolicy
from temporalio.exceptions import ApplicationError
from temporalio.openai_agents import ModelActivityParameters

model_params = ModelActivityParameters(
    start_to_close_timeout=timedelta(seconds=60),
    schedule_to_close_timeout=timedelta(minutes=5),
    retry_policy=RetryPolicy(maximum_attempts=5),
)

@activity.defn
async def lookup_order(order_id: str) -> dict:
    async with httpx.AsyncClient() as client:
        response = await client.get(f'https://shop.example.com/api/orders/{order_id}')
    if response.status_code == 404:
        # Retrying cannot make a missing order appear.
        raise ApplicationError('Order not found', type='OrderNotFound', non_retryable=True)
    response.raise_for_status()
    return response.json()
```

**Minden újrapróbálás egy második modellhívás**

Az újrapróbálás újra elküldi a kérést, és minden kísérlet egy újabb Actiont jelent. Állítsd be a `maximum_attempts` értéket minden modell-activity-n, és azokra a kérésekre, amelyek nem sikerülhetnek, dobj `ApplicationError` hibát `non_retryable=True` beállítással.

Az activity-kódnak emellett idempotensnek kell lennie, mert a Temporal azzal számol, hogy az activity-k hiba után újra lefutnak. Egy e-mailt küldő eszköznek olyan idempotency-kulcs kell, amelyet a fogadó rendszer elfogad.

## Emberi jóváhagyás signalokkal

Itt a Temporal már nem csupán egy újrapróbálási könyvtár. A **signal** aszinkron üzenet egy futó workflow-nak. A Temporal human-in-the-loop mintája a döntést egy signal-kezelőben tárolja, és a `workflow.wait_condition` hívással vár rá. Amíg vár, az állapot az eseménytörténetben van, az időzítők pedig túlélik az újraindulásokat. A minta alapértelmezett időkorlátja öt perc, ami egy teszthez jó. Jóváhagyási sorhoz én napokat használnék.

```
import asyncio
from datetime import timedelta
from typing import Optional
from temporalio import workflow

@workflow.defn
class ApprovalWorkflow:
    def __init__(self) -> None:
        self.decision: Optional[str] = None

    @workflow.signal
    async def approval_decision(self, decision: str) -> None:
        self.decision = decision

    @workflow.run
    async def run(self, request: str) -> str:
        # propose_action and execute_action are activities defined elsewhere
        proposal = await workflow.execute_activity(
            propose_action, request, start_to_close_timeout=timedelta(seconds=60)
        )
        try:
            await workflow.wait_condition(
                lambda: self.decision is not None,
                timeout=timedelta(days=3),
            )
        except asyncio.TimeoutError:
            return 'no decision within three days'
        if self.decision != 'approve':
            return 'rejected'
        return await workflow.execute_activity(
            execute_action, proposal, start_to_close_timeout=timedelta(seconds=60)
        )
```

A **query** állapotot olvas anélkül, hogy megváltoztatná. Az **update** olyan kérés, amelyre a hívó vár, a validátor pedig még azelőtt elutasíthatja, hogy bekerülne a történetbe. Az elutasított update is egy Actionnek számít. A hosszú munkamenetek kemény korlátokba ütköznek: a végrehajtás 51 200 esemény, 2000 update vagy 10 000 signal felett leáll. Ezért a chat-szerű workflow-knak Continue-As-New kell. A `workflow.info().is_continue_as_new_suggested()` jelzi, mikor javasolja ezt a szerver. Hogy a jóváhagyási kapuk hová kerüljenek, az tervezési kérdés, amelyet a [Human in the loop AI-ügynököknél](https://balazscsorba.com/hu/blog/human-in-the-loop-ai-agents) című cikkemben járok körül.

## Költség és üzemeltetés

Önhosztolásnál nincs licencdíj. A Temporal Cloud fizetés szerint működik, minimális költés nélkül, az új fiókok pedig 90 napig $150 kreditet kapnak. A táblázat a listaárakat mutatja, 2026 októberének állapota szerint.

Opció

Ár

Benne van

Mi változik

Önhosztolt

Ingyenes, MIT

Semmi a Temporaltól

Te üzemelteted a szolgáltatásokat, az adatbázist, a keresőtárat és a frissítéseket

Cloud fizetés szerint

$0 alapdíj, plusz 10% support a használatra

Semmi

Actions milliónként $50, az első 5 millióig havonta

Cloud Business

A havi $500 vagy a használat 10%-a, amelyik nagyobb

2,5 M Actions, 2,5 GB active, 100 GB retained

SAML benne van, a SCIM havi $500 extra

Cloud Enterprise

Éves, kapcsolatfelvétel az értékesítéssel

10 M Actions, 10 GB active, 400 GB retained

SCIM benne van, P0 válaszidő 30 percen belül

Cloud Mission Critical

Éves, kapcsolatfelvétel az értékesítéssel

10 M Actions, 10 GB active, 400 GB retained

Dedikált platform architect, P0 válaszidő 15 percen belül

A használati szabályok többet mozgatnak a számlán, mint a főcím. Az Actions minden activity-indítást és újrapróbálást számolnak, valamint minden signalt, időzítőt, update-et, query-t és workflow-indítást. A példám 18 Actions, így 100 000 ilyen futás körülbelül $90 az Actionsben, a tárhely és a support előtt. Egy GB aktív tárhely egy hónapig tartva körülbelül $31, egy GB retained tárhely körülbelül 78 cent. Ha a Fairness be van kapcsolva, minden óra Actionsei 10 százalékkal nőnek.

A Business inkább a supportért, a SCIM-ért és a kötelezettségvállalási kedvezményekért éri meg, mint az Actionsökért. Az $500-os minimum 2,5 millió Actiont tartalmaz, ami több mint 130 000 ilyen futásra elég, mint a példám.

**Hová mennek az adatok.** Egy namespace egyetlen régióban jön létre. A régiólistán szerepel az AWS Frankfurt (`eu-central-1`), Írország (`eu-west-1`) és London (`eu-west-2`), valamint a GCP Frankfurt (`europe-west3`). A payloadokat a workereiden a Data Converterrel titkosíthatod, mielőtt elhagynák a workert. A Codec Server pedig a csapatodnak megengedi a történetek olvasását a webes felületen, kulcsok átadása nélkül. A megőrzött történetek a Cloudban legfeljebb 90 napig maradnak meg, így a hosszabb megőrzés exportot jelent. A tágabb kérdésekhez lásd: [GDPR és LLM-adatrezidencia](https://balazscsorba.com/hu/blog/gdpr-llm-api-eu-data-residency).

**Az adatfeldolgozási szerződés.** A Temporal szerződése, amely 2024. október 10-től hatályos, tartalmazza az EU szabványos szerződési záradékait és egy UK-addendumot. Az alvállalkozói melléklet az AWS-t nevezi meg az infrastruktúrához, a Google Cloudot a GCP-régiókban lévő namespace-ekhez, a Datastaxot, az Auth0-t, az Elasticet és a WorkOS-t pedig bizonyos szolgáltatásokhoz. Új alvállalkozó ellen a közzétételtől számított 15 napon belül tiltakozhatsz. A biztonsági mentéseket 30 napig őrzik, az ügyféladatokat a szerződés megszűnésekor törlik. A Temporal szerint SOC 2 Type 2 tanúsítvánnyal rendelkezik, és megfelel a GDPR-nek és a HIPAA-nak. Ezt tekintsd a felülvizsgálatod kiindulópontjának, nem jogi tanácsnak.

**Önhosztolás.** Ez ezeket a kérdéseket a saját tárhelyszolgáltatódra hárítja, az adatbázis, a keresőtár, a mentések és a frissítések pedig nálad maradnak. A szervernek négy szolgáltatása van, amelyek függetlenül skálázhatók: frontend, history, matching és worker. Elasticsearch vagy OpenSearch ajánlott, amint néhány végrehajtásnál többet futtatsz, a Docker Compose minta PostgreSQL-lel és Elasticsearch-csel fut. A Temporal azt javasolja, hogy egyszerre egy kisverziót lépj, a kiadások pedig akár kéthetente megjelenhetnek. A shardok száma build-időben rögzített, RBAC vagy auditnaplózás pedig nincs a dobozból. A gyártó ellenőrzőlistája a személyzetet jelentős költségnek nevezi. A hardvert nem árazom be, mert az a shardok számától és a terheléstől függ.

## Hol gyengébb

-   **A determinizmus szokás kérdése.** A futó végrehajtások közben módosított kód megtörheti a visszajátszást, a verziókezelés pedig régi kódutakat hagy karbantartásra.
-   **Kemény előzmény-határok.** A végrehajtások 51 200 esemény, 2000 update vagy 10 000 signal felett leállnak, ezért a hosszú munkamenetekhez az elejétől Continue-As-New kell.
-   **Az újrapróbálás költségkeret.** A korlátlan alapértelmezés az infrastruktúrának jó, a modellhívásoknak rosszul illik.
-   **Részben még preview.** Az OpenTelemetry- és a LangGraph-integráció public preview, a sandbox-támogatás kiadás előtti, a streaming pedig kísérleti.
-   **Nem minden tartós.** Az MCP-szerverek a workflow-n kívül futnak, és minden MCP-hívás activity-ként fut. `LocalShellTool`, a `ComputerTool` és a `SQLiteSession` nem támogatott.

## Ítélet

A Temporal a megfelelő alapértelmezés hosszú életű ügynökökhöz, amelyek több rendszert érintenek és emberekre várnak, feltéve, hogy valaki vállalja a workflow-kódot, önhosztolásnál pedig a klasztert is. Egyetlen modellhívásra egy HTTP-kérés mögött viszont rossz alapértelmezés.

1.  **Válaszd, ha** egy futás órákig vagy napokig tart, és egy újraindulás nem ismételhet meg egy fizetést, e-mailt vagy modellhívást.
2.  **Válaszd, ha** egy ember olyan lépéseket hagy jóvá, amelyek napokkal később jönnek, és a várakozásnak túl kell élnie az újraindulásokat.
3.  **Hagyd ki, ha** az ügynök másodpercek alatt válaszol. Egy időkorlát és egy újrapróbálás a modellhívás körül elég.
4.  **Csak akkor önhosztolj, ha** valaki gyakori frissítésekkel viszi a klasztert. Különben a Temporal Cloudot használd.

Három alternatíva lefedi a legtöbb esetet, amikor a Temporal túlzás:

-   **LangGraph-checkpointok** [LangGraph](https://balazscsorba.com/hu/blog/langgraph), ha az ügynök egy Python-gráf, az állapot kicsi, és a PostgreSQL már rendelkezésre áll. Az interruptjai emberi jóváhagyáshoz szüneteltetik a gráfot.
-   **Job queue állapottáblával** ha a folyamat rögzített sorozata idempotens lépéseknek. Az újrapróbálásokat és az időzítőket magadnak kell megírnod, ez öt lépésnél rendben van, ötvennél fárasztó.
-   **Csak az OpenAI Agents SDK** [OpenAI Agents SDK](https://balazscsorba.com/hu/blog/openai-agents-sdk), ha minden futás rövid, egy folyamatban marad, és soha nem kell túlélnie egy újraindulást.

**Kezdj kicsiben**

Kezdd a `temporal server start-dev` parancsot, és használd a $150 Cloud-kreditet. Klaszterre csak akkor térj át, ha egy rezidenciaszabály vagy egy mért volumen indokolja.

## Források

-   [Temporal Cloud: árak](https://temporal.io/pricing)
-   [Temporal Cloud: árdokumentáció](https://docs.temporal.io/cloud/pricing)
-   [OpenAI Agents SDK integráció Pythonhoz](https://docs.temporal.io/develop/python/integrations/openai-agents)
-   [Workflow-definíció és determinizmus](https://docs.temporal.io/workflow-definition)
-   [Újrapróbálási szabályzatok](https://docs.temporal.io/encyclopedia/retry-policies)
-   [Activity-időkorlátok](https://docs.temporal.io/encyclopedia/detecting-activity-failures)
-   [Cloud actions referencia](https://docs.temporal.io/cloud/actions)
-   [Eseménytörténet korlátai](https://docs.temporal.io/workflow-execution/event)
-   [Üzenetkezelés Pythonban: signalok, query-k és update-ek](https://docs.temporal.io/develop/python/message-passing)
-   [Human-in-the-loop AI-ügynök minta](https://docs.temporal.io/ai/cookbook/human-in-the-loop-python)
-   [Cloud biztonsági modell](https://docs.temporal.io/cloud/security)
-   [Cloud szolgáltatási régiók](https://docs.temporal.io/cloud/regions)
-   [Adatfeldolgozási szerződés](https://temporal.io/dpa)
-   [Önhosztolás telepítési útmutató](https://docs.temporal.io/self-hosted-guide/deployment)
-   [Önhosztolt éles üzem ellenőrzőlista](https://docs.temporal.io/self-hosted-guide/production-checklist)
-   [Önhosztolt láthatósági tárolók](https://docs.temporal.io/self-hosted-guide/visibility)
-   [A Temporal Server architektúrája](https://docs.temporal.io/temporal-service/temporal-server)
-   [A Temporal szerver LICENSE fájlja](https://github.com/temporalio/temporal/blob/main/LICENSE)
-   [Temporal integrációk áttekintése](https://docs.temporal.io/integrations)
-   [LangGraph integráció a Temporallal](https://docs.temporal.io/develop/python/integrations/langgraph)
-   [LangGraph perzisztencia](https://docs.langchain.com/oss/python/langgraph/persistence)
-   [LangGraph interruptok](https://docs.langchain.com/oss/python/langgraph/interrupts)
-   [Önhosztolási útmutató és fejlesztői szerver](https://docs.temporal.io/self-hosted-guide)
-   [Python SDK referencia: workflow.wait\_condition](https://python.temporal.io/temporalio.workflow._context.html)
-   [Python SDK referencia: ApplicationError](https://python.temporal.io/temporalio.exceptions.ApplicationError.html)

## Gyakori kérdések

Ingyenesen önhosztolható a Temporal?

A szerver MIT-licencű, és az árlap szerint a platform a saját infrastruktúrádon futhat, a Temporaltól származó díj nélkül. Az adatbázis, a keresőtár, a gépek és a működtetésükhöz szükséges emberek költsége továbbra is a tiéd.

Mibe kerül egy ügynökfutás a Temporal Cloudon?

Egy futás, amelyben van egy indítás, tizenkét activity-indítás, két újrapróbálás, egy update, egy signal és egy időzítő, körülbelül 18 Actions. Milliónként $50 mellett ez egy tized centnél kevesebb az Actionsben, a tárhely és a 10 százalékos supportdíj előtt.

Megismétli egy összeomlás a modellhívásaimat?

A befejezetteket nem. A Temporal a workflow-t a rögzített előzményeiből játssza újra, és kihagyja a már befejezett activity-ket. Az az activity, amely futott, amikor a worker leállt, a start-to-close timeout lejártával próbálkozik újra, ezért az activity-kódnak idempotensnek kell lennie.

Temporal vagy LangGraph?

A LangGraph kevesebb üzemeltetést igényel, ha az ügynök egyetlen gráf egyetlen Python-folyamatban, és egy PostgreSQL checkpointer elég. A Temporal olyan futásokhoz illik, amelyek napokig tartanak, több szolgáltatást fognak át, vagy amelyeknél a platform rögzíti az újrapróbálásokat és az időzítőket. A kettő össze is kombinálható, mert a LangGraph futhat Temporal-workflow-n belül, ami public preview állapotban van.

Írta: Csorba Balázs

Senior fullstack és AI mérnök Stájerországban – több mint 10 év Vue, Nuxt, Node.js és PHP, ma AI-ügynököknek építek eszközöket.

[AI fejlesztés és MCP szerverek →](https://balazscsorba.com/hu/expertise/ai-engineer)[Rólam →](https://balazscsorba.com/hu/about)

## További cikkek

-   [Eszközök tervezése AI-ágenseknek: nevek, leírások, sémák és hibaüzenetek](https://balazscsorba.com/hu/blog/agent-tool-design-descriptions-errors)
-   [Legacy kódbázis migrálása coding agentekkel: strangler fig playbook](https://balazscsorba.com/hu/blog/coding-agents-legacy-codebase-migration)
-   [Háttérben futó kódoló ügynökök: PR-ek, sorok és review](https://balazscsorba.com/hu/blog/background-agents-async-pr-workflow)
-   [Kontextusromlás hosszan futó ügynököknél: törlés, tömörítés, memória és al-ügynökök](https://balazscsorba.com/hu/blog/context-rot-compaction-long-running-agents)

## Pont erre van szükséged?

Írj a projektedről vagy a pozícióról – szívesen hallok felőled.

[Lépj velem kapcsolatba](mailto:contact@balazscsorba.com) [Kapcsolódjunk LinkedInen](https://www.linkedin.com/in/balazs-csorba)
