[{"data":1,"prerenderedAt":718},["ShallowReactive",2],{"tool-langgraph-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":22,"sources":31,"cover":50,"og":51,"expertise":52,"locales":53,"lang":55,"title":57,"description":58,"coverAlt":59,"url":24,"pricing":60,"kind":61,"metaTitle":62,"takeaways":63,"faq":69,"toc":82,"blocks":107,"others":484},"langgraph","2026-07-17",10,"agents",[9,10,11,12,13],"LangGraph","Agent orchestration","Durable execution","Human-in-the-loop","State machines",[4,15,16,17,18,19,20,21],"langgraph vs langchain","langgraph checkpointer","durable execution agents","langgraph postgres checkpointer","langsmith pricing","langgraph human in the loop","agent framework comparison",[23,25,28],{"name":9,"url":24},"https:\u002F\u002Fwww.langchain.com\u002Flanggraph",{"name":26,"url":27},"Workflow engine","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWorkflow_engine",{"name":29,"url":30},"Apache Beam","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FApache_Beam",[32,35,38,41,44,47],{"title":33,"url":34},"LangGraph documentation: overview","https:\u002F\u002Fdocs.langchain.com\u002Foss\u002Fpython\u002Flanggraph\u002Foverview",{"title":36,"url":37},"LangGraph documentation: checkpointers and durability modes","https:\u002F\u002Fdocs.langchain.com\u002Foss\u002Fpython\u002Flanggraph\u002Fcheckpointers",{"title":39,"url":40},"LangGraph documentation: interrupts and the rules of interrupts","https:\u002F\u002Fdocs.langchain.com\u002Foss\u002Fpython\u002Flanggraph\u002Finterrupts",{"title":42,"url":43},"langchain-ai\u002Flanggraph on GitHub","https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flanggraph",{"title":45,"url":46},"LangSmith pricing","https:\u002F\u002Fwww.langchain.com\u002Fpricing",{"title":48,"url":49},"Temporal: LangGraph integration for Python reaches public preview (16 July 2026)","https:\u002F\u002Ftemporal.io\u002Fblog\u002Ftemporal-langgraph-plugin-durable-execution","\u002Fimages\u002Fblog\u002Flanggraph\u002Fcover.webp","\u002Fimages\u002Fblog\u002Flanggraph\u002Fog.jpg","ai-engineer",[54,55,56],"en","de","hu","LangGraph: eine Low-Level-Laufzeit für zustandsbehaftete Agenten","Was LangGraph einem Produktionsagenten bringt: geprüfte Supersteps, Interrupts und Streaming, dazu die Grenzen des Dauerhaftigkeitsmodells und die Kosten von LangSmith.","Diagramm: ein LangGraph-Superstep-Zyklus mit Agent-Knoten, Werkzeugknoten, Superstep-Grenze und einem Checkpointer, der den Zustand festschreibt und auf demselben Thread fortsetzt.","Apache-2.0 · LangSmith paid","Agent framework","LangGraph: eine Low-Level-Agentenlaufzeit · Balázs Csorba",[64,65,66,67,68],"LangGraph ist eine Orchestrierungslaufzeit, kein Agenten-Framework: eine geprüfte Zustandsmaschine und sonst nichts. Die 1.2-Reihe bringt Timeouts je Knoten, Fehlerbehandlung, einen schlankeren Kanaltyp und eine Streaming-API in Version 3.","Dauerhaftigkeit endet an der Prozessgrenze. Ein Checkpointer stellt den Zustand nach einem Absturz wieder her, aber etwas außerhalb der Bibliothek muss den Absturz bemerken und den Graphen mit der richtigen thread_id erneut betreten.","interrupt() spult den ganzen Knoten zurück, nicht die Zeile. Jeder Seiteneffekt vor einem Interrupt läuft bei jedem Fortsetzen erneut, wodurch Idempotenz zur Entwurfsbedingung wird.","Die Bibliothek steht unter der MIT-Lizenz, 1.2.14 war im Oktober 2026 aktuell auf PyPI; das Geld steckt in LangSmith, wo Developer mit 5.000 Basis-Traces pro Monat kostenlos ist und Plus 39 US-Dollar pro Sitz kostet.","Die drei Dauerhaftigkeitsmodi sind ein echter Performance-Hebel: sync schreibt jeden Checkpoint vor dem nächsten Schritt, exit schreibt erst am Ende.",[70,73,76,79],{"q":71,"a":72},"Ist LangGraph im Produktivbetrieb kostenlos?","Die Bibliothek steht unter MIT, auch die separat ausgelieferten Checkpointer-Pakete. LangSmith ist optional: Developer ist für einen Sitz mit 5.000 Basis-Traces pro Monat kostenlos, Plus kostet 39 US-Dollar pro Sitz und Monat bei 10.000 Traces. Nichts in LangGraph verlangt ein LangSmith-Konto, allerdings ist das Debugging eines Mehrknoten-Laufs ohne Traces nahezu Raten.",{"q":74,"a":75},"Brauche ich LangGraph für eine einfache Agentenschleife?","Wahrscheinlich nicht. Eine Werkzeugschleife ist eine while-Schleife um einen Modellaufruf und kostet rund zwanzig Zeilen. LangGraph verdient seinen Platz, wenn ein Lauf einen Neustart überleben, auf einen Menschen warten oder an einem benannten Schritt fortsetzen muss, denn eine einfache Schleife kann nichts davon abbilden.",{"q":77,"a":78},"Was bedeutet es, dass Checkpointing keine dauerhafte Ausführung ist?","Ein Checkpointer schreibt den Graphenzustand bei jedem Superstep; dauerhafte Ausführung bedeutet, dass der Lauf selbst weiterläuft. Nichts in der Bibliothek startet einen toten Lauf neu und nichts verhindert, dass zwei Prozesse denselben Thread gleichzeitig fortsetzen. Temporal hat im Juli 2026 ein LangGraph-Plugin in der Public Preview veröffentlicht, das den Graphen als Temporal-Workflow ausführt und genau diese Lücke schließt.",{"q":80,"a":81},"Was kostet das Checkpointing tatsächlich?","Einen Datenbank-Write pro Knoten und Superstep, mit der Zustandsnutzlast. Die Schreiblatenz hängt vom Dauerhaftigkeitsmodus ab, der Speicherplatz ist aber das größere Problem: Die Dokumentation empfiehlt einen geplanten Job, der Checkpoints älter als ein Aufbewahrungsfenster löscht, weil sie unbegrenzt wachsen.",[83,86,89,92,95,98,101,104],{"id":84,"title":85},"what-it-is","Was es ist",{"id":87,"title":88},"how-it-works","Wie es funktioniert",{"id":90,"title":91},"getting-started","Erste Schritte",{"id":93,"title":94},"persistence","Persistenz und Dauerhaftigkeit",{"id":96,"title":97},"where-it-falls-short","Wo es schwächelt",{"id":99,"title":100},"pricing","Was es kostet",{"id":102,"title":103},"verdict","Urteil",{"id":105,"title":106},"sources","Quellen",[108,112,115,118,121,161,175,176,179,188,195,198,199,202,204,215,228,229,232,246,301,304,317,321,326,347,352,353,359,404,407,410,411,414,422,425,426,429,444,456,457],{"type":109,"content":110},"paragraph",[111],"LangGraph ist der Teil des LangChain-Stacks, der den Agenten ausführt. Knoten und Kanten werden über ein gemeinsames Zustandsobjekt deklariert, und die Laufzeit durchläuft den Graphen Schritt für Schritt, einen Superstep auf einmal, und schreibt danach jeweils einen Checkpoint, damit der Lauf angehalten, fortgesetzt und inspiziert werden kann. Das ist das gesamte Produkt, und das Urteil folgt daraus: die beste quelloffene Antwort auf eine enge Frage, und wer diese enge Frage beantwortet haben will, sollte zugreifen.",{"type":109,"content":113},[114],"Es liegt unterhalb des Agenten und oberhalb des Modells. LangChain-Agentenabstraktionen und das neuere Paket deepagents bauen darauf auf; CrewAI, LlamaIndex und das OpenAI Agents SDK gehen dieselbe Aufgabe von der anderen Seite mit mehr eingebauten Meinungen an. Gemessen an einer selbst geschriebenen Schleife zählt der Beitrag zur Persistenz, nicht zur Orchestrierung.",{"type":116,"level":117,"id":84,"text":85},"heading",2,{"type":109,"content":119},[120],"Die aktuelle Release-Reihe ist langgraph 1.2.x. Version 1.2.14 war im Oktober 2026 auf PyPI verfügbar und verlangt Python 3.10 oder neuer. Das Repository nennt Pregel und Apache Beam als Vorbilder und NetworkX als Vorbild für die öffentliche Schnittstelle, und es sagt ausdrücklich, dass die Bibliothek ohne LangChain selbst funktioniert.",{"type":122,"ordered":123,"items":124},"list",false,[125,127,134,136,141,155],[126],"Ein Graph aus Knoten über einem Zustandsobjekt. Knoten liefern Teilaktualisierungen, und Kanal-Reducer entscheiden, wie zwei gleichzeitige Schreibvorgänge auf denselben Schlüssel zusammengeführt werden.",[128,129,133],"Checkpointer, die pro Superstep einen Zustands-Snapshot ablegen und Läufe in Threads organisieren, adressiert über ",{"tag":130,"children":131},"code",[132],"thread_id",".",[135],"Stores, eine eigene Schlüssel-Wert-Schicht über Threads hinweg für Langzeitgedächtnis wie Nutzerpräferenzen und geteilte Referenzdaten.",[137,140],{"tag":130,"children":138},[139],"interrupt()",", das einen Knoten an beliebiger Stelle im Graphen anhält und die Kontrolle an den Aufrufer zurückgibt, bis der Graph fortgesetzt wird.",[142,143,146,147,150,151,154],"Dauerhaftigkeitsmodi namens ",{"tag":130,"children":144},[145],"exit",", ",{"tag":130,"children":148},[149],"async"," und ",{"tag":130,"children":152},[153],"sync",", die pro Aufruf gesetzt werden.",[156,157,160],"Typisiertes Streaming. Ab 1.2 liefert ",{"tag":130,"children":158},[159],"stream_events(..., version=\"v3\")"," getrennte Projektionen für Nachrichten, Werte, Interrupts und die endgültige Ausgabe.",{"type":109,"content":162},[163,164,167,168,150,171,174],"Zwei APIs erreichen dieselbe Laufzeit. Die Graph-API baut auf ",{"tag":130,"children":165},[166],"StateGraph"," auf und drückt den Kontrollfluss als Kanten aus. Die Functional-API drückt ihn als gewöhnliches Python aus, dekoriert mit ",{"tag":130,"children":169},[170],"@entrypoint",{"tag":130,"children":172},[173],"@task",". Die funktionale liest sich besser im Pull Request; die graphische zeichnet sich als Bild, was mehr zählt als es klingt, wenn ein Betriebsteam nachts um drei entscheiden muss, was der Agent tun wird.",{"type":116,"level":117,"id":87,"text":88},{"type":109,"content":177},[178],"Die Ausführung folgt dem Pregel-Modell. Jeder ausführungsbereite Knoten startet gemeinsam in einem Superstep; wenn alle fertig sind, werden ihre Schreibvorgänge als ein einziger Checkpoint festgeschrieben, und der nächste Superstep wird aus dem aktualisierten Zustand geplant. Darum sind ausstehende Schreibvorgänge wichtig: Wirft ein Knoten in einem Superstep, sind die Schreibvorgänge seiner erfolgreichen Geschwister bereits dauerhaft, und ein Fortsetzen führt sie nicht erneut aus. Teure Modellaufrufe in einem Fan-out werden genau einmal bezahlt.",{"type":180,"attrs":181,"inner":185,"caption":186},"diagram",{"viewBox":182,"role":183,"aria-labelledby":184},"0 0 720 330","img","lg1-t lg1-d","\u003Ctitle id=\"lg1-t\">Ein LangGraph-Superstep und sein Checkpoint\u003C\u002Ftitle>\u003Cdesc id=\"lg1-d\">Knoten laufen innerhalb eines Supersteps parallel, der Checkpointer schreibt den Zustand am Ende des Supersteps fest, und ein Fortsetzen betritt den Graphen erneut mit derselben thread_id. Drei Dauerhaftigkeitsmodi bestimmen, wann geschrieben wird: am Ende, während des nächsten Schritts oder vor dem nächsten Schritt.\u003C\u002Fdesc>\u003Ctext x=\"20\" y=\"26\" class=\"d-title\">SUPERSTEP CYCLE\u003C\u002Ftext>\u003Crect x=\"20\" y=\"44\" width=\"180\" height=\"58\" rx=\"8\" class=\"d-accent\" \u002F>\u003Ctext x=\"110\" y=\"79\" text-anchor=\"middle\" class=\"d-text\">agent node\u003C\u002Ftext>\u003Cpath d=\"M200 73H246\" class=\"d-line\" \u002F>\u003Cpath d=\"M246 69L252 73L246 77Z\" class=\"d-head\" \u002F>\u003Crect x=\"256\" y=\"44\" width=\"180\" height=\"58\" rx=\"8\" class=\"d-sky\" \u002F>\u003Ctext x=\"346\" y=\"79\" text-anchor=\"middle\" class=\"d-text\">tool node\u003C\u002Ftext>\u003Cpath d=\"M346 102V118H110V106\" class=\"d-line\" \u002F>\u003Cpath d=\"M106 110L110 104L114 110Z\" class=\"d-head\" \u002F>\u003Cpath d=\"M20 142H700\" class=\"d-line d-dash\" \u002F>\u003Ctext x=\"20\" y=\"162\" class=\"d-label\">SUPERSTEP BOUNDARY\u003C\u002Ftext>\u003Cpath d=\"M150 106V174\" class=\"d-line\" \u002F>\u003Cpath d=\"M146 170L150 176L154 170Z\" class=\"d-head\" \u002F>\u003Ctext x=\"160\" y=\"140\" class=\"d-small\">commit\u003C\u002Ftext>\u003Crect x=\"20\" y=\"180\" width=\"280\" height=\"58\" rx=\"8\" class=\"d-mint\" \u002F>\u003Ctext x=\"160\" y=\"215\" text-anchor=\"middle\" class=\"d-text\">checkpointer\u003C\u002Ftext>\u003Ctext x=\"160\" y=\"256\" text-anchor=\"middle\" class=\"d-small\">state + pending writes, keyed by thread_id\u003C\u002Ftext>\u003Cpath d=\"M300 205H336V150\" class=\"d-line-accent d-dash\" \u002F>\u003Cpath d=\"M332 154L336 148L340 154Z\" class=\"d-head-accent\" \u002F>\u003Ctext x=\"344\" y=\"200\" class=\"d-small\">resume: same thread_id\u003C\u002Ftext>\u003Ctext x=\"470\" y=\"180\" class=\"d-label\">DURABILITY MODE\u003C\u002Ftext>\u003Ctext x=\"470\" y=\"206\" class=\"d-small\">exit &#183; written on finish\u003C\u002Ftext>\u003Ctext x=\"470\" y=\"228\" class=\"d-small\">async &#183; written during the next step\u003C\u002Ftext>\u003Ctext x=\"470\" y=\"250\" class=\"d-small\">sync &#183; written before the next step\u003C\u002Ftext>\u003Ctext x=\"20\" y=\"300\" class=\"d-small\">A node that fails mid-superstep: the successful siblings keep their writes and are not re-run on resume.\u003C\u002Ftext>",[187],"Das Commit landet auf einer Superstep-Grenze, nicht nach jedem Knoten. Deshalb zwingt ein fehlgeschlagener Knoten die erfolgreichen desselben Supersteps nicht zum erneuten Lauf, und deshalb ist der Dauerhaftigkeitsmodus ein Latenzregler und kein Korrektheitsschalter.",{"type":109,"content":189},[190,191,194],"Nebenläufigkeit ist der Ort mit den scharfen Kanten. Zwei Knoten, die im selben Superstep denselben Zustandsschlüssel schreiben, brauchen einen Reducer. LangGraph liefert ",{"tag":130,"children":192},[193],"add"," und einen Last-Value-Standard, den Rest schreibt man von Hand. Ein Fehler hier löst nichts aus: einer der beiden Schreibvorgänge verschwindet lautlos, und das Symptom zeigt sich weit später als eine Entscheidung, die der Agent nicht erklären kann.",{"type":109,"content":196},[197],"Der Zustand ist auch die Speicherrechnung. Jeder Superstep schreibt das gesamte Zustandsobjekt neu, ein Schlüssel, der abgerufene Dokumente sammelt, macht damit jeden Schritt zu einem vollständigen Payload-Write. Den Zustand an der Knotengrenze ausdünnen und dauerhafte Artefakte außerhalb des Graphen halten.",{"type":116,"level":117,"id":90,"text":91},{"type":109,"content":200},[201],"Der kleinste Graph, den man schreiben sollte, ist ein Genehmigungsablauf, denn dafür ist die Laufzeit gedacht. Dieser hält für einen Menschen an, setzt auf demselben Thread fort und legt den Seiteneffekt hinter den Interrupt, damit er genau einmal ausgeführt wird.",{"type":130,"code":203},"from typing import Literal, TypedDict\nfrom langgraph.checkpoint.postgres import PostgresSaver\nfrom langgraph.graph import END, START, StateGraph\nfrom langgraph.types import Command, interrupt\n\nclass State(TypedDict):\n    request: str\n    decision: str | None\n\ndef ask(state: State) -> Command[Literal[\"send\", \"cancel\"]]:\n    if interrupt({\"question\": \"Send this?\", \"details\": state[\"request\"]}):\n        return Command(goto=\"send\")\n    return Command(goto=\"cancel\")\n\nbuilder = StateGraph(State)\nbuilder.add_node(\"ask\", ask)\nbuilder.add_node(\"send\", lambda s: {\"decision\": \"sent\"})\nbuilder.add_node(\"cancel\", lambda s: {\"decision\": \"cancelled\"})\nbuilder.add_edge(START, \"ask\")\nbuilder.add_edge(\"send\", END)\nbuilder.add_edge(\"cancel\", END)\n\nwith PostgresSaver.from_conn_string(\"postgresql:\u002F\u002F…\") as saver:\n    saver.setup()\n    graph = builder.compile(checkpointer=saver)\n    config = {\"configurable\": {\"thread_id\": \"req-42\"}}\n    print(graph.invoke({\"request\": \"refund 8891\"}, config, durability=\"sync\")[\"__interrupt__\"])\n    print(graph.invoke(Command(resume=True), config, durability=\"sync\")[\"decision\"])",{"type":109,"content":205},[206,207,210,211,214],"Zwei Details in diesem Snippet wiegen schwerer als der Rest. ",{"tag":130,"children":208},[209],"PostgresSaver.setup()"," legt die Checkpoint-Tabellen einmal beim Deployment an, nicht einmal pro Prozess. Und ",{"tag":130,"children":212},[213],"durability=\"sync\""," ist für einen Genehmigungsablauf die richtige Wahl: der Write ist abgeschlossen, bevor der nächste Schritt startet, ein Absturz zwei Sekunden später kann die gerade getroffene Entscheidung also nicht verlieren.",{"type":216,"variant":217,"title":218,"body":219},"callout","note","Eine Laufzeit, zwei APIs",[220],[221,222,224,225,227],"Die Functional-API erreicht dasselbe Checkpoint-Format. Den Workflow mit ",{"tag":130,"children":223},[170]," dekorieren, die Arbeitseinheiten mit ",{"tag":130,"children":226},[173],", und LangGraph den Graphen aus dem Kontrollfluss ableiten lassen. Beides in einer Codebasis zu mischen funktioniert, und genau das macht es möglich, einfach anzufangen und nur dort expliziter zu werden, wo der Trace schwer lesbar ist.",{"type":116,"level":117,"id":93,"text":94},{"type":109,"content":230},[231],"Persistenz ist der Grund für die Einführung des Frameworks und zugleich die Stelle, an der die Marketing-Sprache unscharf wird. Ein Checkpointer schreibt einen Snapshot. Dauerhafte Ausführung bedeutet, dass der Lauf weiterläuft. LangGraph macht das Erste; das Zweite bleibt bei dem, der den Prozess betreibt.",{"type":122,"ordered":123,"items":233},[234,238,242],[235,237],{"tag":130,"children":236},[145]," — es wird nichts geschrieben, bis der Lauf endet, fehlschlägt oder unterbrochen wird. Am schnellsten, ein Prozessabsturz verliert den Lauf.",[239,241],{"tag":130,"children":240},[149]," — die Schreibvorgänge laufen, während der nächste Schritt ausgeführt wird. Der Standard-Kompromiss: gute Latenz und ein kleines Fenster, in dem ein Absturz Zustand verliert.",[243,245],{"tag":130,"children":244},[153]," — jeder Checkpoint wird festgeschrieben, bevor der nächste Schritt beginnt. Höchste Dauerhaftigkeit, der Write liegt auf dem kritischen Pfad.",{"type":247,"head":248,"rows":255},"table",[249,251,253],[250],"Paket",[252],"Backend",[254],"Wo es passt",[256,265,274,283,292],[257,261,263],[258],{"tag":130,"children":259},[260],"langgraph-checkpoint",[262],"Im Speicher",[264],"Tests und Experimente; Teil von langgraph",[266,270,272],[267],{"tag":130,"children":268},[269],"langgraph-checkpoint-sqlite",[271],"SQLite",[273],"Lokale Abläufe und Ein-Prozess-Anwendungen",[275,279,281],[276],{"tag":130,"children":277},[278],"langgraph-checkpoint-postgres",[280],"PostgreSQL",[282],"Produktion; darauf läuft auch LangSmith Deployment",[284,288,290],[285],{"tag":130,"children":286},[287],"langgraph-checkpoint-mongodb",[289],"MongoDB",[291],"Teams mit MongoDB als Standard",[293,297,299],[294],{"tag":130,"children":295},[296],"langchain-azure-cosmosdb",[298],"Cosmos DB",[300],"Azure-Umgebungen mit Entra-ID-Authentifizierung",{"type":109,"content":302},[303],"Checkpoints wachsen unbegrenzt. Die Persistenz-Dokumentation sagt das direkt und schlägt einen geplanten Job vor, der Checkpoints älter als ein Aufbewahrungsfenster löscht. Teams, die das überspringen, merken es an einer Datenbank, die still zur größten Komponente im Stack geworden ist, und das ist ein schlechter Nachmittag.",{"type":216,"variant":305,"title":306,"body":307},"warn","Fortsetzen ist Aufgabe des Aufrufers",[308],[309,310,313,314,316],"Stirbt der Prozess, überlebt der Checkpoint, der Lauf nicht. Etwas muss den Fehler erkennen, entscheiden, wo wieder einzusteigen ist, und ",{"tag":130,"children":311},[312],"invoke(None, config)"," mit der richtigen ",{"tag":130,"children":315},[132]," aufrufen. Nichts in der Bibliothek tut das, und nichts verhindert, dass zwei Prozesse denselben Thread gleichzeitig fortsetzen.",{"type":116,"level":318,"id":319,"text":320},3,"interrupts","Interrupts und die Wiedergaberegeln",{"type":109,"content":322},[323,325],{"tag":130,"children":324},[139]," ist das meistgenutzte Feature und das am häufigsten falsch gelesene. Es hält nicht an einer Zeile an. Es löst eine Ausnahme aus, wickelt sich bis zur Laufzeit ab, schreibt den Zustand und wartet unbegrenzt. Setzt der Graph den Lauf fort, startet die Laufzeit den gesamten Knoten von oben neu und ordnet die Wiederaufnahme-Werte strikt nach Index den Interrupt-Aufrufen zu. Jeder Produktionsfehler in diesem Bereich entsteht aus dem Ignorieren eines dieser beiden Sätze.",{"type":122,"ordered":123,"items":327},[328,337,339,341],[329,330,332,333,336],"Ein ",{"tag":130,"children":331},[139],"-Aufruf gehört niemals in ein blankes ",{"tag":130,"children":334},[335],"try\u002Fexcept",". Die Pause ist eine geworfene Ausnahme, ein breiter Handler schluckt sie, und der Graph hält überhaupt nicht an.",[338],"Interrupts in einem Knoten nicht bedingt überspringen und nicht umsortieren. Die Zuordnung erfolgt nach Index, eine geänderte Reihenfolge verbraucht ohne jede Fehlermeldung den falschen Wert.",[340],"Jeden Seiteneffekt vor einem Interrupt idempotent machen, ihn hinter die Pause verschieben oder in einen eigenen Knoten auslagern. Die Dokumentation sagt ausdrücklich, dass ein vor dem Interrupt angelegter Datensatz bei jedem Fortsetzen erneut angelegt wird.",[342,343,346],"",{"tag":130,"children":344},[345],"while True","-Schleifen um einen Interrupt in einem Knoten vermeiden. Jedes Fortsetzen spult die früheren Iterationen erneut ab, die Arbeit in der Schleife wächst also exponentiell.",{"type":216,"variant":305,"title":348,"body":349},"Der Fehlermodus der Doppelbuchung",[350],[351],"Ein Knoten, der eine Auditzeile schreibt, dann um Genehmigung bittet und nach einem Neustart fortgesetzt wird, schreibt diese Zeile erneut. Der Agent ist nicht falsch, die Testsuite ist grün, und der zweite Eintrag taucht in der Produktion auf. Den Seiteneffekt in einen eigenen Knoten hinter den Interrupt legen und den Checkpoint Zustand tragen lassen, nicht Effekte.",{"type":116,"level":117,"id":96,"text":97},{"type":109,"content":354},[355,356,358],"Die Schwächen kommen zuerst, weil sie entscheiden, ob das Framework passt. Ein Lauf lebt in einem Prozess. In der quelloffenen Bibliothek gibt es keinen Supervisor, keine Aufgabenwarteschlange und keinen Worker-Pool; stirbt der Prozess, ist der Lauf tot, bis ein System außerhalb von LangGraph es bemerkt und erneut einsteigt. Menschliche Prüfung hat dieselbe Form: ",{"tag":130,"children":357},[139]," hält den Lauf an, und das Ding zu bauen, das eine Genehmigung bemerkt und den richtigen Thread aufweckt, ist nun das eigene Problem.",{"type":247,"head":360,"rows":367},[361,362,363,365],[342],[9],[364],"CrewAI",[366],"LlamaIndex",[368,377,386,395],[369,371,373,375],[370],"Steuermodell",[372],"Expliziter Graph oder Functional API",[374],"Rollen und Aufgaben",[376],"Komponierbare Pipelines und Indizes",[378,380,382,384],[379],"Persistenz",[381],"Checkpoints pro Superstep, Prozess betreibt man selbst",[383],"Speicher- und Wissensabstraktionen",[385],"Checkpointing in Workflow- und Index-Knoten",[387,389,391,393],[388],"Am stärksten bei",[390],"Langen, fortsetzbaren, prüfbaren Läufen",[392],"Schnellen Multi-Agent-Prototypen",[394],"Retrieval-lastigen Anwendungen",[396,398,400,402],[397],"Was es überlässt",[399],"Prompts, Werkzeugschleife, Retries, Supervision",[401],"Feine Kontrolle über den Lauf selbst",[403],"Orchestrierung an den Retrieval gebunden",{"type":109,"content":405},[406],"Die zweite Schwäche ist die Ergonomie. LangGraph abstrahiert nichts über Prompts oder Architektur, was ein Vorteil ist, wenn der Agent das Produkt ist, und ein Hindernis, wenn nicht. Das Framework sagt nicht, wie ein Prompt aufzubauen ist, wann mit Werkzeugaufrufen aufzuhören ist oder wie viele Retries ein Schritt verdient. Die meisten Teams verbringen die ersten Wochen eines LangGraph-Projekts damit, die Werkzeugschleife neu zu erfinden, also genau das, was eine höhere Abstraktion geliefert hätte.",{"type":109,"content":408},[409],"Die dritte ist die Bindung an den Hersteller, und sie ist milder als üblicher behauptet. Die Laufzeit steht unter MIT, läuft im eigenen Prozess und schreibt in die eigene Datenbank, es werden also keine Daten als Pfand gehalten. Die echte Abhängigkeit entsteht, sobald Graphen über LangSmith deployed werden: Deployment, Assistants-API und Cron-Planung sind LangChain-Oberflächen, und der Umstieg später ist echte Arbeit.",{"type":116,"level":117,"id":99,"text":100},{"type":109,"content":412},[413],"LangGraph ist kostenlos. Bei LangSmith liegt das Geld, abgerechnet pro Sitz mit metrikbasierter Nutzung obendrauf: Developer ist für einen Sitz mit 5.000 Basis-Traces pro Monat kostenlos, Plus kostet 39 US-Dollar pro Sitz und Monat mit 10.000 Basis-Traces sowie Zugang zu Deployment, Engine und Sandboxes, und Enterprise wird auf Anfrage bepreist, mit hybrider oder vollständig selbst gehosteter Installation.",{"type":122,"ordered":123,"items":415},[416,418,420],[417],"Die Nutzung wird in LangChain Standard Units zu je 1 US-Dollar abgerechnet, eine serverlose Deployment zusätzlich über Rechenzeit, Arbeitsspeicher, Datenbankrechenzeit und Datenbankspeicher sowie die Zeit, in der die Datenbank live ist.",[419],"Die Aufbewahrung von Traces beträgt 14 Tage für einen Basis-Trace und 180 Tage für einen erweiterten Trace, der gesondert berechnet wird.",[421],"LangSmith gibt an, nicht mit Kundendaten zu trainieren, und bietet auf der Enterprise-Stufe eine selbst gehostete Datenebene für Teams, deren eigene Kontrollen das verlangen.",{"type":109,"content":423},[424],"Das Trace-Kontingent ist die Zahl, auf die es ankommt. Ein Agentenlauf ist ein Trace, und ein Lauf, der fünf Werkzeuge über zehn Knoten aufruft, erzeugt einen Graphen von Spans darin. Jede Produktionsanfrage zu tracen, verbraucht 5.000 oder 10.000 Traces erstaunlich schnell, und in diesem Moment hört die Rechnung auf, ein Randposten zu sein. Sampling nach Umgebung ist die billigste Gegenmaßnahme.",{"type":116,"level":117,"id":102,"text":103},{"type":109,"content":427},[428],"LangGraph ist eine gute Antwort auf eine Frage: wie hält man einen langen Agentenlauf über einen Absturz, ein Deployment oder eine menschliche Genehmigung hinweg am Leben. Innerhalb dieser Grenze ist die Arbeit sorgfältig: das Checkpoint-Format ist dokumentiert, ausstehende Schreibvorgänge sind eine wirklich gute Idee, und die Interrupt-Semantik ist so klar beschrieben, dass man sie beim Entwurf berücksichtigen kann. Außerhalb ist die Bibliothek eine Laufzeit ohne Meinungen, und alles, was sie nicht entscheidet, wird um drei Uhr nachts zur Arbeit der lesenden Person.",{"type":122,"ordered":430,"items":431},true,[432,434,436,438,440,442],[433],"Einführen, wenn ein Lauf einen Neustart überleben muss: eine Genehmigungswarteschlange, ein Forschungsauftrag über Stunden, ein Agent, der auf einen Menschen wartet.",[435],"Einführen, wenn der Lauf prüfbar sein muss. Knoten und Kanten sind der günstigste Weg, einem Nicht-Ingenieur genau zu zeigen, was der Agent tun wird.",[437],"Einführen, wenn es darauf ankommt, deterministische und modellgetriebene Schritte zu mischen, und die Grenze dazwischen exakt und testbar sein muss.",[439],"Auslassen für eine Werkzeugschleife, die in drei Schritten fertig ist. Zwanzig Zeilen Python sind billiger zu besitzen und schneller zu debuggen.",[441],"Nicht als Dauerhaftigkeitsschicht betrachten. Wenn ein stiller Totalausfall Bestellungen kostet, einen Supervisor ergänzen oder den Graphen auf Temporal betreiben, dessen LangGraph-Plugin im Juli 2026 in die Public Preview ging.",[443],"Nicht einführen, ohne die Interrupt-Regeln einmal gelesen zu haben. Die Wiedergabesemantik ist der Teil, der in der Produktion doppelte Seiteneffekte erzeugt.",{"type":445,"content":446},"quote",[447,451,452],{"tag":448,"children":449},"em",[450],"LangGraph ist ein einfacher, effizienter Weg, einen Agenten auszudrücken: das Graphmodell ist klar, das Ökosystem ist reichhaltig, und Prototypen kommen schnell zusammen. Aber es ist keine vollständige Produktionsgeschichte."," ",{"tag":453,"children":454},"strong",[455],"Temporal, zum LangGraph-Plugin, Juli 2026",{"type":116,"level":117,"id":105,"text":106},{"type":122,"ordered":430,"items":458},[459,464,468,472,476,480],[460],{"tag":461,"href":34,"children":462},"a",[463],"LangGraph-Dokumentation: Überblick",[465],{"tag":461,"href":37,"children":466},[467],"LangGraph-Dokumentation: Checkpointer und Dauerhaftigkeitsmodi",[469],{"tag":461,"href":40,"children":470},[471],"LangGraph-Dokumentation: Interrupts und die Regeln dazu",[473],{"tag":461,"href":43,"children":474},[475],"langchain-ai\u002Flanggraph auf GitHub",[477],{"tag":461,"href":46,"children":478},[479],"LangSmith-Preise",[481],{"tag":461,"href":49,"children":482},[483],"Temporal: LangGraph-Integration für Python erreicht die Public Preview (16. Juli 2026)",[485,550,599,664],{"slug":486,"published":487,"minutes":488,"category":7,"tags":489,"keywords":494,"about":501,"sources":505,"cover":542,"og":543,"expertise":52,"locales":544,"lang":55,"title":545,"description":546,"coverAlt":547,"url":508,"pricing":548,"kind":549},"mcp-reference-servers","2026-09-25",9,[490,491,492,493],"MCP","Reference servers","Tool protocol","Server SDKs",[495,496,497,498,499,500],"mcp reference servers","modelcontextprotocol servers github","write an mcp server","mcp server examples","mcp server sdk","mcp server security",[502],{"name":503,"url":504},"Model Context Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_Context_Protocol",[506,509,512,515,518,521,524,527,530,533,536,539],{"title":507,"url":508},"MCP reference servers repository","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers",{"title":510,"url":511},"Repository README and server list","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FREADME.md",{"title":513,"url":514},"Security policy","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FSECURITY.md",{"title":516,"url":517},"Release process and trusted publishing","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FRELEASING.md",{"title":519,"url":520},"Filesystem server README","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002Fsrc\u002Ffilesystem\u002FREADME.md",{"title":522,"url":523},"Everything server feature list","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002Fsrc\u002Feverything\u002Fdocs\u002Ffeatures.md",{"title":525,"url":526},"MCP Registry","https:\u002F\u002Fregistry.modelcontextprotocol.io\u002F",{"title":528,"url":529},"Archived reference servers","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers-archived",{"title":531,"url":532},"Model Context Protocol documentation","https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"title":534,"url":535},"TypeScript MCP SDK","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Ftypescript-sdk",{"title":537,"url":538},"Python MCP SDK","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fpython-sdk",{"title":540,"url":541},"FastMCP on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Ffastmcp\u002F","\u002Fimages\u002Fblog\u002Fmcp-reference-servers\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fmcp-reference-servers\u002Fog.jpg",[54,55,56],"MCP-Referenzserver: was sie zeigen und was sie auslassen","Ein Review von modelcontextprotocol\u002Fservers: sieben Referenzserver, was jeder einzelne lehrt, die SDK-Versionen dahinter und warum keiner in die Produktion gehört.","Sieben Referenzserver, die von einem einzigen MCP-Client über Stdio ausgefächert werden","MIT","Protocol tooling",{"slug":551,"published":552,"minutes":6,"category":7,"tags":553,"keywords":559,"about":567,"sources":574,"cover":591,"og":592,"expertise":52,"locales":593,"lang":55,"title":594,"description":595,"coverAlt":596,"url":597,"pricing":598,"kind":554},"aider","2026-09-23",[554,555,556,557,558],"Coding agent","Terminal","Git workflow","BYO key","Open source",[551,560,561,562,563,564,565,566],"aider vs claude code","aider polyglot benchmark","ai pair programming terminal","aider leaderboard","open source coding agent","aider architect mode","aider install",[568,571],{"name":569,"url":570},"Aider","https:\u002F\u002Faider.chat\u002F",{"name":572,"url":573},"Aider on GitHub","https:\u002F\u002Fgithub.com\u002FAider-AI\u002Faider",[575,577,580,583,586,588],{"title":576,"url":570},"Aider website",{"title":578,"url":579},"Aider LLM leaderboards","https:\u002F\u002Faider.chat\u002Fdocs\u002Fleaderboards\u002F",{"title":581,"url":582},"Aider linting and testing","https:\u002F\u002Faider.chat\u002Fdocs\u002Fusage\u002Flint-test.html",{"title":584,"url":585},"Aider token limits","https:\u002F\u002Faider.chat\u002Fdocs\u002Ftroubleshooting\u002Ftoken-limits.html",{"title":587,"url":573},"Aider repository on GitHub",{"title":589,"url":590},"aider-chat on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Faider-chat\u002F","\u002Fimages\u002Fblog\u002Faider\u002Fcover.webp","\u002Fimages\u002Fblog\u002Faider\u002Fog.jpg",[54,55,56],"Aider im Test: Pair Programming im Terminal, git zuerst","Ein Test von Aider 0.86.2, ein Apache-2.0-Terminal-Pair-Programmierer mit ehrlichem Benchmark — und ohne Release seit acht Monaten.","Coverbild für den Aider-Test: eine Terminalsitzung, die aus einer einzigen Anfrage eine Reihe von git Commits macht","https:\u002F\u002Faider.chat","Free · BYO API key",{"slug":600,"published":601,"minutes":6,"category":7,"tags":602,"keywords":607,"about":616,"sources":626,"cover":657,"og":658,"expertise":52,"locales":659,"lang":55,"title":660,"description":661,"coverAlt":662,"url":629,"pricing":663,"kind":61},"openai-agents-sdk","2026-09-11",[603,604,605,490,606],"Agent runtime","Tracing","Guardrails","Python",[608,609,610,611,612,613,614,615],"openai agents sdk","openai agents sdk vs langgraph","python agent framework comparison","openai agents sdk guardrails","agent run tracing tool calls","openai agents sdk human in the loop","openai-agents pypi","agents sdk vs responses api",[617,620,623],{"name":618,"url":619},"Model context protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_context_protocol",{"name":621,"url":622},"Software framework","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_framework",{"name":624,"url":625},"Agentic AI","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAgentic_AI",[627,630,633,636,639,642,645,648,651,654],{"title":628,"url":629},"OpenAI Agents SDK documentation: Intro, and Agents SDK or Responses API","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002F",{"title":631,"url":632},"OpenAI Agents SDK documentation: Running agents","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Frunning_agents\u002F",{"title":634,"url":635},"OpenAI Agents SDK documentation: Guardrails","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fguardrails\u002F",{"title":637,"url":638},"OpenAI Agents SDK documentation: Human-in-the-loop","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fhuman_in_the_loop\u002F",{"title":640,"url":641},"OpenAI Agents SDK documentation: Tracing","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Ftracing\u002F",{"title":643,"url":644},"OpenAI Agents SDK documentation: Configuration","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fconfig\u002F",{"title":646,"url":647},"openai-agents 0.23.1 on PyPI, release history and licence","https:\u002F\u002Fpypi.org\u002Fproject\u002Fopenai-agents\u002F",{"title":649,"url":650},"OpenAI: The next evolution of the Agents SDK (15 April 2026)","https:\u002F\u002Fopenai.com\u002Findex\u002Fthe-next-evolution-of-the-agents-sdk\u002F",{"title":652,"url":653},"OpenAI API documentation: Agents, comparison of the three runtimes","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents",{"title":655,"url":656},"Arize: AI agent frameworks compared (1 October 2026)","https:\u002F\u002Farize.com\u002Fai-agents\u002Fagent-frameworks\u002F","\u002Fimages\u002Fblog\u002Fopenai-agents-sdk\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopenai-agents-sdk\u002Fog.jpg",[54,55,56],"OpenAI Agents SDK: eine schlanke Agent-Runtime mit scharfen Kanten","Eine Bewertung des OpenAI Agents SDK: Runner-Schleife, Tracing, Guardrails und Approvals, plus was Release-Tempo und die Responses-only-Funktionen kosten.","Diagramm der Runner-Schleife im Agents SDK: Eingabe, Agent, Modellaufruf, Endausgabe, Guardrails und Tool-Aufrufe, die zurück in die Eingabe laufen","MIT · API pay per token",{"slug":665,"published":666,"minutes":488,"category":7,"tags":667,"keywords":672,"about":679,"sources":689,"cover":710,"og":711,"expertise":52,"locales":712,"lang":55,"title":713,"description":714,"coverAlt":715,"url":716,"pricing":717,"kind":554},"openhands","2026-09-09",[554,668,669,670,671],"Sandboxed execution","Automations","Self-hosted","MIT licence",[665,673,674,675,676,677,564,678],"openhands self-host","open hands coding agent","openhands vs claude code","agent canvas","openhands docker sandbox","openhands cloud pricing",[680,683,686],{"name":681,"url":682},"OpenHands","https:\u002F\u002Fwww.openhands.dev",{"name":684,"url":685},"OpenHands on GitHub","https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands",{"name":687,"url":688},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",[690,692,695,698,701,704,707],{"title":691,"url":685},"OpenHands README",{"title":693,"url":694},"OpenHands licence (MIT)","https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands\u002Fblob\u002Fmain\u002FLICENSE",{"title":696,"url":697},"Agent Canvas 1.25.0 release notes","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Fagent-canvas\u002Frelease-notes\u002Fv1.25.0.md",{"title":699,"url":700},"OpenHands sandbox overview","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Fsandboxes\u002Foverview.md",{"title":702,"url":703},"OpenHands quick start","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Finstallation",{"title":705,"url":706},"OpenHands pricing","https:\u002F\u002Fwww.openhands.dev\u002Fpricing",{"title":708,"url":709},"Introducing the OpenHands Index","https:\u002F\u002Fwww.openhands.dev\u002Fblog\u002Fintroducing-the-openhands-index","\u002Fimages\u002Fblog\u002Fopenhands\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopenhands\u002Fog.jpg",[54,55,56],"OpenHands: der Open-Source-Coding-Agent im Eigenbetrieb","OpenHands 1.25.0 ist eine MIT-lizenzierte Coding-Agent-Plattform mit Web-Canvas, CLI, sandboxierter Ausführung und geplanten Automatisierungen. Ein Review der Stärken und der Betriebskosten.","Covermotiv zum OpenHands-Review: eine Schleife von Aufgabe über Agent und Sandbox zurück","https:\u002F\u002Fgithub.com\u002FAll-Hands-AI\u002FOpenHands","Free · self-host",1791383550694]