[{"data":1,"prerenderedAt":995},["ShallowReactive",2],{"tool-pydantic-ai-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":23,"sources":34,"cover":101,"og":102,"expertise":103,"locales":104,"lang":106,"title":108,"description":109,"coverAlt":110,"url":111,"pricing":112,"kind":9,"metaTitle":113,"takeaways":114,"faq":120,"toc":133,"blocks":161,"others":529},"pydantic-ai","2026-10-08",8,"agents",[9,10,11,12,13],"Agent framework","Typed Python","Structured output","Dependency injection","OpenTelemetry",[15,16,17,18,19,20,21,22],"pydantic ai","pydantic ai review","pydantic ai vs langgraph","pydantic ai vs openai agents sdk","typed python agent framework","pydantic ai logfire pricing","pydantic ai 2.0 upgrade","python llm agent framework",[24,27,30,32],{"name":25,"url":26},"Pydantic","https:\u002F\u002Fpydantic.dev",{"name":28,"url":29},"Python (programming language)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPython_(programming_language)",{"name":12,"url":31},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDependency_injection",{"name":13,"url":33},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOpenTelemetry",[35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98],{"title":36,"url":37},"Pydantic AI documentation","https:\u002F\u002Fai.pydantic.dev\u002F",{"title":39,"url":40},"pydantic-ai 2.55.0 on PyPI (released 9 October 2026)","https:\u002F\u002Fpypi.org\u002Fproject\u002Fpydantic-ai\u002F",{"title":42,"url":43},"pydantic\u002Fpydantic-ai on GitHub: licence, stars and README","https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai",{"title":45,"url":46},"Pydantic AI release notes: 2.51.0 to 2.55.0 and the 2.52.0 security fix","https:\u002F\u002Fgithub.com\u002Fpydantic\u002Fpydantic-ai\u002Freleases",{"title":48,"url":49},"Pydantic AI version policy","https:\u002F\u002Fai.pydantic.dev\u002Fversion-policy\u002F",{"title":51,"url":52},"Pydantic AI upgrade guide: the V2 betas and the stable release","https:\u002F\u002Fai.pydantic.dev\u002Fproject\u002Fchangelog\u002F",{"title":54,"url":55},"Pydantic AI output: tool output, retries and output validators","https:\u002F\u002Fai.pydantic.dev\u002Foutput\u002F",{"title":57,"url":58},"Pydantic AI dependencies and RunContext","https:\u002F\u002Fai.pydantic.dev\u002Fdependencies\u002F",{"title":60,"url":61},"Pydantic AI models and providers","https:\u002F\u002Fai.pydantic.dev\u002Fmodels\u002Foverview\u002F",{"title":63,"url":64},"Pydantic AI unit testing with TestModel and FunctionModel","https:\u002F\u002Fai.pydantic.dev\u002Ftesting\u002F",{"title":66,"url":67},"Pydantic AI durable execution overview","https:\u002F\u002Fai.pydantic.dev\u002Fdurable_execution\u002Foverview\u002F",{"title":69,"url":70},"Pydantic Logfire: observability for Pydantic AI","https:\u002F\u002Fai.pydantic.dev\u002Flogfire\u002F",{"title":72,"url":73},"Pydantic Logfire pricing","https:\u002F\u002Fpydantic.dev\u002Fpricing",{"title":75,"url":76},"Pydantic security and compliance","https:\u002F\u002Fpydantic.dev\u002Fsecurity",{"title":78,"url":79},"OpenAI Agents SDK documentation","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002F",{"title":81,"url":82},"OpenAI Agents SDK tracing","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Ftracing\u002F",{"title":84,"url":85},"openai\u002Fopenai-agents-python on GitHub","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python",{"title":87,"url":88},"openai-agents 0.23.1 on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Fopenai-agents\u002F",{"title":90,"url":91},"langchain-ai\u002Flanggraph on GitHub","https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flanggraph",{"title":93,"url":94},"langgraph 1.2.14 on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Flanggraph\u002F",{"title":96,"url":97},"LangGraph overview","https:\u002F\u002Fdocs.langchain.com\u002Foss\u002Fpython\u002Flanggraph\u002Foverview",{"title":99,"url":100},"LangGraph interrupts","https:\u002F\u002Fdocs.langchain.com\u002Foss\u002Fpython\u002Flanggraph\u002Finterrupts","\u002Fimages\u002Fblog\u002Fpydantic-ai\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fpydantic-ai\u002Fog.jpg","ai-engineer",[105,106,107],"en","de","hu","Pydantic AI im Test: typisierte Python-Agenten mit geprüfter Ausgabe","Pydantic AI 2.55 bringt typisierte Abhängigkeiten, geprüfte Ausgaben und OpenTelemetry. Was 2.0 änderte, was Logfire kostet und wer es nehmen sollte.","Titelbild zum Pydantic-AI-Test: eine typisierte Agenten-Schleife mit Tools, einer Prüfstufe und einem Wiederholungspfad zum Modell.","https:\u002F\u002Fai.pydantic.dev","MIT · free library, Logfire Team from $49 a month","Pydantic AI im Test: typisierte Agenten · Balázs Csorba",[115,116,117,118,119],"Pydantic AI 2.55.0, veröffentlicht am 9. Oktober 2026, ist MIT-lizenziert und im Betrieb kostenlos. Deine Kosten sind Modell-Tokens und, falls du es nutzt, Logfire-Records.","Die 2.0-Linie ist seit dem 23. Juni 2026 stabil, nach sieben Betas, und hat die Konfiguration in Capabilities verlagert. Pinne die Version und folge dem Upgrade-Pfad.","Abhängigkeiten erreichen deine Tools über einen typisierten RunContext, und output_type prüft jede Antwort. Eine fehlgeschlagene Prüfung geht ans Modell zurück, bevor dein Code sie sieht.","Tracing ist optional und folgt OpenTelemetry, sodass Spans an Logfire oder an jedes OpenTelemetry-Backend gehen können. Durable Runs brauchen Temporal, DBOS, Prefect, Restate oder AWS Lambda.","Nimm es für typisierte Python-Dienste. Nimm das OpenAI Agents SDK für einen kleinen, OpenAI-zentrierten Stack und LangGraph, wenn explizite Graphen, Checkpoints und Unterbrechungen das Produkt sind.",[121,124,127,130],{"q":122,"a":123},"Was kostet Pydantic AI?","Stand Oktober 2026 ist die Bibliothek MIT-lizenziert und kostenlos. Die Rechnung kommt von deinem Modellanbieter und, wenn du Logfire nutzt, von dessen Records: Personal ist bis 10 Millionen Records pro Monat kostenlos, danach wird die Aufnahme an dieser Grenze angehalten. Team kostet 49 $ im Monat, Growth 249 $ im Monat, und Enterprise wird individuell angeboten.",{"q":125,"a":126},"Ist die 2.x-Linie stabil genug für die Produktion?","Ja, mit der üblichen Sorgfalt. Kleinere Releases sollen öffentliche APIs nicht brechen, aber Funktionen in Beta-Modulen können sich ändern, und jede Hauptversion entfernt, was vorher als veraltet markiert war. Sicherheitsfixes für V1 laufen noch mindestens sechs Monate nach dem stabilen 2.0-Release weiter, also plane den Umstieg.",{"q":128,"a":129},"Wie vergleicht es sich mit dem OpenAI Agents SDK und LangGraph?","Das OpenAI Agents SDK ist kleiner und schaltet Tracing standardmäßig ein. LangGraph ist um explizite Graphen mit Checkpoints und Unterbrechungen herum gebaut. Pydantic AI liegt dazwischen: typisierte Abhängigkeiten und geprüfte Ausgaben für Python-Code, mit einem Anbieter-Präfix für etwa zwei Dutzend Anbieter.",{"q":131,"a":132},"Bekommt Logfire meine Prompts?","Nur die Spans, die du exportierst. Die Instrumentierung ist optional, die Doku beschreibt, wie du Prompts und Completions aus den Spans ausschließt, und Pydantic bietet einen Data Processing Addendum, einen SOC-2-Type-2-Bericht auf Anfrage und eine Liste der Unterauftragsverarbeiter.",[134,137,140,143,146,149,152,155,158],{"id":135,"title":136},"what-it-is","Was es ist",{"id":138,"title":139},"how-it-works","Wie es funktioniert",{"id":141,"title":142},"getting-started","Erste Schritte",{"id":144,"title":145},"typed-agents-and-validation","Typisierte Abhängigkeiten und geprüfte Ausgabe",{"id":147,"title":148},"tracing-and-durable-runs","Tracing und durable Runs",{"id":150,"title":151},"cost-and-deployment","Kosten, Hosting und Datenschutz",{"id":153,"title":154},"where-it-falls-short","Wo es zu kurz greift",{"id":156,"title":157},"verdict","Fazit",{"id":159,"title":160},"sources","Quellen",[162,166,169,172,197,198,201,210,213,214,217,220,223,224,227,230,252,255,256,265,268,275,276,279,326,329,335,338,345,346,349,359,362,365,409,410,413,437,438],{"type":163,"content":164},"paragraph",[165],"Pydantic AI ist das Python-Agenten-Framework des Teams hinter Pydantic, der Bibliothek für Datenvalidierung. Abhängigkeiten, Tools und Ergebnisse sind gewöhnliche Python-Typen, und jede strukturierte Antwort des Modells wird geprüft, bevor dein Code sie bekommt. Das Urteil vorweg – nimm es für typisierte Agenten in Python-Diensten, wo das Team ohnehin mit Pydantic-Modellen denkt. Lass es, wenn dein Team in TypeScript baut, einen visuellen Builder als Hauptweg zum Entwerfen von Workflows will oder API-Änderungen zwischen Releases nicht verkraften kann.",{"type":167,"level":168,"id":135,"text":136},"heading",2,{"type":163,"content":170},[171],"Das aktuelle Release ist 2.55.0, auf PyPI veröffentlicht am 9. Oktober 2026. Es ist MIT-lizenziert, braucht Python 3.11 oder neuer und hat auf GitHub rund 20.500 Sterne. Das Projekt nennt sich „How Python does AI“: Agenten, Echtzeit-Sprache, Bildgenerierung und Embeddings, durchgehend typisiert. Die 2.0-Linie wurde am 23. Juni 2026 stabil, deshalb beschreiben ältere Tutorials womöglich noch die 1.x-API.",{"type":173,"ordered":174,"items":175},"list",false,[176,182,187,192],[177,181],{"tag":178,"children":179},"strong",[180],"Typisierte Abhängigkeiten. ","`deps_type` legt fest, was ein Agent braucht, und jeder Lauf bekommt eine Instanz über `deps=`.",[183,186],{"tag":178,"children":184},[185],"Geprüfte Ausgabe. ","`output_type` nimmt ein Pydantic-Modell, eine Union oder eine Liste von Typen. Das Modell füllt sie standardmäßig über Tool-Calling aus.",[188,191],{"tag":178,"children":189},[190],"Rund zwei Dutzend Anbieter. ","Ein Präfix wie `openai:`, `anthropic:` oder `google:` wählt den Anbieter. Das Verzeichnis deckt außerdem Groq, Mistral, Ollama und OpenRouter ab, dazu jeden OpenAI-kompatiblen Endpunkt.",[193,196],{"tag":178,"children":194},[195],"Capabilities und durable Runs. ","Capabilities bündeln Tools, Hooks, Anweisungen und Modelleinstellungen zu einer wiederverwendbaren Einheit. Durable Runs werden über Temporal, DBOS, Prefect, Restate und AWS Lambda angebunden.",{"type":167,"level":168,"id":138,"text":139},{"type":163,"content":199},[200],"Ein Agentenlauf ist eine Schleife mit einer Prüfung am Ende. Der Agent schickt seine Anweisungen, den Nachrichtenverlauf und die Tool-Schemata an das Modell. Ruft das Modell ein Tool auf, führt Pydantic AI deine Python-Funktion mit dem typisierten Kontext aus und gibt das Ergebnis ans Modell zurück. Hört das Modell auf, Tools aufzurufen, wird seine Ausgabe gegen `output_type` geprüft. Eine fehlgeschlagene Prüfung geht als Wiederholung zurück ans Modell, und das Standardbudget für Wiederholungen der Ausgabe ist eins.",{"type":202,"attrs":203,"inner":207,"caption":208},"diagram",{"viewBox":204,"role":205,"aria-labelledby":206},"0 0 720 330","img","d1-pa-t d1-pa-d","\u003Ctitle id=\"d1-pa-t\">Ein Agentenlauf in Pydantic AI\u003C\u002Ftitle>\u003Cdesc id=\"d1-pa-d\">Dein Code übergibt Abhängigkeiten und Eingabe an einen Agenten. Der Agent schickt Anweisungen und Tool-Schemata an das Modell. Ruft das Modell ein Tool auf, läuft das Tool mit dem typisierten Kontext, und sein Ergebnis geht ans Modell zurück. Wenn das Modell fertig ist, wird seine Ausgabe gegen den Ausgabetyp geprüft. Eine fehlgeschlagene Prüfung geht als Wiederholung ans Modell zurück, und eine bestandene Antwort geht an deinen Code.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"ah-pa\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\u003Cpath d=\"M0 0L10 5L0 10z\" class=\"d-head\" \u002F>\u003C\u002Fmarker>\u003C\u002Fdefs>\u003Ctext x=\"20\" y=\"28\" class=\"d-title\">Ein Agentenlauf\u003C\u002Ftext>\u003Ctext x=\"700\" y=\"28\" text-anchor=\"end\" class=\"d-label\">gleiche Schleife für jeden Anbieter\u003C\u002Ftext>\u003Crect x=\"20\" y=\"60\" width=\"150\" height=\"62\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"95\" y=\"88\" text-anchor=\"middle\" class=\"d-text\">Dein Code\u003C\u002Ftext>\u003Ctext x=\"95\" y=\"110\" text-anchor=\"middle\" class=\"d-small\">Deps und Eingabe\u003C\u002Ftext>\u003Crect x=\"200\" y=\"60\" width=\"150\" height=\"62\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"275\" y=\"88\" text-anchor=\"middle\" class=\"d-text\">Agent\u003C\u002Ftext>\u003Ctext x=\"275\" y=\"110\" text-anchor=\"middle\" class=\"d-small\">Anweisungen, Tools\u003C\u002Ftext>\u003Crect x=\"380\" y=\"60\" width=\"150\" height=\"62\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"455\" y=\"88\" text-anchor=\"middle\" class=\"d-text\">Modell\u003C\u002Ftext>\u003Ctext x=\"455\" y=\"110\" text-anchor=\"middle\" class=\"d-small\">Anbieter-Präfix\u003C\u002Ftext>\u003Crect x=\"560\" y=\"60\" width=\"140\" height=\"62\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"630\" y=\"88\" text-anchor=\"middle\" class=\"d-text\">Geprüfte Ausgabe\u003C\u002Ftext>\u003Ctext x=\"630\" y=\"110\" text-anchor=\"middle\" class=\"d-small\">output_type\u003C\u002Ftext>\u003Crect x=\"200\" y=\"190\" width=\"150\" height=\"62\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"275\" y=\"218\" text-anchor=\"middle\" class=\"d-text\">Tool-Aufruf\u003C\u002Ftext>\u003Ctext x=\"275\" y=\"240\" text-anchor=\"middle\" class=\"d-small\">RunContext[Deps]\u003C\u002Ftext>\u003Crect x=\"380\" y=\"190\" width=\"150\" height=\"62\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"455\" y=\"218\" text-anchor=\"middle\" class=\"d-text\">Wiederholung\u003C\u002Ftext>\u003Ctext x=\"455\" y=\"240\" text-anchor=\"middle\" class=\"d-small\">Budget 1\u003C\u002Ftext>\u003Cpath d=\"M170 91 H198\" class=\"d-line\" marker-end=\"url(#ah-pa)\" \u002F>\u003Cpath d=\"M350 91 H378\" class=\"d-line\" marker-end=\"url(#ah-pa)\" \u002F>\u003Cpath d=\"M530 91 H558\" class=\"d-line\" marker-end=\"url(#ah-pa)\" \u002F>\u003Cpath d=\"M240 124 V188\" class=\"d-line\" marker-end=\"url(#ah-pa)\" \u002F>\u003Cpath d=\"M300 188 V124\" class=\"d-line\" marker-end=\"url(#ah-pa)\" \u002F>\u003Cpath d=\"M470 124 V188\" class=\"d-line-accent\" marker-end=\"url(#ah-pa)\" \u002F>\u003Cpath d=\"M410 188 V124\" class=\"d-line\" marker-end=\"url(#ah-pa)\" \u002F>\u003Ctext x=\"478\" y=\"160\" class=\"d-small\">Prüfung scheitert\u003C\u002Ftext>\u003Ctext x=\"20\" y=\"286\" class=\"d-small\">Abhängigkeiten erreichen deine Funktionen, nie das Modell.\u003C\u002Ftext>\u003Ctext x=\"20\" y=\"310\" class=\"d-small\">Jede Antwort passiert die Prüfstufe, bevor dein Code sie sieht.\u003C\u002Ftext>",[209],"Jeder Lauf dreht sich zwischen Modell und Tools, und jede Antwort passiert die Prüfstufe, bevor sie den Agenten verlässt.",{"type":163,"content":211},[212],"Abhängigkeiten gehen an deine Funktionen, nie an das Modell. Ein Datenbank-Pool oder eine HTTP-Session kann neben dem Agenten stehen, ohne in einem Prompt aufzutauchen. Das Modell sieht nur die Anweisungen, die Tool-Schemata und die Nachrichten. Diese Grenze lohnt es, bewusst zu entwerfen.",{"type":167,"level":168,"id":141,"text":142},{"type":163,"content":215},[216],"Installiere mit `uv add pydantic-ai` oder `pip install pydantic-ai` und setze dann die Zugangsdaten, die dein Anbieter erwartet. Das Beispiel unten ist ein Support-Triage-Agent. Er nimmt eine typisierte Abhängigkeit, ruft ein Tool auf und gibt ein geprüftes Objekt zurück.",{"type":218,"code":219},"code","from dataclasses import dataclass\nfrom typing import Literal\n\nfrom pydantic import BaseModel, Field\nfrom pydantic_ai import Agent, RunContext\n\nfrom myshop.orders import OrderService\n\n\n@dataclass\nclass SupportDeps:\n    customer_id: int\n    orders: OrderService  # your own client, injected per run\n\n\nclass Triage(BaseModel):\n    category: Literal['refund', 'shipping', 'other']\n    risk: int = Field(ge=0, le=10, description='How urgently a person should review this')\n    reply: str\n\n\nsupport = Agent(\n    'openai:gpt-6-sol',\n    deps_type=SupportDeps,\n    output_type=Triage,\n    instructions='Triage the message. Check the order before you answer.',\n)\n\n\n@support.tool\nasync def latest_order(ctx: RunContext[SupportDeps]) -> str:\n    '''Return the status of the most recent order.'''\n    return await ctx.deps.orders.latest_status(ctx.deps.customer_id)\n\n\nresult = support.run_sync(\n    'Where is my parcel?',\n    deps=SupportDeps(customer_id=42, orders=OrderService()),\n)\nprint(result.output.category, result.output.risk)",{"type":163,"content":221},[222],"Zwei Teile des Codes leisten die Arbeit. Die Klasse `Triage` ist sowohl das Schema, das ans Modell geht, als auch der Typ, den dein Code bekommt. Eine Antwort außerhalb der erlaubten Kategorien oder des Risikobereichs von 0 bis 10 wird wiederholt und, wenn sie weiter scheitert, als Fehler ausgelöst, statt deinen Code zu erreichen. Die Annotation `RunContext[SupportDeps]` gibt dem Tool eine typisierte Sicht auf deinen Client, sodass der Editor jedes Attribut prüfen kann, das du verwendest.",{"type":167,"level":168,"id":144,"text":145},{"type":163,"content":225},[226],"Abhängigkeiten würde ich zuerst übernehmen. `deps_type` deklariert den Typ, `RunContext[Deps]` gibt Tools, Anweisungen und Output-Validatoren Zugriff auf `ctx.deps`, und ein Test kann den echten Client mit `agent.override(deps=...)` gegen einen Fake tauschen. Die Verdrahtung bleibt im Konstruktor und im Aufruf statt in globalen Variablen auf Modulebene, und so bleibt der Agent leicht testbar.",{"type":163,"content":228},[229],"Bei der Ausgabe zahlt sich das Framework aus. Standardmäßig liefert das Modell strukturierte Daten über seine Tool-Calling-Schnittstelle, und eine Union von Typen wird zu einem Ausgabe-Tool pro Mitglied. Die Marker `TextOutput` und `PromptedOutput` schalten auf Klartext um, für Modelle mit unzuverlässigem Tool-Calling. `ToolOutput` gibt einem Ausgabe-Tool ein eigenes Wiederholungsbudget, sodass ein komplexer Typ mehr Versuche bekommen kann als ein einfacher.",{"type":173,"ordered":174,"items":231},[232,237,242,247],[233,236],{"tag":178,"children":234},[235],"`ModelRetry` ","lässt ein Tool oder eine Ausgabefunktion einen Wert ablehnen und dem Modell sagen, was es ändern soll.",[238,241],{"tag":178,"children":239},[240],"`@agent.output_validator` ","führt nach dem Parsen deine eigenen Prüfungen aus, zum Beispiel ob eine Bestellnummer in der Antwort existiert.",[243,246],{"tag":178,"children":244},[245],"`Agent(retries={'output': N})` ","erhöht das Wiederholungsbudget der Ausgabe für den ganzen Agenten. Der Standard ist eins.",[248,251],{"tag":178,"children":249},[250],"`ToolOutput(Fruit, max_retries=2)` ","gibt einem Ausgabetyp eine eigene Anzahl an Wiederholungen.",{"type":163,"content":253},[254],"Beim Testen zahlt sich der Entwurf aus. `TestModel` ruft jedes Tool auf und liefert eine strukturell gültige Antwort, `FunctionModel` lässt einen Test die Antwort des Modells vorgeben, und `ALLOW_MODEL_REQUESTS=False` blockiert versehentliche Aufrufe echter Anbieter in der CI. Ein Unit-Test des Support-Ablaufs braucht dann weder API-Schlüssel noch Netzwerk.",{"type":167,"level":168,"id":147,"text":148},{"type":163,"content":257},[258,259,264],"Tracing ist optional. Rufe beim Start `logfire.configure()` und `logfire.instrument_pydantic_ai()` auf, dann wird jeder Lauf, jede Modellantwort und jeder Tool-Aufruf zu einem OpenTelemetry-Span, der den Konventionen für generative KI folgt. Das Logfire-SDK kann dieselben Daten an jedes OpenTelemetry-Backend schicken, was zählt, wenn die Telemetrie in einem System bleiben muss, das das Team ohnehin betreibt. Den größeren Zusammenhang findest du in ",{"tag":260,"to":261,"children":262},"link","\u002Fblog\u002Fagent-observability-opentelemetry",[263],"Agent-Observability mit OpenTelemetry",".",{"type":163,"content":266},[267],"Durable Execution ist das zweite Feature, das du verstehen solltest. Die Doku führt acht Engines auf. Temporal, DBOS, Prefect, Restate und AWS Lambda werden gemeinsam mit ihren Anbietern gepflegt, und Kitaru, Apache Airflow und Absurd kommen als externe Integrationen. In 2.x hängst du eine Durability-Capability an den Agenten. Das README-Beispiel fügt `TemporalDurability()` in einem Temporal-Workflow zu den Capabilities eines Agenten hinzu.",{"type":269,"variant":270,"title":271,"body":272},"callout","warn","Durable heißt nicht gespeichert",[273],[274],"Eine Durable-Engine hält einen Lauf über Abstürze und Neustarts hinweg am Leben. Sie speichert deine Chat-Threads nicht. Die Doku behandelt das Speichern eines Gesprächs und das spätere Fortsetzen als eigenes Problem, also plane diese Speicherung bewusst ein.",{"type":167,"level":168,"id":150,"text":151},{"type":163,"content":277},[278],"Stand Oktober 2026 kostet die Bibliothek im Betrieb nichts. Die Lizenz deckt den Code ab, also kommen die Rechnungen aus drei Quellen: Modell-Tokens von deinem Anbieter, Logfire-Records, wenn du Logfire nutzt, und die Infrastruktur für eine Durable-Engine, falls du eine einsetzt. Die Logfire-Tarife zeigen, wie die zweite Rechnung aussieht.",{"type":280,"head":281,"rows":290},"table",[282,284,286,288],[283],"Tarif",[285],"Preis",[287],"Inbegriffen",[289],"Was sich ändert",[291,300,309,317],[292,294,296,298],[293],"Personal",[295],"Kostenlos",[297],"10 Mio. Records pro Monat, hart begrenzt",[299],"3 Projekte, 30 Tage Aufbewahrung, 1 Platz und 2 Gäste mit Lesezugriff",[301,303,305,307],[302],"Team",[304],"49 $ pro Monat",[306],"10 Mio. Records, dann 2 $ pro Mio.",[308],"5 Plätze (bis 12), 10 Gäste, 5 Projekte, 30 Tage Aufbewahrung, Ausgabenlimit",[310,312,314,315],[311],"Growth",[313],"249 $ pro Monat",[306],[316],"Unbegrenzte Plätze, Gäste und Projekte, 90 Tage Aufbewahrung, Priority-Support und BAA-Vorlage",[318,320,322,324],[319],"Enterprise",[321],"Individuell",[323],"Nach Vereinbarung",[325],"Cloud, Dedicated oder Self-hosted; SSO, SCIM und ein SLA",{"type":163,"content":327},[328],"Logfire rechnet Records ab: Logs, Spans und Metriken. Die inbegriffenen 10 Millionen pro Monat sind durch das Plan-Guthaben abgedeckt, darüber kosten Team und Growth 2 $ pro Million. Ein Team, das 30 Millionen Records im Monat sendet, zahlt 49 $ plus 40 $ für die zusätzlichen 20 Millionen, also rund 89 $ vor allen Modell-Tokens. Das AI-Gateway schlägt bei eingebauten Anbietern 5 Prozent Aufschlag drauf, während bis zu drei eigene Anbieter-Schlüssel ohne Aufschlag durchgereicht werden.",{"type":269,"variant":330,"title":331,"body":332},"tip","Das Limit setzen, bevor der erste Lasttest läuft",[333],[334],"Personal nimmt ab 10 Millionen Records keine Daten mehr an, und Team bietet ein Ausgabenlimit. Schalte das Limit vor einem Lasttest oder einem großen Eval-Lauf ein, nicht nach der ersten überraschenden Rechnung.",{"type":163,"content":336},[337],"Selbst hosten ist der Standard, weil die Bibliothek einfach nur Code in deiner eigenen Umgebung ist. Die Enterprise-Stufe von Logfire ergänzt eine selbst gehostete Option auf deinem eigenen Kubernetes-Cluster. Für den Datenschutz zählen drei Flüsse. Der Modellanbieter bekommt Prompts und Tool-Ergebnisse, also stehen dessen Auftragsverarbeitungsbedingungen und Region an erster Stelle. Logfire bekommt jeden Span, den du exportierst, also schließe Prompts und Completions dort aus, wo du sie nicht brauchst. Pydantic bietet außerdem einen Data Processing Addendum für die DSGVO, einen SOC-2-Type-2-Bericht auf Anfrage und eine veröffentlichte Liste der Unterauftragsverarbeiter.",{"type":163,"content":339},[340,341],"Die Region ist auf jedem Tarif eine Einstellung, die du prüfen solltest. Die Tarifmatrix setzt bei jedem gehosteten Tarif, von Personal bis Enterprise Cloud, ein Häkchen bei EU- oder US-Datenregion. Enterprise Dedicated bietet eine beliebige Google-Cloud-Region, und Self-hosting hält die Daten dort, wo du sie betreibst. Die Preisseite sagt nicht, welche Region ein neues Projekt standardmäßig bekommt, also prüfe das, bevor du personenbezogene Daten schickst. ",{"tag":260,"to":342,"children":343},"\u002Fblog\u002Fgdpr-llm-api-eu-data-residency",[344],"Die allgemeinere Frage zur Datenresidenz bei Modell-APIs behandelt ein eigener Artikel.",{"type":167,"level":168,"id":153,"text":154},{"type":163,"content":347},[348],"Das größte Risiko ist Veränderung – und das Changelog ist offen darüber. Die 2.0-Linie durchlief sieben Betas zwischen dem 20. Mai und dem 10. Juni 2026, bevor das stabile Release am 23. Juni kam. Die Breaking Changes kommen in zwei Gruppen: Entfernungen, die die Deprecation-Warnungen von V1 nicht ankündigen konnten, und Änderungen, vor denen V1 gewarnt hat. Entfernt wurden unter anderem die Outlines-Integration und ihre Extras, und `ModelProfile` wurde von einer Dataclass zu einem TypedDict. Eine Migration ist eine echte Aufgabe, kein Versionssprung.",{"type":269,"variant":350,"title":351,"body":352},"note","In dieser Reihenfolge upgraden",[353,355,357],[354],"Auf das neueste V1-Release wechseln, mindestens 1.100.0, wo die meisten Entfernungen zuerst als veraltet markiert wurden.",[356],"Die Testsuite mit sichtbaren Warnungen laufen lassen und jede Deprecation-Warnung beheben.",[358],"Die Liste der Breaking Changes lesen, dann auf 2.x wechseln und die Version pinnen.",{"type":163,"content":360},[361],"Auch kleinere Releases kommen häufig. Version 2.51.0 erschien am 25. September 2026 und 2.55.0 am 9. Oktober, ein lose gepinntes Projekt sieht also in zwei Wochen mehrere Änderungen. Die Versionsrichtlinie verspricht keine absichtlichen Breaking Changes in kleineren Releases, aber Funktionen in einem Beta-Modul sind ausdrücklich instabil und können sich so ändern, dass bestehender Code bricht. Behandle jeden Import aus einem Beta-Modul wie eine gepinnte Abhängigkeit.",{"type":163,"content":363},[364],"Behalte außerdem die Sicherheitshinweise im Blick. Release 2.52.0 behob ein Problem mit CPU und Speicher im lokalen Tool `web_fetch`, bei dem tief verschachteltes HTML übermäßig viele Ressourcen verbrauchen konnte. Das providereigene Web-Fetching war nicht betroffen. Und schließlich – es ist eine Python-Bibliothek. Teams, die Agenten in TypeScript bauen, brauchen ein anderes Framework, und Durable-Engines bringen Infrastruktur mit, die jemand betreiben oder bezahlen muss.",{"type":280,"head":366,"rows":377},[367,369,371,373,375],[368],"Tool",[370],"Lizenz",[372],"Version, Oktober 2026",[374],"Stärke",[376],"Tracing",[378,389,399],[379,381,383,385,387],[380],"Pydantic AI",[382],"MIT",[384],"2.55.0",[386],"Typisierte Abhängigkeiten und geprüfte Ausgabe in Python",[388],"Optional, über Logfire oder OpenTelemetry",[390,392,393,395,397],[391],"OpenAI Agents SDK",[382],[394],"0.23.1",[396],"Sehr wenige Primitive: Agenten, Handoffs, Guardrails, Sessions",[398],"Standardmäßig an, exportiert an OpenAI, sofern nicht abgeschaltet",[400,402,403,405,407],[401],"LangGraph",[382],[404],"1.2.14",[406],"Explizite Graphen mit Checkpoints, Unterbrechungen und Fehlertoleranz",[408],"LangSmith, eine eigene Plattform",{"type":167,"level":168,"id":156,"text":157},{"type":163,"content":411},[412],"Pydantic AI ist mein Standard für ein Python-Team, das seine Daten bereits mit Pydantic modelliert und Agenten will, die typisiert, testbar und leicht neben dem Rest des Dienstes zu betreiben sind. Es ist die falsche Wahl für eine TypeScript-Codebasis, für ein Team, das einen visuellen Graph-Editor als wichtigstes Entwurfswerkzeug will, und für jedes Team, das API-Änderungen zwischen Releases nicht verkraftet. In diesen Fällen passen die Alternativen unten besser.",{"type":173,"ordered":414,"items":415},true,[416,421,429],[417,420],{"tag":178,"children":418},[419],"Nimm Pydantic AI ","wenn deine Dienste in Python laufen, deine Daten schon in Pydantic-Modellen stehen und du typisierte Tools und geprüfte Ausgaben willst.",[422,425,428],{"tag":178,"children":423},[424],"Nimm das ",{"tag":260,"to":426,"children":427},"\u002Ftools\u002Fopenai-agents-sdk",[391],", wenn du dich auf OpenAI festgelegt hast und sehr wenige Primitive willst. Schalte Tracing ab oder füge einen eigenen Processor hinzu, bevor echte Kundendaten hindurchlaufen.",[430,433,436],{"tag":178,"children":431},[432],"Nimm ",{"tag":260,"to":434,"children":435},"\u002Ftools\u002Flanggraph",[401],", wenn der Workflow das Produkt ist: expliziter Zustand, Checkpoints und benannte Freigabeschritte. Du schreibst mehr Code und kontrollierst jeden Übergang.",{"type":167,"level":168,"id":159,"text":160},{"type":173,"ordered":174,"items":439},[440,445,449,453,457,461,465,469,473,477,481,485,489,493,497,501,505,509,513,517,521,525],[441],{"tag":442,"href":37,"children":443},"a",[444],"Pydantic-AI-Dokumentation",[446],{"tag":442,"href":40,"children":447},[448],"pydantic-ai 2.55.0 auf PyPI (veröffentlicht am 9. Oktober 2026)",[450],{"tag":442,"href":43,"children":451},[452],"pydantic\u002Fpydantic-ai auf GitHub: Lizenz, Sterne und README",[454],{"tag":442,"href":46,"children":455},[456],"Pydantic-AI-Release-Notes: 2.51.0 bis 2.55.0 und der Sicherheitsfix in 2.52.0",[458],{"tag":442,"href":49,"children":459},[460],"Pydantic-AI-Versionsrichtlinie",[462],{"tag":442,"href":52,"children":463},[464],"Pydantic-AI-Upgrade-Leitfaden: die V2-Betas und das stabile Release",[466],{"tag":442,"href":55,"children":467},[468],"Pydantic-AI-Output: Tool-Ausgabe, Wiederholungen und Output-Validatoren",[470],{"tag":442,"href":58,"children":471},[472],"Pydantic-AI-Abhängigkeiten und RunContext",[474],{"tag":442,"href":61,"children":475},[476],"Pydantic-AI-Modelle und Anbieter",[478],{"tag":442,"href":64,"children":479},[480],"Pydantic-AI-Unit-Tests mit TestModel und FunctionModel",[482],{"tag":442,"href":67,"children":483},[484],"Pydantic-AI-Überblick zu Durable Execution",[486],{"tag":442,"href":70,"children":487},[488],"Pydantic Logfire: Observability für Pydantic AI",[490],{"tag":442,"href":73,"children":491},[492],"Pydantic Logfire: Preise",[494],{"tag":442,"href":76,"children":495},[496],"Pydantic: Sicherheit und Compliance",[498],{"tag":442,"href":79,"children":499},[500],"OpenAI-Agents-SDK-Dokumentation",[502],{"tag":442,"href":82,"children":503},[504],"OpenAI-Agents-SDK: Tracing",[506],{"tag":442,"href":85,"children":507},[508],"openai\u002Fopenai-agents-python auf GitHub",[510],{"tag":442,"href":88,"children":511},[512],"openai-agents 0.23.1 auf PyPI",[514],{"tag":442,"href":91,"children":515},[516],"langchain-ai\u002Flanggraph auf GitHub",[518],{"tag":442,"href":94,"children":519},[520],"langgraph 1.2.14 auf PyPI",[522],{"tag":442,"href":97,"children":523},[524],"LangGraph-Überblick",[526],{"tag":442,"href":100,"children":527},[528],"LangGraph-Interrupts",[530,638,757,867],{"slug":531,"published":532,"minutes":6,"category":7,"tags":533,"keywords":539,"about":547,"sources":560,"cover":630,"og":631,"expertise":103,"locales":632,"lang":106,"title":633,"description":634,"coverAlt":635,"url":550,"pricing":636,"kind":637},"opencode","2026-10-09",[534,535,536,537,538],"AI coding agent","Terminal","Open source","Local models","MCP",[531,540,541,542,543,544,545,546],"opencode review","open source coding agent","opencode vs claude code","terminal coding agent","opencode local models","opencode permissions","opencode mcp",[548,551,554,557],{"name":549,"url":550},"OpenCode","https:\u002F\u002Fopencode.ai",{"name":552,"url":553},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",{"name":555,"url":556},"Model Context Protocol","https:\u002F\u002Fmodelcontextprotocol.io",{"name":558,"url":559},"Language Server Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLanguage_Server_Protocol",[561,564,567,570,573,576,579,582,585,588,591,594,597,600,603,606,609,612,615,618,621,624,627],{"title":562,"url":563},"OpenCode docs: intro and installation","https:\u002F\u002Fopencode.ai\u002Fdocs\u002F",{"title":565,"url":566},"OpenCode docs: providers, Models.dev and local models","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fproviders\u002F",{"title":568,"url":569},"OpenCode docs: agents, Build, Plan and subagents","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fagents\u002F",{"title":571,"url":572},"OpenCode docs: permissions and defaults","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fpermissions\u002F",{"title":574,"url":575},"OpenCode docs: MCP servers","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fmcp-servers\u002F",{"title":577,"url":578},"OpenCode docs: LSP servers","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Flsp\u002F",{"title":580,"url":581},"OpenCode docs: server and web interface","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fserver\u002F",{"title":583,"url":584},"OpenCode docs: config and precedence","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fconfig\u002F",{"title":586,"url":587},"OpenCode docs: Zen, pay-as-you-go models","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fzen\u002F",{"title":589,"url":590},"OpenCode docs: Go subscription plans","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fgo\u002F",{"title":592,"url":593},"OpenCode docs: share and data retention","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fshare\u002F",{"title":595,"url":596},"OpenCode docs: enterprise and data handling","https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fenterprise\u002F",{"title":598,"url":599},"GitHub: anomalyco\u002Fopencode, MIT licence and README","https:\u002F\u002Fgithub.com\u002Fanomalyco\u002Fopencode",{"title":601,"url":602},"OpenCode release v1.18.35 (6 October 2026)","https:\u002F\u002Fgithub.com\u002Fanomalyco\u002Fopencode\u002Freleases\u002Ftag\u002Fv1.18.35",{"title":604,"url":605},"Claude Code licence file (LICENSE.md)","https:\u002F\u002Fraw.githubusercontent.com\u002Fanthropics\u002Fclaude-code\u002Fmain\u002FLICENSE.md",{"title":607,"url":608},"Claude pricing: plans and Claude Code access","https:\u002F\u002Fclaude.com\u002Fpricing",{"title":610,"url":611},"Claude Code docs: connect to an LLM gateway","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fllm-gateway",{"title":613,"url":614},"OpenAI Codex CLI repository (Apache-2.0)","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex",{"title":616,"url":617},"ChatGPT pricing: Codex included in plans","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Fpricing",{"title":619,"url":620},"Codex configuration: model providers and config.toml","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Fconfig-file\u002Fconfig-advanced",{"title":622,"url":623},"Aider website: git integration and LLM support","https:\u002F\u002Faider.chat\u002F",{"title":625,"url":626},"Aider licence file (Apache-2.0)","https:\u002F\u002Fraw.githubusercontent.com\u002FAider-AI\u002Faider\u002Fmain\u002FLICENSE.txt",{"title":628,"url":629},"GDPR, Regulation (EU) 2016\u002F679, Article 28","https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FEN\u002FTXT\u002FHTML\u002F?uri=CELEX:32016R0679","\u002Fimages\u002Fblog\u002Fopencode\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopencode\u002Fog.jpg",[105,106,107],"OpenCode im Test: der Open-Source-Coding-Agent für jedes Modell","OpenCode ist ein Coding-Agent fürs Terminal unter MIT-Lizenz, für jedes Modell, gehostet oder lokal. Agenten, Berechtigungen, MCP und LSP sowie die Datenschutzfragen.","Coverbild zum OpenCode-Test: eine Agenten-Schleife im Terminal, die sich zu einer gehosteten API, einem lokalen Modell und Zen verzweigt.","MIT · free, you pay the model provider","Coding agent",{"slug":639,"published":640,"minutes":641,"category":7,"tags":642,"keywords":647,"about":656,"sources":667,"cover":749,"og":750,"expertise":103,"locales":751,"lang":106,"title":752,"description":753,"coverAlt":754,"url":755,"pricing":756,"kind":637},"gemini-cli","2026-10-07",9,[643,644,538,645,646],"Terminal agent","Gemini","Sandboxing","Data protection",[648,649,650,651,652,653,654,655],"gemini cli","gemini cli free tier","gemini cli pricing","gemini cli data privacy","gemini cli vs claude code","antigravity cli","gemini cli github action","gemini cli sandbox",[657,660,663,666],{"name":658,"url":659},"Gemini CLI","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli",{"name":661,"url":662},"Vertex AI","https:\u002F\u002Fcloud.google.com\u002Fvertex-ai",{"name":664,"url":665},"Apache License","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FApache_License",{"name":555,"url":556},[668,671,674,677,679,682,685,688,691,694,697,700,703,706,709,712,715,718,721,723,726,729,732,735,738,741,743,746],{"title":669,"url":670},"Google Developers Blog: transitioning Gemini CLI to Antigravity CLI","https:\u002F\u002Fdevelopers.googleblog.com\u002Fen\u002Fan-important-update-transitioning-gemini-cli-to-antigravity-cli\u002F",{"title":672,"url":673},"Gemini CLI: quotas and pricing","https:\u002F\u002Fgeminicli.com\u002Fdocs\u002Fresources\u002Fquota-and-pricing\u002F",{"title":675,"url":676},"Gemini CLI: licence, terms of service and privacy notices","https:\u002F\u002Fgeminicli.com\u002Fdocs\u002Fresources\u002Ftos-privacy",{"title":678,"url":659},"GitHub: google-gemini\u002Fgemini-cli, the repository and README",{"title":680,"url":681},"Gemini CLI changelog: v0.63.0 released 6 October 2026","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Fchangelogs\u002Flatest.md",{"title":683,"url":684},"Gemini CLI reference: flags and approval modes","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Fcli\u002Fcli-reference.md",{"title":686,"url":687},"Gemini CLI configuration: settings.json and approval defaults","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fconfiguration.md",{"title":689,"url":690},"Gemini CLI sandboxing","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Fcli\u002Fsandbox.md",{"title":692,"url":693},"Gemini CLI: context files (GEMINI.md)","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Fcli\u002Fgemini-md.md",{"title":695,"url":696},"Gemini CLI: MCP servers","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli\u002Fblob\u002Fmain\u002Fdocs\u002Ftools\u002Fmcp-server.md",{"title":698,"url":699},"Gemini API Additional Terms of Service","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fterms",{"title":701,"url":702},"Gemini Developer API pricing","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fpricing",{"title":704,"url":705},"Gemini Code Assist FAQs","https:\u002F\u002Fdocs.cloud.google.com\u002Fgemini\u002Fdocs\u002Fcodeassist\u002Ffaqs",{"title":707,"url":708},"Vertex AI data governance and zero data retention","https:\u002F\u002Fdocs.cloud.google.com\u002Fvertex-ai\u002Fgenerative-ai\u002Fdocs\u002Fdata-governance",{"title":710,"url":711},"Vertex AI data residency","https:\u002F\u002Fdocs.cloud.google.com\u002Fvertex-ai\u002Fgenerative-ai\u002Fdocs\u002Flearn\u002Fdata-residency",{"title":713,"url":714},"Vertex AI locations and endpoints","https:\u002F\u002Fdocs.cloud.google.com\u002Fvertex-ai\u002Fgenerative-ai\u002Fdocs\u002Flearn\u002Flocations",{"title":716,"url":717},"run-gemini-cli: the GitHub Action for Gemini CLI","https:\u002F\u002Fgithub.com\u002Fgoogle-github-actions\u002Frun-gemini-cli",{"title":719,"url":720},"Antigravity CLI migration guide","https:\u002F\u002Fantigravity.google\u002Fdocs\u002Fcli\u002Fgcli-migration",{"title":722,"url":608},"Claude pricing",{"title":724,"url":725},"Claude Code: data usage","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fdata-usage",{"title":727,"url":728},"Claude Code: setup and plan requirements","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fsetup",{"title":730,"url":731},"Claude Code: permission modes","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fpermission-modes",{"title":733,"url":734},"Claude Code: sandboxing","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fsandboxing",{"title":736,"url":737},"Claude Code licence (LICENSE.md)","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FLICENSE.md",{"title":739,"url":740},"OpenAI Codex pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fpricing",{"title":742,"url":614},"OpenAI Codex CLI repository",{"title":744,"url":745},"Codex: agent approvals and security","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fagent-approvals-security",{"title":747,"url":748},"Codex: sandboxing","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fconcepts\u002Fsandboxing","\u002Fimages\u002Fblog\u002Fgemini-cli\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fgemini-cli\u002Fog.jpg",[105,106,107],"Gemini CLI im Test: Open Source, aber für Einzelnutzer nicht mehr kostenlos","Gemini CLI bleibt Apache-2.0, doch der kostenlose Einzelzugang endete am 18. Juni 2026. Übrig bleiben Code Assist, abgerechnete API-Schlüssel und Vertex AI.","Titelbild zum Gemini-CLI-Test: eine Prompt-Schleife läuft über ein Freigabe-Gate und eine Sandbox, der kostenlose Weg ist geschlossen","https:\u002F\u002Fwww.geminicli.com","Apache-2.0 · free individual tier closed 18 June 2026",{"slug":758,"published":640,"minutes":6,"category":7,"tags":759,"keywords":765,"about":774,"sources":785,"cover":859,"og":860,"expertise":103,"locales":861,"lang":106,"title":862,"description":863,"coverAlt":864,"url":777,"pricing":865,"kind":866},"temporal",[760,761,762,763,764],"Durable execution","Workflow orchestration","Human in the loop","AI agents","Self-hosting",[766,767,768,769,770,771,772,773],"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",[775,778,781,782],{"name":776,"url":777},"Temporal","https:\u002F\u002Ftemporal.io",{"name":779,"url":780},"Workflow engine","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWorkflow_engine",{"name":552,"url":553},{"name":783,"url":784},"Human-in-the-loop","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHuman-in-the-loop",[786,789,792,795,798,801,804,807,810,813,816,819,822,825,828,831,834,837,840,843,846,849,850,853,856],{"title":787,"url":788},"Temporal Cloud pricing","https:\u002F\u002Ftemporal.io\u002Fpricing",{"title":790,"url":791},"Temporal Cloud pricing documentation","https:\u002F\u002Fdocs.temporal.io\u002Fcloud\u002Fpricing",{"title":793,"url":794},"OpenAI Agents SDK integration for Python","https:\u002F\u002Fdocs.temporal.io\u002Fdevelop\u002Fpython\u002Fintegrations\u002Fopenai-agents",{"title":796,"url":797},"Workflow definition and determinism","https:\u002F\u002Fdocs.temporal.io\u002Fworkflow-definition",{"title":799,"url":800},"Retry policies","https:\u002F\u002Fdocs.temporal.io\u002Fencyclopedia\u002Fretry-policies",{"title":802,"url":803},"Activity timeouts","https:\u002F\u002Fdocs.temporal.io\u002Fencyclopedia\u002Fdetecting-activity-failures",{"title":805,"url":806},"Cloud actions reference","https:\u002F\u002Fdocs.temporal.io\u002Fcloud\u002Factions",{"title":808,"url":809},"Event history limits","https:\u002F\u002Fdocs.temporal.io\u002Fworkflow-execution\u002Fevent",{"title":811,"url":812},"Message passing in Python: signals, queries and updates","https:\u002F\u002Fdocs.temporal.io\u002Fdevelop\u002Fpython\u002Fmessage-passing",{"title":814,"url":815},"Human-in-the-loop AI agent sample","https:\u002F\u002Fdocs.temporal.io\u002Fai\u002Fcookbook\u002Fhuman-in-the-loop-python",{"title":817,"url":818},"Cloud security model","https:\u002F\u002Fdocs.temporal.io\u002Fcloud\u002Fsecurity",{"title":820,"url":821},"Cloud service regions","https:\u002F\u002Fdocs.temporal.io\u002Fcloud\u002Fregions",{"title":823,"url":824},"Data processing agreement","https:\u002F\u002Ftemporal.io\u002Fdpa",{"title":826,"url":827},"Self-hosted deployment guide","https:\u002F\u002Fdocs.temporal.io\u002Fself-hosted-guide\u002Fdeployment",{"title":829,"url":830},"Self-hosted production checklist","https:\u002F\u002Fdocs.temporal.io\u002Fself-hosted-guide\u002Fproduction-checklist",{"title":832,"url":833},"Self-hosted visibility stores","https:\u002F\u002Fdocs.temporal.io\u002Fself-hosted-guide\u002Fvisibility",{"title":835,"url":836},"Temporal Server architecture","https:\u002F\u002Fdocs.temporal.io\u002Ftemporal-service\u002Ftemporal-server",{"title":838,"url":839},"Temporal server LICENSE file","https:\u002F\u002Fgithub.com\u002Ftemporalio\u002Ftemporal\u002Fblob\u002Fmain\u002FLICENSE",{"title":841,"url":842},"Temporal integrations index","https:\u002F\u002Fdocs.temporal.io\u002Fintegrations",{"title":844,"url":845},"LangGraph integration with Temporal","https:\u002F\u002Fdocs.temporal.io\u002Fdevelop\u002Fpython\u002Fintegrations\u002Flanggraph",{"title":847,"url":848},"LangGraph persistence","https:\u002F\u002Fdocs.langchain.com\u002Foss\u002Fpython\u002Flanggraph\u002Fpersistence",{"title":99,"url":100},{"title":851,"url":852},"Self-hosted guide and development server","https:\u002F\u002Fdocs.temporal.io\u002Fself-hosted-guide",{"title":854,"url":855},"Python SDK reference: workflow.wait_condition","https:\u002F\u002Fpython.temporal.io\u002Ftemporalio.workflow._context.html",{"title":857,"url":858},"Python SDK reference: ApplicationError","https:\u002F\u002Fpython.temporal.io\u002Ftemporalio.exceptions.ApplicationError.html","\u002Fimages\u002Fblog\u002Ftemporal\u002Fcover.webp","\u002Fimages\u002Fblog\u002Ftemporal\u002Fog.jpg",[105,106,107],"Temporal im Test: Agenten, die Abstürze überstehen und auf Menschen warten","Temporal führt Agenten als dauerhafte Workflows aus: Retries, Freigaben und Timer überstehen Abstürze. Kosten, Datenschutz, Determinismus und wann du darauf verzichtest.","Titelbild zum Temporal-Test: ein Workflow, der Modellaufrufe als Activities wiederholt und auf die Freigabe eines Menschen wartet.","MIT · self-hosting free · Cloud pay-as-you-go from $0","Durable execution platform",{"slug":868,"published":869,"minutes":870,"category":7,"tags":871,"keywords":875,"about":884,"sources":896,"cover":987,"og":988,"expertise":103,"locales":989,"lang":106,"title":990,"description":991,"coverAlt":992,"url":887,"pricing":993,"kind":994},"e2b","2026-10-02",12,[872,763,873,764,874],"Code sandbox","Firecracker","EU data residency",[876,877,878,879,880,881,882,883],"e2b sandbox","e2b pricing","e2b vs modal","e2b self-hosted","e2b code interpreter","ai agent code execution sandbox","e2b eu region","firecracker microvm for ai agents",[885,888,890,893],{"name":886,"url":887},"E2B","https:\u002F\u002Fe2b.dev",{"name":873,"url":889},"https:\u002F\u002Ffirecracker-microvm.github.io\u002F",{"name":891,"url":892},"Kernel-based Virtual Machine","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FKernel-based_Virtual_Machine",{"name":894,"url":895},"General Data Protection Regulation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGeneral_Data_Protection_Regulation",[897,900,903,906,909,912,915,918,921,924,927,930,933,936,939,942,945,948,951,954,957,960,963,966,969,972,975,978,981,984],{"title":898,"url":899},"E2B documentation: isolated sandboxes for agents","https:\u002F\u002Fe2b.dev\u002Fdocs",{"title":901,"url":902},"E2B billing and limits: plans, rates and API rate limits","https:\u002F\u002Fdocs.e2b.dev\u002Fbilling",{"title":904,"url":905},"E2B: how long a sandbox lives, timeouts and auto-pause","https:\u002F\u002Fdocs.e2b.dev\u002Ffaq\u002Fsandbox-lifetime",{"title":907,"url":908},"E2B: sandbox persistence, pause and resume","https:\u002F\u002Fdocs.e2b.dev\u002Fsandbox\u002Fpersistence",{"title":910,"url":911},"E2B: how template builds work, snapshots and kernel versions","https:\u002F\u002Fdocs.e2b.dev\u002Ftemplate\u002Fhow-it-works",{"title":913,"url":914},"E2B: template quickstart, build limits and templates versus snapshots","https:\u002F\u002Fdocs.e2b.dev\u002Ftemplate\u002Fquickstart",{"title":916,"url":917},"E2B: running your first sandbox","https:\u002F\u002Fdocs.e2b.dev\u002Fquickstart",{"title":919,"url":920},"E2B: run Python code in the code interpreter","https:\u002F\u002Fdocs.e2b.dev\u002Fcode-interpreting\u002Fsupported-languages\u002Fpython",{"title":922,"url":923},"E2B: internet access controls","https:\u002F\u002Fdocs.e2b.dev\u002Fnetwork\u002Finternet-access",{"title":925,"url":926},"E2B: secrets injected by the egress proxy","https:\u002F\u002Fdocs.e2b.dev\u002Fsecrets",{"title":928,"url":929},"E2B: is it SOC 2 compliant? Trust Center, DPA and sub-processors","https:\u002F\u002Fdocs.e2b.dev\u002Ffaq\u002Fsecurity-and-compliance",{"title":931,"url":932},"E2B: can I run sandboxes in the EU?","https:\u002F\u002Fdocs.e2b.dev\u002Ffaq\u002Feu-region",{"title":934,"url":935},"E2B: egress IP ranges and regions","https:\u002F\u002Fdocs.e2b.dev\u002Ffaq\u002Fegress-ip-ranges",{"title":937,"url":938},"E2B: does it support GPUs?","https:\u002F\u002Fdocs.e2b.dev\u002Ffaq\u002Fgpu-support",{"title":940,"url":941},"E2B: how to calculate the price of a sandbox, with current rates","https:\u002F\u002Fdocs.e2b.dev\u002Ffaq\u002Fcalculate-sandbox-price",{"title":943,"url":944},"E2B: Volumes beta limitations: file locking, mounts and regions","https:\u002F\u002Fdocs.e2b.dev\u002Ffaq\u002Fvolumes-beta-limitations",{"title":946,"url":947},"E2B: bring your own cloud (BYOC)","https:\u002F\u002Fdocs.e2b.dev\u002Fbyoc",{"title":949,"url":950},"E2B changelog: E2B Embed, the access token change and weekly releases","https:\u002F\u002Fdocs.e2b.dev\u002Fchangelog",{"title":952,"url":953},"E2B Embed: self-hosting on one machine (README)","https:\u002F\u002Fgithub.com\u002Fe2b-dev\u002Fruntime\u002Ftree\u002Fmain\u002Fembed",{"title":955,"url":956},"E2B Embed: Docker Compose requirements and sizing","https:\u002F\u002Fgithub.com\u002Fe2b-dev\u002Fruntime\u002Fblob\u002Fmain\u002Fembed\u002Fcompose\u002FREADME.md",{"title":958,"url":959},"E2B SDK repository, Apache-2.0","https:\u002F\u002Fgithub.com\u002Fe2b-dev\u002FE2B",{"title":961,"url":962},"Firecracker: lightweight microVMs on KVM","https:\u002F\u002Fgithub.com\u002Ffirecracker-microvm\u002Ffirecracker",{"title":964,"url":965},"Modal pricing: per-second CPU, memory and GPU","https:\u002F\u002Fmodal.com\u002Fpricing",{"title":967,"url":968},"Modal sandboxes: lifetime, gVisor and VM runtimes","https:\u002F\u002Fmodal.com\u002Fdocs\u002Fguide\u002Fsandbox",{"title":970,"url":971},"Modal region selection: region codes","https:\u002F\u002Fmodal.com\u002Fdocs\u002Fguide\u002Fregion-selection",{"title":973,"url":974},"Daytona pricing: vCPU and GiB rates","https:\u002F\u002Fwww.daytona.io\u002Fpricing",{"title":976,"url":977},"Daytona documentation: sandbox isolation and start time","https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fen\u002F",{"title":979,"url":980},"Daytona regions: shared United States and Europe","https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fen\u002Fregions\u002F",{"title":982,"url":983},"Docker security: kernel namespaces, control groups and capabilities","https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Fsecurity\u002F",{"title":985,"url":986},"Regulation (EU) 2016\u002F679 (GDPR), EUR-Lex","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2016\u002F679\u002Foj","\u002Fimages\u002Fblog\u002Fe2b\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fe2b\u002Fog.jpg",[105,106,107],"E2B-Test: Firecracker-Sandboxes für Agenten-Code, nach Sekunden abgerechnet","E2B führt jeden Agentenlauf in einer eigenen Firecracker-microVM aus, mit Pause, Fortsetzung und Abrechnung pro Sekunde. Wo es passt und was die EU-Option kostet.","Coverbild zum E2B-Test: Agenten-Code geht über eine API in eine microVM-Sandbox, und das Ergebnis kommt in die Schleife zurück.","Usage-based · Hobby free, Pro from $150 a month","Code execution sandbox",1791636874004]